面试题4

来源:互联网 发布:executor java 编辑:程序博客网 时间:2024/06/04 18:30

 

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编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
10、Struts框架应用了哪些设计模式?
MVC、工厂模式、单例是三个最明显的设计模式。