---问题---:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
---答案---:
会执行,在return前执行。
---问题---:
运行时异常与一般异常有何异同?
---答案---:
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常
---问题---:
char型变量中能不能存贮一个中文汉字?为什么?
---答案---:
能够定义成为一个中文的,因为java中以unicode编码,一个char占2个字节,所以放一个中文是没问题的
---问题---:
关于异常处理机制的叙述哪些正确
a. catch部分捕捉到异常情况时,才会执行finally部分
b. 当try区段的程序发生异常时,才会执行catch区段的程序
c. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
d. 以上都是
---答案---:
BC
---问题---:
抽象类和接口的区别?
---答案---:
(1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)
当功能需要累积时用抽象类,不需要累积时用接口。
---问题---:
super()与this()的区别?
---答案---:
This():当前类的对象,super父类对象。
Super():在子类访问父类的成员和行为,必须受类继承规则的约束
而this他代表当前对象,当然所有的资源都可以访问.
在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.
---问题---:
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
---答案---:
和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?
答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。
---问题---:
线程的基本概念、线程的基本状态以及状态之间的关系
---答案---:
线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束。
---问题---:
构造器Constructor是否可被override?
---答案---:
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。