java面试题及答案高级.doc
java面试题及答案高级
单项选择题(每题2分,共10题)
1.以下哪种不是Java的集合类型?A.ListB.ArrayC.Map
答案:B
2.关于多态,说法正确的是?A.子类不能重写父类的方法B.一个对象可以有多种形态C.多态只适用于类,不适用于接口
答案:B
3.以下哪个关键字用于抛出异常?A.tryB.throwC.catch
答案:B
4.Java中线程有几种状态?A.4B.5C.6
答案:C
5.以下哪个是Java中的字节流?A.InputStreamB.ReaderC.Writer
答案:A
6.关于抽象类,说法错误的是?A.抽象类可以有抽象方法B.抽象类不能实例化C.抽象类不能有构造方法
答案:C
7.以下哪种排序算法平均时间复杂度最低?A.冒泡排序B.快速排序C.选择排序
答案:B
8.若想创建一个不可变集合,用哪个类?A.ArrayListB.Collections.unmodifiableListC.LinkedList
答案:B
9.哪个修饰符可以使成员变量只能在本类中访问?A.publicB.privateC.protected
答案:B
10.以下关于泛型说法正确的是?A.泛型只在编译期起作用B.泛型在运行期也会检查类型C.泛型不能用于类,只能用于方法
答案:A
多项选择题(每题2分,共10题)
1.以下属于Java多线程同步机制的有?A.synchronizedB.LockC.volatile
答案:AB
2.以下哪些是Java中的异常类型?A.RuntimeExceptionB.IOExceptionC.Error
答案:AB
3.以下关于接口的说法正确的有?A.接口可以有抽象方法B.接口可以有默认方法C.类可以实现多个接口
答案:ABC
4.以下哪些是Java中的集合接口?A.CollectionB.ListC.Set
答案:ABC
5.以下哪些操作可能会导致内存泄漏?A.长生命周期对象持有短生命周期对象引用B.未释放数据库连接C.频繁创建和销毁对象
答案:AB
6.以下哪些属于Java的访问修饰符?A.publicB.privateC.static
答案:AB
7.以下哪些是Java中的字节流类?A.FileInputStreamB.DataOutputStreamC.BufferedReader
答案:AB
8.以下哪些关于hashCode方法说法正确?A.两个相等对象hashCode一定相等B.hashCode方法用于提高集合查找效率C.重写equals方法必须重写hashCode方法
答案:ABC
9.以下哪些属于Java的垃圾回收算法?A.标记清除算法B.标记整理算法C.复制算法
答案:ABC
10.以下哪些可以用于处理Java中的XML?A.DOMB.SAXC.JAXB
答案:ABC
判断题(每题2分,共10题)
1.Java中final类不能被继承。
答案:对
2.静态方法可以访问非静态成员变量。
答案:错
3.一个类可以实现多个接口。
答案:对
4.异常处理中,finally块一定会执行。
答案:错
5.Java中的String是不可变对象。
答案:对
6.多线程中,死锁是不可避免的。
答案:错
7.接口中的方法默认是publicabstract的。
答案:对
8.数组也是对象。
答案:对
9.Java中,子类构造方法一定会调用父类构造方法。
答案:对
10.泛型类型参数在运行时会被擦除。
答案:对
简答题(每题5分,共4题)
1.简述Java中多态的实现方式
答案:Java多态通过方法重写和方法重载实现。子类重写父类方法,根据对象实际类型决定调用哪个方法;方法重载是在一个类中定义多个同名不同参数的方法,编译期根据参数类型和个数确定调用方法。
2.说明Java内存区域划分
答案:分为程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。程序计数器记录当前线程执行字节码行号;虚拟机栈存储方法调用和局部变量;本地方法栈为native方法服务;堆存放对象实例;方法区存储类信息