高级java面试题及答案
单项选择题(每题2分,共10题)
1.以下哪个不是Java多态的体现方式?
A.方法重载B.方法重写C.接口实现D.类继承
2.Java中用于处理线程同步的关键字是?
A.staticB.finalC.synchronizedD.volatile
3.以下哪种集合类是线程安全的?
A.ArrayListB.HashMapC.VectorD.HashSet
4.关于Java内存模型,说法错误的是?
A.主内存是所有线程共享的B.工作内存是每个线程私有的
C.对变量的操作都在主内存进行D.线程对变量的操作先从主内存读取到工作内存
5.下面哪个类是Java中输入输出流的基类?
A.InputStreamB.FileInputStreamC.BufferedInputStreamD.DataInputStream
6.以下哪种设计模式属于创建型模式?
A.代理模式B.单例模式C.观察者模式D.装饰器模式
7.当一个线程进入一个对象的synchronized方法后,其他线程对该对象的其他synchronized方法访问会怎样?
A.可以同时访问B.等待当前线程释放锁C.直接报错D.随机访问
8.Java中,以下哪个关键字用于抛出异常?
A.tryB.catchC.throwD.finally
9.以下哪个接口用于实现对象的序列化?
A.RunnableB.SerializableC.CloneableD.Comparable
10.以下哪种情况会导致Java程序内存泄漏?
A.及时释放不再使用的对象引用B.正确使用try-catch-finally块
C.静态集合类中对象引用未及时清理D.合理使用线程池
多项选择题(每题2分,共10题)
1.以下哪些属于Java的基本数据类型?
A.intB.StringC.doubleD.boolean
2.关于Java中的接口,以下说法正确的是?
A.接口中的方法默认是publicabstract
B.接口中的成员变量默认是publicstaticfinal
C.一个类可以实现多个接口
D.接口可以继承多个接口
3.以下哪些是Java中的异常类型?
A.NullPointerExceptionB.ArrayIndexOutOfBoundsException
C.ClassNotFoundExceptionD.SQLException
4.以下哪些集合类允许存储重复元素?
A.ListB.SetC.MapD.Queue
5.下面哪些是Java多线程的创建方式?
A.继承Thread类B.实现Runnable接口
C.实现Callable接口D.使用线程池
6.关于Java中的反射机制,以下说法正确的是?
A.可以在运行时获取类的信息B.可以创建对象
C.可以调用类的方法D.可以修改类的私有成员
7.以下哪些属于Java的访问修饰符?
A.publicB.privateC.protectedD.default
8.以下哪些操作会触发Java的垃圾回收机制?
A.系统内存不足B.调用System.gc()
C.对象失去所有引用D.手动创建垃圾回收线程
9.以下哪些是Java中常用的序列化协议?
A.Java原生序列化B.JSONC.XMLD.ProtocolBuffers
10.以下哪些属于Java中的设计模式原则?
A.单一职责原则B.开闭原则C.里氏替换原则D.依赖倒置原则
判断题(每题2分,共10题)
1.Java中,final类不能被继承,final方法不能被重写。()
2.所有的Java异常都必须捕获处理,否则编译不通过。()
3.ArrayList和LinkedList在随机访问性能上一样。()
4.静态变量和实例变量在内存中的存储位置相同。()
5.一个Java类可以同时继承一个类并实现多个接口。()
6.Java中的synchronized关键字只能用于方法,不能用于代码块。()
7.字符串常量池中的字符串对象是不可变的。()
8.当一个线程调用wait方法后