原文地址 http://www.instanceofjava.com/2014/12/core-java-interview-questions.html
1、什么是 transient 变量?
transient 变量是指不会被序列化的变量。
2、什么是同步(synchronization)?
在多线程环境中,同步是指控制多个线程访问共享资源的方式。没有同步的话,可能出现一个线程正在读取或使用共享资源,同时另一个线程却在修改它的情况,这会造成严重的错误。
3、在 JDK 1.2 中,stop()
, suspend()
和 resume()
这三个方法有什么变化?
它们都被标注为 "deprecated",也就是应该避免使用。
4、null
是一个关键字吗?
不是。
5、线程停止运行后是什么状态?
线程停止运行后,就变成 DEAD 状态。
6、什么是集合 API(Collection API)?
集合 API 是指一组用于帮助处理对象集合的类和接口。
7、List
接口是做什么的?
List 接口是用来处理有序且允许重复的对象集合的接口。
8、Vector
类是做什么的?(译注:现在没人用这个类了)
Vector 是一个可增长的对象数组。
9、抽象类可以实例化么?
抽象类不能直接实例化,而只能通过创建其子类对象,来间接实例化。
10. Java 程序中用到的第一个关键字是什么?
package
。
11. 什么时候应该将类定义为 final
?
不希望有子类的时候;
不希望功能被扩展的时候。
12. 能否将抽象方法声明为静态的?
不允许,这样做会导致编译错误:illegal combination of modifiers abstract and static
13. 能否将接口声明为抽象的?
可以。声明接口的时候加不加上 abstract 没有区别。
14. 能否声明一个内容为空的接口?
可以。
15. 能否将接口声明为 final
?
不允许,这样做会导致编译错误。因为接口必须要有子类。
16. 如何处理 ClassCastException?
在强制类型转换之前用 instanceof 判断是否可以转换。
17. "xyz"
是基本型别(Primitive)类型的值吗?
不是,"xyz"
是一个字符串,不是基本型别类型的值。
18. 一个对象什么时候可以被回收(garbage collection)?
当程序不可访问(unreachable)该对象的时候,该对象可以被回收。
19. 所有线程都要实现的一个方法是什么?
run()
方法,不论该线程是继承自 Thread
类或是实现了 Runnable
接口。
20. 当异常没有被捕获时,会发生什么?
当前线程所在的线程组会执行一个叫 uncaughtException()
的方法,最后程序会异常退出。
21. 构造方法中如何使用 this()
和 super()
?
前者用来调用当前类的其他构造方法;后者用来调用父类的构造方法。
22. 什么情况下垃圾收集器会执行对象的 finalize()
方法?
当垃圾收集器检测到该对象不可访问(unreachable)时,会执行该对象的 finalize()
方法。
23. 方法重载(overloading)有什么要求?
方法的名称必须一样;方法的参数声明必须不一样。
24. 编译器什么情况下会提供缺省构造方法(default constructor)?
当一个类没有其他构造方法的时候,编译器会为其提供缺省的构造方法。
25. 非静态内部类可以使用哪些修饰符(modifier)?
非静态内部类可以使用 final
或 abstract
修饰符。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。