Java高级编程期末考试真题试卷及复习资料doc资料_第1页
Java高级编程期末考试真题试卷及复习资料doc资料_第2页
Java高级编程期末考试真题试卷及复习资料doc资料_第3页
Java高级编程期末考试真题试卷及复习资料doc资料_第4页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java高级编程期末考试真题试卷及复习资料doc资料J a v a高级编程期末考试真题试卷及复习资料名词解释:1.泛型答:即参数化类型,允许程序创建集合时指定集合元素的类型。在定义方法、类、接口时使用类型形参,类型形参将在声明变量、调用方法、创建对象时动态地指定.如:List2. 多态答:Java引用变量分为编译时的类型和运行时的类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果两类型不一致,就出现多态。3.阻塞答:当前正在执行的线程被阻塞之后,其他线程就获得执行机会.被阻塞的线程会在合适的时候重新进入就绪状态,重新等待线程调度器再次调度它。4. 封装答:

2、面向对象三大特征之一。指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对内部信息的操作和访问。5. 继承答:类继承是新类可以从现有的类中派生。派生类继承了基类的非私有成员变量和方法,派生类可以拥有自己的成员变量和方法,可以用自己的方式实现基类的方法。6. 抽象:答:抽象就是忽略主题中与目标无关的方面,关注与目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不管部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。选择题第一大类(集合),如:1、在Java中,( A )类的对象可被用作堆栈或者队列。A. LinkedListB. Arr

3、ayListC. CollectionD. HashMap2、关于Java中的集合实现类,下列说法描述错误的是(D )。A. HashMap是Map接口的实现类B. ArrayList对象是长度可变的对象引用数组C. 集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法D. Set中存储一组不允许重复、有序(无序)的对象第二大类(JDBC与SQL编程),如:1、使用JDBC访问数据库时,下列关于JDBC的说法正确的是( B )。A. Connection接口负责执行SQL语句B. 可以使用Class.forName()方法把JDBC驱动类装载入Java虚拟机中C. Stateme

4、nt接口由Connection产生负责保存返回的查询结果D. DriverManager类负责连接数据库并传送数据2、在Java中,以下关于得到ResultSet对象、PreparedStatement对象、Statement对象的说法,正确的是( AC )。A. 可以使用Statement对象的executeQuery方法返回ResultSet对象B. 可以使用Connection对象的createStatement方法获得PreparedStatement对象C. 可以使用Connection对象的createStatement方法获得Statement对象D. 可以使用Connectio

5、n对象的executeQuery方法返回ResultSet对象第三大类(线程),如:1、下面关于Java主线程的说法错误的是( D )。A主方法所在的线程即主线程。B在多线程应用中,主线程的主要作用是启动其它线程。C主线程与其它线程是平等的。D主线程结束,整个应用将结束。2、关于synchronized关键字的说法正确的是( A )。A通过synchronized关键字可以同步代码块,实现多线程对共享资源访问的原子性、互斥性。B使用synchronized关键字时,同步锁对象不一定存在。Csynchronized关键字的使用不可能导致死锁。Dsynchronized关键字可以修饰类。第四大类(

6、Socket编程),如:1、下面关于Socket编程说法不正确的是( C )。A通过Socket可以获得字节输入流,以接收对方Socket发来的信息。B通过Socket可以获得字节输出流可以向对象Socket发送信息。C通过Socket获得的是字节流,因此不能发送字符信息。D通过Socket可以在通信双方主机之间传送Java对象。2、通过流的read()方法读取数据,如何判断流结尾?(A )。A. 返回-1表示流结尾。B. 返回null表示流结尾。C. 返回0表示流结尾。D. 遇到流结尾将抛出异常。简答题1. 什么是可变参数?答:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组

7、处理。调用这个方法的时,可以传给它任意个参数,JVM都能将这些数据封装成一个数组,按照方法内的操作进行操作。可变参数定义时必须放在参数列表的最后面。2. JAVA垃圾回收是指什么?答:垃圾回收是一种动态存储管理技术,能自动释放无用对象,按照特定算法自动释放内存空间,减轻编程的负担。3. 什么是初始化数据块?答:初始化块是java类里第4种成员;由大括号括起,可由static修饰;无名字,无法通过对象、类来被调用;在构造器之前执行,且不能接受形参。4. JAVA中equals和=它们之间有什么区别?答:equals 方法检测两个对象的内容是否相等,区分大小写。=比较基本数据类型时,如果两个值相同

8、,则结果为true,而在比较引用时,如果引用指向同一对象,结果为true5、简单给出JAVA 实现线程的两种方式。答:继承Thread类class MyThread extends Threadpublic void run()public class apublic static void main(String args)MyThread mythread =new MyThread();mythread.start();实现Runnable接口class MyThread implements Runnablepublic void run()public class apublic s

9、tatic void main(String args)MyThread myThread=new MyThread();Thread thread=new Thread(myThread);thread.start();6、JAVA抽象类和接口之间有什么区别?答:1.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型。2.接口内只能包含抽象方法,抽象类可以包含普通方法。3.接口里不能定义静态方法;抽象类里可以定义静态方法。4.接口不包含构造器;抽象类里可以包含构造器5.一个类只能继承一个抽象类,而一个类却可以实现多个接口7、String

