3

原文地址 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

  1. 不希望有子类的时候;

  2. 不希望功能被扩展的时候。

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)?

非静态内部类可以使用 finalabstract 修饰符。


捏造的信仰
2.8k 声望272 粉丝

Java 开发人员