1. 如果希望监听TCP端口9000,服务器端应该怎样创建socket?
A new Socket(“localhost”,9000);
B new ServerSocket(9000);
C new Socket(9000);
D new ServerSocket(“localhost”,9000);
答案:B
解析:
- ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中的一个socket。
- Socket(InetAddress address , int port)是创建客户端连接主机的socket流,其中InetAddress是用来记录主机的类,port指定端口。
2. jre 判断程序是否执行结束的标准是()
A 所有的前台线程执行完毕
B 所有的后台线程执行完毕
C 所有的线程执行完毕
D 和以上都无关
答案:A
解析:
- 后台线程就是守护线程,前台线程就是用户线程。
- 守护线程:是指在程序运行时在后台提供一种通用服务的线程,这种线程并不是必须的。同时守护线程的线程优先级都很低的。JVM中的GC线程就是一个守护线程,只要JVM启动,GC线程就启动了。
- 用户线程和守护线程几乎没有什么区别,唯一的区别就在于,如果用户线程都已经退出了,只剩下了守护线程,那么JVM直接就退出了。
3. 下列哪项不属于jdk1.6垃圾收集器?
A Serial收集器
B parNew收集器
C CMS收集器
D G1收集器
答案:D
解析:D,G1收集器是在JDK1.7中正式投入使用。
JDK1.6的收集器有:serial、ParNew、Parallel Scavenge、CMS、Serial old、Parallel Old
4. instanceof运算符能够用来判断一个对象是否为:
A 一个类的实例
B 一个实现指定接口的类的实例
C 全部正确
D 一个子类的实例
答案:C
解析:instanceof是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例
5. 下面代码,s 的值是什么?
int i=5;
int s=(i++)+(++i)+(i--)+(--i);
s=( )//s 的值是什么?
A 28
B 25
C 21
D 26
E 24
F 23
答案:E
解析:
- i++是先取值再加,所以第一个括号里表达式值为5,出了括号后i的值为6
- ++i 是先加再取值,所以第二个括号里表达式的值相当于6+1之后取值为7,出了括号后i的值为7
- i–是先取值再减,所以第三个括号里表达式值为7,出了括号后i的值为6
- –i是先减再取值,所以第四个括号里表达式的值相当于6-1之后取值为5,出了括号后i的值为5
综上s=5+7+7+5=24,答案为E