javase期末总测试题

上传人:第*** 文档编号:30599075 上传时间:2018-01-30 格式:DOC 页数:6 大小:61.50KB
返回 下载 相关 举报
javase期末总测试题_第1页
第1页 / 共6页
javase期末总测试题_第2页
第2页 / 共6页
javase期末总测试题_第3页
第3页 / 共6页
javase期末总测试题_第4页
第4页 / 共6页
javase期末总测试题_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《javase期末总测试题》由会员分享,可在线阅读,更多相关《javase期末总测试题(6页珍藏版)》请在金锄头文库上搜索。

1、JavaSE 期末总测试注意:直接将自己的答案编写在每一道试题的下面,代码要规范,最好使用不同背景加注,提交试卷的时候文件的命名格式如:”姓名.doc”一、简答题1.简述面向对象的特征有哪些方面?三大特征:封装、继承、多态1、 封装:在开发中,实体类我们一般都会封装起来,隐藏对象的属性和实现细节,仅对外提供公共访问方式。1) 私有化属性2) 根据需求设置 set、get 方法3) 提供公共方法对其访问2、 继承:1) 父类的由来:多个类不断向上抽取共性内容而来的2) 只支持单继承,但支持多重继承,即 A 继承 B,B 继承 C,C 继承 D3) 为什么不支持多继承,当两个父类中有相同的功能时,

2、子类方法调用该功能时该运行哪一个呢?4) 当类与类之间存在着所属关系时,才具备了继承的前提5) 子类覆盖父类时,必须要保证子类方法的权限大于等于父类方法的权限6) 覆盖时,要么都静态,要么都不静态3、 多态:1) 体现:父类的引用或者接口的引用指向了自己的子类对象,即父类可以调用子类中复写过的方法。/ Animal a = new Cat();2) 前提:必须要有关系,如继承、实现;通常会有覆盖操作3) 弊端:当父类引用指向子类对象时,只能访问父类中含有的方法2.简述 StringBuffer 和 StringBuilder 的区别?(10 分)StringBuffer:字符串缓冲区,从 JD

3、K1.0 开始的,是一个线程安全的存储字符容器。如果频繁修改字符串的内容,建议使用字符串缓冲类 StringBuffer。StringBuilder:字符串缓冲区,从 JDK1.5 开始的,非线程安全,但效率高。单线程操作,使用 StringBuilder 效率高;多线程操作,使用 StringBuffer 安全。3. 在 main 方法中的执行代码如下:String s1 = abc;String s2 = abc;System.out.println(s1 = s2);请写出以上代码的输出的结果,分析输出结果的原因。 (10 分)打印:trueString 对象可以直接使用字面量赋值,而且

4、多个 String 对象指向同一个字面量时,在堆内存当中只有一个 java 对象。如果调用 String 构造函数给 String 类型的引用赋值,那么每调用一次构造函数,在堆内存当中就会生成一个 string 对象。所以,如果 s1、s2 都是同一个字面量赋值,那么无论是用=还是 equals(),都返回 true。如果 s1、s2 使用 String 构造函数生成对象,并且传入的字面量相等,那么用=返回 false,用 equals()返回 true。4.多线程有几种实现方法?同步有几种实现方法? (10 分)两大方法:extend Thread 类、implements Runnable

5、 接口1、继承 Thread 类,由子类腹泻 run()方法1) 自定义子类继承 Thread 类2) 将让线程运行的代码存储到 run()方法中3) 通过创建 Thread 的子类对象,创建线程对象4) 通过子类调用 start()方法,开启线程2、实现 Runnable 接口1)自定义类实现 Runnable 接口2)将让线程运行的代码存储到 run()方法中3)创建 Thread 类线程对象4)创建自定义类对象,将自定义类对象作为实际参数传递给 Thread 类的构造函数(为了让线程对象明确要运行的 run 方法所属的对象)5)调用 Thread 对象的 start 方法开启线程,并运行

6、 Runnable 接口中的 run 方法synchronized, wait 与 notify 都可以实现同步5.列出 Java 你所知道的集合体系,并简述各自的特点.(10 分)集合:用于存储数据的容器特点:集合用于存储对象;集合是可变长度的集合与数组的区别:1) 数组是固定长度的,集合是可变长度的2) 数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型3) 数组存储的元素是同一个类型的元素;集合存储的对象可以是不同数据类型的对象单列集合:Collection,根接口List:有序,元素有索引,元素可以重复Set:无序,不可以存储重复元素,必须保证元素的唯一性Arr

