java高级 期末,Java高级编程期末考试真题试卷及复习资料.docx

253b171540df25e1b84436cbe50dfc72.gifJava高级编程期末考试真题试卷及复习资料.docx

名词解释1. 泛型答即参数化类型,允许程序创建集合时指定集合元素的类型。在定义方法、类、接口时使用类型形参,类型形参将在声明变量、调用方法、创建对象时动态地指定.如ListString,ArrayListString2. 多态答Java引用变量分为编译时的类型和运行时的类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果两类型不一致,就出现多态。 3.阻塞答当前正在执行的线程被阻塞之后,其他线程就获得执行机会.被阻塞的线程会在合适的时候重新进入就绪状态,重新等待线程调度器再次调度它。4. 封装答面向对象三大特征之一。指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对内部信息的操作和访问。 5. 继承答类继承是新类可以从现有的类中派生。派生类继承了基类的非私有成员变量和方法,派生类可以拥有自己的成员变量和方法,可以用自己的方式实现基类的方法。6. 抽象答抽象就是忽略主题中与目标无关的方面,关注与目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不管部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。选择题第一大类(集合),如 1、在Java中,( A )类的对象可被用作堆栈或者队列。 A. LinkedList B. ArrayList C. Collection D. HashMap 2、关于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. Statement接口由Connection产生负责保存返回的查询结果 D. DriverManager类负责连接数据库并传送数据 2、 在Java中,以下关于得到ResultSet对象、PreparedStatement对象、Statement对象的说法,正确的是( AC )。A. 可以使用Statement对象的cuteQuery方法返回ResultSet对象B. 可以使用Connection对象的createStatement方法获得PreparedStatement对象C. 可以使用Connection对象的createStatement方法获得Statement对象 D. 可以使用Connection对象的cuteQuery方法返回ResultSet对象第三大类(线程),如1、下面关于Java主线程的说法错误的是( D )。 A主方法所在的线程即主线程。 B在多线程应用中,主线程的主要作用是启动其它线程。 C主线程与其它线程是平等的。 D主线程结束,整个应用将结束。2、关于synchronized关键字的说法正确的是( A )。 A通过synchronized关键字可以同步代码块,实现多线程对共享资源访问的原子性、互斥性。 B使用synchronized关键字时,同步锁对象不一定存在。 Csynchronized关键字的使用不可能导致死锁。 Dsynchronized关键字可以修饰类。第四大类(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把可变参数当做数组处理。调用这个方法的时,可以传给它任意个参数,JVM都能将这些数据封装成一个数组,按照方法内的操作进行操作。可变参数定义时必须放在参数列表的最后面。2. JAVA垃圾回收是指什么答垃圾回收是一种动态存储管理技术,能自动释放无用对象,按照特定算法自动释放内存空间,减轻编程的负担。3. 什么是初始化数据块答初始化块是java类里第4种成员;由大括号括起,可由static修饰;无名字,无法通过对象、类来被调用;在构造器之前执行,且不能接受形参。4. JAVA中equals和它们之间有什么区别答equals 方法检测两个对象的内容是否相等,区分大小写。比较基本数据类型时,如果两个值相同,则结果为true,而在比较引用时,如果引用指向同一对象,结果为true5、简单给出JAVA 实现线程的两种方式。答继承Thread类class MyThread extends Thread public void run public class a public static void mainString args MyThread mythread new MyThread; mythread.start; 实现Runnable接口class MyThread implements Runnable public void run public class a public static void mainString args MyThread myThreadnew MyThread; Thread threadnew ThreadmyThread; thread.start; 6、 JAVA抽象类和接口之间有什么区别答1.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型。2.接口内只能包含抽象方法,抽象类可以包含普通方法。3.接口里不能定义静态方法;抽象类里可以定义静态方法。4.接口不包含构造器;抽象类里可以包含构造器5.一个类只能继承一个抽象类,而一个类却可以实现多个接口7、 String是最基本的数据类型吗基本类型有哪些答String不是基本数据类型,基本数据类型包括byte, short, int, long, float, double, boolean, char八大类型。而String是类,属于引用类型,引用类型包括类,接口,数组等。8、 说出ArrayList,Vector, LinkedList的存储性能和特性答ArrayList和Vector均使用数组方式存储数据,能自动增加数组容量,允许按序号索引元素,效率高,而插入设计数组元素移动所以效率低,vector线性安全,ArrayList线性不安全。LinkedList使用双向链表实现存储,插入效率高,索引效率低。9、InetAddress inet InetAddress.getByName127.0.0.1;DatagramPacket dp new DatagramPacketdata, data.length, inet,6000;DatagramSocket ds new DatagramSocket;ds.senddp;ds.close;3 编程举例udp如何接受数据byte data new byte1024;DatagramSocket ds new DatagramSocket6000;DatagramPacket dp new DatagramPacketdata, data.length;ds.receivedp;ds.close;2. 在理解线程同步概念的基础上,针对一个银行账户对象account,编程实现使用同步代码块和同步方法来完成多线程正确取钱行为,请编写两段代码,分别实现这两种实现方法。同步代码块public class DrawThread extends Thread public void run synchronized account if account.getBalance drawAmount System.out.println取钱成功; else System.out.println取钱失败; 同步方法public class Account public synchronized void draw(double drawAmount) ifaccount.getBalance drawAmount System.out.println取钱成功; else System.out.println取钱失败; 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 varchar20, age int, sex int, primary keyid ;create index idx_studentName on studentstudentName;2使用jdbc完成对MySql数据库ip127.0.0.1, port3306, DataBase studentdb; 用户名student, 密码student)中student表的访问,输出全部学生的学号和姓名。Connection con;Statement stmt;ResultSet rs;String dburl jdbcmysql127.0.0.13306/studentdb;String user student;String password student;con DriverManager.getConnectiondburl,user,password;System.out.println连接成功;stmt con.createStatement;rs stmt.cuteQueryselect studentId,studentName from studentwhilers.next int id rs.getInt1; String name rs.getString2 System.out.printID id; System.out.printName name;rs.close;stmt.close;con.close;4、编写代码,使用ServerSocket和Socket类完成从客户端发送一行字符串给服务器,服务器接收后再发回同样一行字符串给客户端,请完成Server.java和Client.java类的主要代码;请参考上述代码从客户端发送一个double数据、一个文件、一个java对象给服务器端,分别在服务器端输出、另存文件和读取对象。public class Client public static void mainString args throws IOException Socket socket new Socket127.0.0.1, 30000; DataOutputStream dos new DataOutputStreamnew BufferedOutputStreamsocket.getOutputStream;dos.writeDouble10.01;dos.;ObjectOutputStream oos new ObjectOutputStreamnew BufferedOutputStreamsocket.getOutputStream;oos.writeObjectnew Studenthzj, 35;oos.;byte buff new byte32;BufferedStream bis new BufferedStreamnew FileStreamtest;bis.readbuff, 0, buff.length;System.out.printlnbuff.length;OutputStream os socket.getOutputStream;os.writebuff, 0, buff.length;os.;socket.close;public class Server public static void mainString args throws IOException ServerSocket ss new ServerSocket30000;while true System.out.println接受客户连接前 ;Socket s ss.accept;System.out.println接受客户链接后;DataStream dis new DataStreamnew BufferedStreams.getStream;Double d dis.readDouble;System.out.println第一个数据 d;ObjectStream ois new ObjectStreamnew BufferedStreams.getStream;try Student st Student ois.readObject;System.out.println学生姓名 st.getName 学生年龄 st.getAge; catch byte buff new byte32;Stream is s.getStream;FileOutputStream fos new FileOutputStream ;BufferedOutputStream bos new BufferedOutputStreamfos;int bytesRead is.readbuff, 0, buff.length;bos.writebuff, 0, buff.length;bos.close;s.close;5、编写Java代码实现单例(Singleton)模式。public class Singleton private static Singleton instance; private Singleton public static Singleton getInstance ifinstancenull instance new Singleton; return instance;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值