1、 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:不可以
(
抽象类和抽象方法不能被继承
)
;不可以
(
接口
)
;不可以
(
资源同步
)
。
2、 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
答:可以;可以;可以
(
前题是该实体类必须有明确的构造函数
)
。
3、 启动一个线程是用run()还是start()?
答:
启动一个线程是调用
start()
方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由
JVM
调度并执行。这并不意味着线程就会立即运行。
run()
方法可以产生必须退出的标志来停止一个线程。
4、 构造器Constructor是否可被override?
答:不可以(构造函数不能被继承)。
5、 是否可以继承String类?
答:不可以(是
final
类,所有基本属性的外父类都是
final
类)。
6、 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答:会,在
return
之前,
finally
块中的代码永远被执行。
7、 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。
Java
编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
8、 swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:可以(比
int
短);不可以;不可以。
9、运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。 java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。 java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
10、Struts框架应用了哪些设计模式?
MVC
、工厂模式、
单例
是三个最明显的设计模式。