7、ayList:底层的数据结构是数组,线程不同步,非线程安全,查询速度快,增删慢;LinkedList:底层的数据结构是链表,线程不同步,非线程安全,查询速度慢,增删快;Vector:底层的数据结构是数组,线程同步,线程安全,查询、增删都非常慢HashSet:底层是哈希表,线程不同步,非线程安全,无序、高效LinkedHashSet:有序,HashSet 的子类TreeSet:底层的数据结构是二叉树,线程不同步,非线程安全,对 Set 集合中的元素排序双列集合:Map,根接口HashTable:底层是哈希表数据结构,线程同步,不可以存储 null 键、null 值HashMap:底层是哈希表数据

8、结构,线程不同步,可以存 null 键、null 值,替代了HashTableTreeMap:底层是二叉树结构,可以对 map 集合中的键值进行指定顺序的排序6.集合与数组的区别是什么呢?(10 分)1)集合是可变长度的,数组是固定长度的2)集合只能存储对象的引用,数组既可以存储对象的引用又可以存储基本数据类型3)集合可以存储不同数据类型的元素,数组只能存储相同数据类型的元素7.Collection 和 Collections 的区别? (10 分)Collection 是 java.util 下的接口,是各种集合结构的父接口,继承于它的接口主要有Set、List,提供了一些关于集合的一些操作

9、,如插入、删除、判断一个元素是否为其成员、遍历等操作。Collections 是 java.util 下的类,是集合的帮助类,提供一些静态方法,实现对集合的查找、排序、替换、线程安全化等操作。8.HashSet 是如何保证元素唯一性的。 (10 分)HashSet 底层数据结构是哈希表,不存入重复元素,线程不同步,无序、高效。HashSet 集合保证元素的唯一性,是通过元素的 hashCode 方法和 equals 方法完成的。当元素的 hashCode 值相同时,才判断元素的 equals 是否为 true,如果为 true,则视为相同元素,不存储;如果为 false,则存储。如果 hash

10、Code 值不同,则不判断 equals,从而提高对象的比较速度。9.简述 ArrayList 与 Vector 的区别,ArrayList 与 LinkedList 的区别(10 分)ArrayList 与 Vector 底层数据结构都是 Object 数组, ArrayList 非线程安全;Vector 线程安全,但查询、增删都非常慢。ArrayList:底层数据结构是 Object 数组,线程不同步,非线程安全,查询快,增删慢LinkedList:底层数据结构是链表,线程不同步,非线程安全,查询慢,增删快如果我们需要保留存储顺序,并且保留重复元素的时候,使用 List;如果查询比较多,则

11、使用 ArrayList;如果存取比较多,则使用 LinkedList;如果要线程安全,则使用Vector。2、编程题(写出代码思路,伪代码)1.使用 TCP,模拟一下 QQ 的信息交流功能,客户端,服务端(10 分)package test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import .ServerSocket;import .Socket;public class Test2

12、2 /*建立 tcp 的服务器接受客户端的连接,传声一个Socket获取到Socket的输入流对象获取到Socket输出流的对象获取键盘的输入流对象读取客户端的数据关闭资源*/public static void main(String args) throws IOException ServerSocket serverSocket = new ServerSocket(8088);Socket socket =serverSocket.accept();BufferedReader sReader = new BufferedReader(new InputStreamReader(so

13、cket.getInputStream();OutputStreamWriter sOut = new OutputStreamWriter(socket.getOutputStream();BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in) );String line = null;while(line = sReader.readLine()!=null)System.out.println(服务端接收到的信息:+ line);System.out.println(请输入回送给客户端)

14、;line=keyReader.readLine();sOut.write(line+rn);sOut.flush();serverSocket.close();客户端类package test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import .InetAddress;import .Socket;import .Unkno

15、wnHostException;public class Test22send public static void main(String args) throws IOException, IOException /建立 tcp的客户端服务/获取 socket的输出对象/获取 socket的输入流对象/获取键盘的输入流对象,读取数据/不断的读取键盘录入数据,然后把数据写出/flush刷一把/.Socket socket = new Socket(InetAddress.getLocalHost(),8088);OutputStreamWriter sOut = new OutputStre

16、amWriter(socket.getOutputStream();BufferedReader sReader = new BufferedReader(new InputStreamReader(socket.getInputStream();BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in);String line = null;while(line = keyReader.readLine()!=null)sOut.write(line+rn);sOut.flush();line = sReader.readLine();System.out.print(服务器送回的数据是:+ line);socket.close();2.编写一个方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 外语文库 > 英语学习

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号