10、是最基本的数据类型吗?基本类型有哪些?答:String不是基本数据类型,基本数据类型包括:byte, short, int, long, float, double, boolean, char八大类型。而String是类,属于引用类型,引用类型包括:类,接口,数组等。8、说出ArrayList,Vector, LinkedList的存储性能和特性?答:ArrayList和Vector均使用数组方式存储数据,能自动增加数组容量,允许按序号索引元素,效率高,而插入设计数组元素移动所以效率低,vector线性安全,ArrayList线性不安全。LinkedList使用双向链表实现存储,插入效率高,

11、索引效率低。9、&和&的区别。答:&是位运算符,表示按位与运算,&是逻辑运算符,表示逻辑与(and)。10、sleep() 和 wait() 有什么区别?答:sleep是Thread类的方法,没有释放对象锁,让程序暂停执行指定的时间,之后恢复运行状态,期间监控状态依然保持wait是Object类的方法,释放了对象锁,进入等待此对象的等待锁定池,必须用notify()或notifyAll()方法唤醒该进程11、GC是什么? 为什么要有GC?答:GC是垃圾收集的意思,自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有显示地释放已分配内存的方法。综合题1.udp编程1) 说明在j

12、ava在UDP协议与TCP协议实现中连接和数据传输方面的不同TCP:通过端口来区分程序间的通信进程,按字节流顺序传播。UDP:通过端口来区分程序间的通信进程,按数据报传播,包到达的先后顺序不固定。2)编程举例udp如何发送数据byte data =你好UDP.getBytes();InetAddress inet = InetAddress.getByName(127.0.0.1);DatagramPacket dp =new DatagramPacket(data, data.length, inet,6000); DatagramSocket ds =new DatagramSocket(

13、);ds.send(dp);ds.close();3)编程举例udp如何接受数据byte data = new byte1024;DatagramSocket ds =new DatagramSocket(6000);DatagramPacket dp =new DatagramPacket(data, data.length);ds.receive(dp);ds.close();2.在理解线程同步概念的基础上,针对一个银行账户对象account,编程实现使用同步代码块和同步方法来完成多线程正确取钱行为,请编写两段代码,分别实现这两种实现方法。同步代码块public class DrawThr

14、ead extends Thread public void run()synchronized(account)if(account.getBalance()= drawAmount)System.out.println(取钱成功);elseSystem.out.println(取钱失败);同步方法public class Account public synchronized void draw(double drawAmount)if(account.getBalance()= drawAmount)System.out.println(取钱成功);elseSystem.out.prin

15、tln(取钱失败);3. 请使用jdbc和SQL语法完成如下任务1) 创建学生表student(字段:逻辑主键id,学号studentId,姓名studentName,年龄age,性别sex-0表示女生-1表示男生),并给studentName字段创建索引。create table if not exists student(id int auto_increment not null,studentId int not null,studentName varchar(20),age int,sex int,primary key(id);create index idx_studentNa

16、me on student(studentName);2)使用jdbc完成对MySql数据库(ip:127.0.0.1, port:3306, DataBase: studentdb;用户名:student, 密码:student)中student表的访问,输出全部学生的学号和姓名。Connection con;Statement stmt;ResultSet rs;String dburl =jdbc:mysql:/127.0.0.1:3306/studentdb;String user =student;String password =student;con = DriverManage

17、r.getConnection(dburl,user,password);System.out.println(连接成功);stmt = con.createStatement();rs = stmt.executeQuery(select studentId,studentName from student)while(rs.next()int id = rs.getInt(1);String name = rs.getString(2)System.out.print(ID: + id);System.out.print(Name: + name);rs.close();stmt.clos

18、e();con.close();4、编写代码,使用ServerSocket和Socket类完成从客户端发送一行字符串给服务器,服务器接收后再发回同样一行字符串给客户端,请完成Server.java和Client.java类的主要代码;请参考上述代码从客户端发送一个double数据、一个文件、一个java对象给服务器端,分别在服务器端输出、另存文件和读取对象。public class Client public static void main(String args) throws IOException Socket socket = new Socket(127.0.0.1, 30000)

19、; / DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream();dos.writeDouble(10.01);dos.flush();ObjectOutputStream oos = new ObjectOutputStream(newBufferedOutputStream(socket.getOutputStream();oos.writeObject(new Student(hzj, 35);oos.flush();byte buff = new byte3

20、2;BufferedInputStream bis = new BufferedInputStream(new FileInputStream(test);bis.read(buff, 0, buff.length);System.out.println(buff.length);OutputStream os = socket.getOutputStream();os.write(buff, 0, buff.length);os.flush();socket.close();public class Server public static void main(String args) throws IOException ServerSocket ss = new ServerSocket(30000);while (true) System.out.println(接受客户连接前 );Socket s = ss.accept();System.out.println(接受客户链接后);DataInputStream dis = new DataInputStream(new BufferedInputStream(s.getInputStream();Double d = dis.readDouble()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论