用,它提供了一种明确表述共性的方法。对象的一个新
40、构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写
Overriding,但可以被重载Overloading。
41、是否可以继承String类?
String类是final类故不可以继承。
42、swtich是否能作用在byte上,是
否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表
达式。因此传递给 switch 和 case 语句的
参数应该是 int、 short、 char 或者 by
te。long,string 都不能作用于swtich。
43、try {}里有一个return语句,那么紧跟
在这个try后的finally {}里的code会不会
被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
44、编程题: 用最有效率的方法算出2乘以8
等於几?
2 << 3
45、两个对象值相同(x.equals(y) == tr
ue),但却可有不同的hash code,这句话对
不对?
不对,有相同的hash code。
46、当一个对象被当作参数传递到一个方法
后,此方法可改变这个对象的属性,并可返
回变化后的结果,那么这里到底是值传递还
是引用传递?
是值传递。Java 编程语言只有值传递参数
。当一个对象实例作为一个参数被传递到方
法中时,参数的值就是对该对象的引用。对
象的内容可以在被调用的方法中改变,但对
象的引用是永远不会改变的。
47、当一个线程进入一个对象的一个synchr
onized方法后,其它线程是否可进入此对象
的其它方法?
不能,一个对象的一个synchronized方法
只能由一个线程访问。
48、编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应
用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数
为private的,它有一个static的private
的该类变量,在类初始化时实例话,通过一
个public的getInstance方法获取对它的引
用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,
是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton in
stance = new Singleton();
//这里提供了一个供外部访问本cl
ass的静态方法,可以直接访问
public static Singleton get
Instance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Sing
leton getInstance() {
//这个方法比上面有所改进
,不用每次
都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定义一个类,它的构造函数为private的,所
有方法为static的。
一般认为第一种形式要更加安全些
49、Java的接口和C++的虚类的相同和不同处。
由于Java不支持多继承,而有可能某个类
或对象要使用分别在几个类或对象里面的方
法或属性,现有的单继承机制就不能满足要
求。与继承相比,接口有更高的灵活性,因
为接口中没有任何实现代码。当一个类实现
了接口以后,该类要实现接口里面所有的方
法和属性,并且接口里面的属性在默认状态
下面都是public static,所有方法默认情况
下是public.一个类可以实现多个接口。
50、Java中的异常处理机制的简单原理和应用。
当JAVA 程序违反了JAVA的语义规则时,J
AVA虚拟机就会将发生的错误表示为一个异常。
违反语义规则包括2种情况。一种是JAVA类库内
置的语义检查。例如数组下标越界,会引发Inde
xOutOfBoundsException;访问null的对象时
会引发NullPointerException。另一种情况就
是JAVA允许程序员扩展这种语义检查,程序员可
以创建自己的异常,并自由选择在何时用throw
关键字引发异
常。所有的异常都是 java.lang.Thowable的
子类。