1. 在那种情况下finally里面的语句不会被执行?
答案:如果在finally语句之前执行了终止程序的System.exit()方法, 那么finally语句就不会被执行,这是finally语句不被执行的唯一情况。
2. 在Java类的内部,变量的初始化的顺序是怎样的?
答案:在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量的定义散布于方法定义之间,它们仍就会在任何方法(包括构造方法)被调用之前被初始化。
3. Java中如果将一个数组赋给另外一个数组,是只复制了一个引用吗?
答案:对的
4. 请描述一下Java中对象的创建过程?
答案:假设有一个名为Dog的类
a. 首次创建类型为Dog的对象时(构造方法可以看成静态方法),或者Dog类的静态方法、静态域首次被访问时,java解释器必须查找类路径,以定位Dog .calss文件。
b. 然后载入Dog.class,有关静态初始化的动作都会执行。因此,静态初始化只在class对象首次加载的时候进行一次。
c. 当你用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。
d. 这块内存空间会被清零,这就自动地将Dog中的所有基本类型数据设置成默认值(对数字来说就是0,对布尔型和字符型也相同),而引用则被设置null。
e. 执行所有出现于域定义处的初始化动作。
f. 执行构造器。