java高级编程2014-2015-1复习提纲v1
- 格式:doc
- 大小:25.50 KB
- 文档页数:3
一、名词解释:
泛型、阻塞、多态
简答题(每题10分,共20分)
1、请说明”==”和Object类的equals方法和hashcode方法的作用,并实现一个学生类,让学生的姓名和年龄相等则两个学生对象是相等的。
2、请使用简单代码说明创建线程的三种方式,并说明它们的优缺点。
3.请说明线程的状态及其转换,并说明线程控制相关如下方法的作用,join,yield,
sleep, interrupt.
4、说明线程同步的概念:同步代码块和同步方法、释放同步锁、同步锁、死锁,请对account的取钱线程进行调试,理解说明上述概念。
5、线程的生命周期: 请对照ppt中对线程生命周期的图,结合相关方法说明线程有哪些状态,从一种状态转到另一种状态可以通过什么方法或方式,请使用word进行文字说明(参考ppt)
6、关于对象比较的两个接口:一是Comparable,二是Comparator分别说明这两个接口方法的说明,对象大小相等与对象equals有什么区别
7、分别建立HashSet和TreeSet的学生类集合
7.1对学生类不覆盖equals、hashCode方法,在向HashSet集合中增加不同和相同学生对象时是什么效果,只覆盖其中一个方法呢?两个都覆盖呢
7.2对学生类不实现Comparable接口,不覆盖equals、hashCode方法,在向TreeSet集合中增加不同和相同学生对象时是什么效果?实现了呢,覆盖了呢?
8、分别建立HashMap和TreeMap的学生类集合,使用学生对象做Key,课程成绩对象做Value
8.1对学生类不覆盖equals、hashCode方法,在向HashMap集合中增加不同和相同学生对象时是什么效果,只覆盖其中一个方法呢?两个都覆盖呢
8.2对学生类不实现Comparable接口,不覆盖equals、hashCode方法,在向TreeMap集合中增加不同和相同学生对象时是什么效果?实现了呢,覆盖了呢?
8.3请写出HashMap集合的一般遍历过程代码 9.请使用JDBC给出如下主要过程相关的代码:
1)建立与MySql数据库(ip:127.0.0.1, port:3306, DataBase: studentdb; 用户名:student, 密码:student)的连接;
2)创建语句对象;
3)使用语句对象执行删除表student中id字段值为1的记录;
4)使用语句对象执行查询表student中name字段值等于“张三”的记录,并遍历打印输出name字段的值
5)释放相关资源。
10、UDP编程
1)说明UDP协议与TCP协议的区别,说明在java在上述协议实现中连接和数据传输方面的不同;
2)编程说明udp如何发送数据;
3)编程说明udp如何接受数据;
4)请说明DatagramSocket与DatagramPacket的常用属性作用。
11、TCP编程
1)使用ServerSocket和socket类完成从客户端发送一行字符串给服务器,服务器接收后再发回同样一行字符串给客户端,请参考Server.java和Client.java
2)请参考上述代码编码完成:从客户端发送一个double数据、一个文本文件、一个java对象(Student)给服务器端,分别在服务器端打印、另存文件和读取对象
12、完成以文件为例的FileInputStream\FileOutputStream使用,请针对PC上的某一文件(请分别选一个java文件和一个图片文件)进行读取,然后写到另一个新建的文件中,检查新建的文件是否可以正常打开
13、请在word文档中说明流的三种分类标准,写出典型的节点流和处理流,并说明处理流与节点流的一般编程方式
面向对象:
综合题(每题20分,共80分)
1.请说明java反射技术所涉及的相关类,开发一个student类,包括含两个参数name和age的构造函数及set/get方法、实现含有一个run(Double speed)方法的RunInterface接口,分别说明如何使用反射技术从获得Student类信息、创建Student类实例和调用Student类实例的run方法(注:使用new及直接方法调用不能得分)
2.使用ServerSocket和socket类完成从客户端发送一行字符串给服务器,服务器接收后再发回同样一行字符串给客户端,请参考Server.java和Client.java,请参考上述代码从客户端发送一个double数据、一个文件、一个java对象给服务器端,分别在服务器端打印、另存文件和读取对象
3.请给出java输入输出流的分类方式及其特点,并使用图或者表的方式说明其相关类或接口的分类情况。然后给出如下代码:对一个可序列化类Person和相关的输入输出流将其进行序列化保存到文件(c:/myobj.data),然后反序列化从文件读取到内存。
3.说明线程同步的概念,针对一个银行账户对象account,如何分别使用同步代码块和同步方法来完成多线程正确取钱行为,请分别实现上述两种代码。
4.请使用jdbc和SQL语法完成如下任务,其中studentId、courseId不能为空,并为学生表的studentName及课程表中的courseName建立索引(20分):
1)创建学生表(字段:逻辑主键id,学号studentId,姓名studentName,年龄age,性别sex-0标示女生-1标示男生)和课程表(字段:逻辑主键id,课程编号courseId,课程名称courseName)
2)创建成绩表(字段:逻辑主键id,学生st_fk,课程course_fk,成绩score-百分制,考试标志0标示正常-1标示补考-2标示重考-3标示毕业大补考),其中的学生引用列和课程引用列加入外键约束。
3)请分别使用等值连接查询和学生表左连接查询查出学生课程的成绩记录,并说明这两种查询有什么区别。
4)使用jdbc完成对MySql数据库(ip:127.0.0.1, port:3306, DataBase:
studentdb; 用户名:student, 密码:student)中student表的访问