1、模块一 开发环境搭建一、选择题1.D二、 填空题1.Java EE、Java SE、Java ME2.JRE3. javac4.path、classpath三、简答题1.面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2.智能的选取、丰富的导航模式、历史记录功能、编码辅助、灵活的排版功能、动态语法检测、代码检查、智能编辑、预置模板、完美的自动代码完成、不使用代码的检查、智能代码、JavaDoc预览支持、程序员意图支持3.Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译,生成后缀名为.class的字节码文件,然后Java虚拟机将字节码文件
2、进行解释执行,并将结果显示出来。模块二 JAVA语言程序设计基础一、填空题1. 整数类型、浮点数类型2. 强制类型转换3. final4. break、continue二、判断题1. 错 2. 错 3. 对 4. 对 5. 错 三、选择题1. A 2. C 3. A 四、编程题public class Test public static void main(String args) double n,sum,i,k; sum=0; k=1; System.out.println(Enter n: ); Scanner scanner=new Scanner(System.in); n=sca
3、nner.nextInt(); for(i=1;i=n;i+) sum=sum+k/(3*i-2); k=-k; System.out.printf(sum=%.3f,sum); 模块三 面向对象程序设计一、填空题5. 封装、继承、多态 6. class7. private8. final9. Object10. 当前11. 方法,抽象类12. 静态方法13. interface14. 子类二、判断题1. 错 2. 对 3. 对 4. 对 5. 错 6. 对 7. 对 8. 对 9. 错 10. 错三、选择题1. A 2. C 3. D 4. A 5. A 6. C 7. C 8. C 9.
4、D 10.D四、简答题1.Java面向对象有三大特性,封装是将对象的属性和行为封装起来,不需要让外界知道具体实现细节;继承是可以在无需重新编写原有类的情况下,对原有类的功能进行扩展;多态指的是在一个类中定义的属性和功能被其他类继承后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同行为特性。2.方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数不同即可(参数的个数不同,数据类型不同,顺序不同),与修饰符和返回值类型无关。方法重写:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,称为方法重写。3.多
5、态是同一个行为具有多个不同表现形式或形态的能力。多态的好处:(1)应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。(2)派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。4.在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中可以定义常量、抽象方法、静态方法、默认方法以及私有方法。由于接口的特殊性,在定义时需要使用interface关键字。模块四
6、 数组与异常程序设计一、选择题1. D 2. B 二、填空题15. 引用2. false四、简答题1.答:java中声明了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系统的损害,从而保证了整个程序运行的安全性。2.答:异常又称为例外,是特殊的运行错误对象,在程序中可以强制编译器来处理程序运行中的发生的并非由程序本
7、身所造成的错误;抛出异常:把生成异常对象并提交的过程称为抛出异常;抛出异常是java中一个程序处理动作,检查异常时要么在方法中声明一个异常抛出,用try-catch语句捕获异常,并进行处理。模块五 集合一、填空题1. Comparator 2. hashNext()、next()3. 键、值4. ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap二、判断题1. 错 2. 对 3. 对 4. 错三、选择题1. C 2. C 3. D 四、简答题1.为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位于java.u
8、til包中,统称为集合。集合框架中常用的接口和类有,List、Set、ArrayList、HashSet、Map、HashMap、TreeMap。2.List的特点是元素有序、可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。3.Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工
9、具类。它包含各种有关集合操作的方法。模块六 GUI一、选择题1. B 2. D 3.B 4. B 5. D 二、填空题1. BorderLayout 2. JScrollPane3. 文本框和列表四、简答题1.GridLayout() GridLayout(int row,int col) GridLayout(int row,int col,int horz,int vert)2.Window Frame JFrame模块七 I/O流一、填空题5. 字节流、字符流6. InputStream7. BufferedOutputStream、BufferedReader8. Writer9. d
10、elete()二、判断题1. 对 2. 对 3. 对 4. 对 5. 对 三、选择题1. B 2. A 3. D 4. A 5. D 6. C 7. C 8. A 四、简答题1. Java程序通过I/O流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。2. 字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的
11、字符流类。模块八 多线程一、填空题10. Thread、Runnable、Callable 11. 新建状态(NEW)、可运行状态(RUNNABLE)、阻塞状态(BLOCKED)、无限期等待状态(WAITING)、限期等待状态(TIMED_WAITING)、终止状态(TERMINATED)12. sleep()13. 等待和唤醒二、判断题1. 错 2. 对 3. 对 4. 错 5. 错 三、选择题1. D 2. ABD 3. D 4. C 四、简答题1.通过接口Runnable和通过Callable接口实现多线程的主要区别有两点:(1)创建Runnable接口的实现类,需要重写接口的run()
12、方法;创建Callable接口的实现类,需要重写接口的call()方法;(2)使用Runnable接口来实现多线程时,构造线程对象的时候传递的是接口Runnable的实现类对象。使用Callable接口实现多线程需要用到类FutureTask,使用类FutureTask先封装Callable接口实现类对象得到FutureTask类对象;构造线程对象的时候传递的是FutureTask类对象而不再是接口的实现类对象。2. 线程调用sleep(long millis)和wait()的区别:(1)sleep(long millis)调用:如果在线程执行过程中,要暂停正在执行的线程,让出CPU使用权,可
13、以使用方法static void sleep(long millis)来设置让当前正在执行的线程暂停一段时间,并进入休眠等待状态,这样其他的线程可以得到执行的机会。sleep()方法会声明抛出InterruptedException异常,故在调用该方法时应捕获处理该异常或者是声明抛出该异常。线程调用sleep()方法后,该线程放弃CPU使用权,在指定的时间段内,该线程不会获得执行的机会。只有当休眠时间结束后,线程才会转换到就绪状态,等待再次获得CPU使用权执行。休眠状态下的线程不会释放同步锁/同步监听器。(2)wait()调用:让当前线程放弃同步锁并进入等待状态,直到其他线程进入此同步锁,并调
14、用nofity()方法或notifyAll()方法唤醒该线程为止。3. 线程同步有三种实现方式:Java中提供了三种线程同步方式来解决线程安全问题:一种是同步代码块,一种是同步方法,还有一种是同步锁。(1)同步代码块,是当多个线程使用同一个共享资源时,将处理共享资源的代码放置在关键字synchronized修饰的代码块中,这段代码被称为同步代码块。其语法格式如下:synchronized(lock)/需要同步操作的代码(2)同步方法是在一个方法前面加上关键字synchronized进行修饰,被修饰的方法称为同步方法。同步方法在同一时刻只允许一个线程访问,访问该方法的其他线程都会被阻塞,直到当前
15、线程访问执行完毕后,其他线程才有机会访问执行。语法格式如下:修饰符 synchronized 返回值类型 方法名(参数1,)/需要同步操作的代码(3)同步锁:从JDK 1.5开始,Java提供了比同步代码块和同步方法更广泛的锁操作,是一个功能更强大的Lock锁,既具有同步代码块和同步方法的功能,同时在使用时也更灵活,且可以让线程释放锁。同步锁Lock是一个接口,它的实现类是ReentrantLock。在编程中最常用的是创建一个同步锁对象,对代码块进行上锁和解锁操作。如下所示:private final Lock lock=new ReentrantLock();/创建同步锁对象lock.loc
16、k();/上锁/需要同步操作的代码lock.unlock();/解锁4. Java线程间通信的等待唤醒机制:Java中不同的线程执行不同的任务,如果任务之间有某种关系,线程间必须能够通信,协调完成工作。为了让线程间能进行协调工作,就需要线程间能进行通信。Java提供了线程间通信常用的三个方法是:wait(),nofity(),notifyAll(),用于线程的等待与唤醒。l void wait() ,让当前线程放弃同步锁并进入等待状态,直到其他线程进入此同步锁,并调用nofity()方法或notifyAll()方法唤醒该线程为止。l wait(long timeout),让当前线程放弃同步锁并
17、进入等待状态,直到其他线程进入此同步锁,并调用 notify()方法或 notifyAll() 方法,或者超过指定的时间量,当前线程被唤醒进入就绪状态。l notify(),唤醒在此同步锁上等待的单个线程。l notifyAll(),唤醒在此同步锁上等待的所有线程。模块九 网络编程一、填空题1. 连接 2. 网络通信协议、IP地址、端口号3. Socket、ServerSocket二、判断题1. 错 2. 错 3. 对三、选择题1. C 2. C四、简答题1.TCPUDP是否连接面向连接无连接是否可靠可靠传输,使用流量控制和拥塞控制不可靠传输,不使用流量控制和拥塞控制对象数量只支持一对一通信支
18、持一对一,一对多,多对一和多对多交互通信适用场景适用于要求可靠传输的应用,如文件传输适用于实时应用,如IP电话、视频会议、直播等2.第一次握手,客户端向服务器端发出连接请求,等待服务器确认。第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。第三次握手,客户端再次向服务器端发送确认信息,确认连接。3.通信机制:服务器端创建ServerSocket对象,监听某端口;客户端创建Socket对象,向服务器端的监听服务发送连接请求;服务器端接受客户端的请求,用accept()返回的Socket建立连接,此时连接建立。Server端和Client端分别通过向Socket读写数据完成与对方
19、的通信,这称作数据通信。最后是拆分连接,客户端关闭Socket,结束服务器端的通信,服务器端关闭Socket,结束与当前Client的通信,等待其它请求。如果没有其他请求,服务器端关闭ServerSocket对象,结束监听服务。客户端和服务器连接:服务器端生成一个ServerSocket实例对象,随时监听客户端的连接请求;客户端生成一个Socket实例对象,并发出连接请求;服务器端通过accept()方法接收到客户端的请求后,开辟一个接口与之进行连接,并生成所需的I/O数据流;通信都是通过一对InputStream()和OutputStream()进行的,通信结束后,两端分别关闭对应的Socket接口。