Java--SE简答题2


2019-11-09 09:48:16

 

1. 简述static关键字的作用。(5分)

static可以修饰变量、方法和代码块和内部类,分别称为静态变量,静态方法,静态代码块和静态内部类。

1)  静态变量属于这个类所有,即由该类创建的所有对象共享同一个static变量。

a)  不管有多少个对象,静态变量只有1份。(0.5分)

b)  静态变量存在方法区中。(0.5分)

c)  可通过对象名.静态变量名,类名.静态变量名两种方式访问。(0.5分)

d)  静态变量在第一次使用类的时候分配空间。(0.5分)

2)  静态方法:可通过对象名.静态方法名和类名.静态方法名两种方式访问。(1分)

3)  静态代码块:当类被第一次使用时执行静态代码块,且只被执行一次,主要作用是实现static属性的初始化。(1分)

4)  静态内部类:属于整个外部类,而不是属于外部类的每个对象。(1分)

2. 2.简述接口和抽象类的相同和不同之处。(5分)

相同点

抽象类和接口均包含抽象方法0.5分)

抽象类和接口都不能实例化0.5分)

两者的区别主要体现在两方面:语法方面和设计理念方面。

语法方面的区别是比较低层次的,非本质的,主要表现在:

接口中只能定义全局静态常量。抽象类中可以定义常量和变量0.5分)

接口中所有的方法都是全局抽象方法。抽象类中可以有0个、1个或多个,甚至全部都是抽象方法0.5分)

抽象类中可有构造方法,但不能实例化。接口中不能定义构造方法0.5分)

一个类只能有一个直接父类(可以是抽象类),但可以实现多个接口0.5分)

二者的主要区别还是在设计理念上,其决定了某些情况下到底使用抽象类还是接口:

抽象类体现了一种继承关系,目的是复用代码.父类和子类之间必须存在“is-a”的关系,即父类和子类在概念本质上应该是相同的1分)

接口定义了“做什么”,而实现类负责完成“怎么做”,体现了功能(规范)和实现分离的原则。接口和实现之间可以认为是一种“has-a的关系1分)

3. 简述ListSetCollectionMap的区别和联系。5分)

1)  ListSetCollection接口的两个子接口1分)

2)  Collection 接口存储一组不唯一,无序的对象1分)

3)  List 接口存储一组不唯一,有序(插入顺序)的对象1分)

4)  Set 接口存储一组唯一,无序的对象1分)

5)  Map接口存储一组键值对象,提供keyvalue映射。Key无序,唯一。value不要求有序,允许重复。(如果只使用key存储,那就是Set1分)

4. 简述进程和线程的联系和区别。5分)

进程和线程的联系:(2分)

1)  线程是指进程内的一个执行单元,也是进程内的可调度实体(0.5分)

2)  一个线程只能属于一个进程,一个进程可有多个线程,至少一个线程(1分)

3)  进程和线程都可以并发执行(0.5分)

线程与进程的区别:(3分)

1)  根本区别:线程是调度和执行基本单位,进程时分配资源的基本单位。(1分)

2)  开销:进程间切换开销大,线程间切换开销小(1分)

3)  所处环境:在操作系统中能同时运行多个任务(进程) 在同一应用程序中有多个顺序流(线程)同时执行(1分)

5. 简述基于TCPSocket编程的主要步骤(5分)

服务器端编程步骤:

1)  构建一个ServerSocket实例,指定本地的端口。1分)

2)  调用accept()方法来获得客户端的连接请求。通过accept()方法返回的socket实例,建立了一个和客户端的新连接。1分)

3)  通过这个返回的socket实例获取InputStreamOutputStream,可以通过这两个stream来分别读和写数据。0.5分)

4)  结束的时候调用socket实例的close( )方法关闭socket连接。0.5分) 

客户端编程步骤:

1)  构建Socket实例,通过指定的远程服务器地址和端口来建立连接。1分)

2)  通过Socket实例包含的InputStreamOutputStream来进行数据的读写。0.5分)

3)  操作结束后调用socket实例的close方法,关闭。0.5分)

 

 

猜你喜欢

转载自www.cnblogs.com/9797ch/p/11824307.html