样的情况。 exception 表示一种
设计或实现
问题。也就是说,它表示如果程序运行正常,从不会发生的 情况。
第十九,list, set, map 是否继承自 collection 接口? list,set 是
map 不是 第二十,abstract class 和 interface 有什么区别? 声明方法的存在而不去实现它的类被叫做抽象类(abstract class) ,它用于要创建一个体现 某些基本行为的类, 并为该类声明方法, 但不能在该类中实现该类的情况。 不能创建 abstract 类的实例。 然而可以创建一个变量, 其类型是一个抽象类, 并让它指向具体子类的一个实例。 不能有抽象构造函数或抽象静态方法。abstract 类的子类为它们父类中的所有抽象方法提 供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可 以在类中实现这些方法。 接口(interface)是抽象
类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现 这样的接口而获得。接口中的所有方法都是抽象的,没有一个有
程序体。接口只可以定义 static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。 当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实 现了该接口的类的任何对象上调用接口的方法。 由于有抽象类, 它允许使用接口名作为引用 变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换, instanceof 运算符可以用来决定某对象的类是否实现了接口。 第二十一,abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized? 都不能 第二十二, 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承 实体类(concrete class)? 接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提 是实体类必须有明确的构造函数。 第二十三,启动一个线程是用 run()还是 start()? 启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它 可以由 jvm 调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的 标志来停止一个线程。
第二十四,构造器 constructor 是否可被 override? 构造器 constructor 不能被继承,因此不能重写 overriding,但可以被重载 overloading。 第二十五,是否可以继承 string 类? string 类是 final 类故不可以继承。 第二十六,当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此 对象的其它方法? 不能,一个对象的一个 synchronized 方法只能由一个线程访问。 第二十七,try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会
被执行,什么时候被执行,在 return 前还是后? 会执行,在 return 前执行。
第二十八,编程题: 用最有效率的方法算出 2 乘以 8 等於几? 有 c 背景的程序员特别喜欢问这种问题。 2 << 3 第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不 对? 不对,有相同的 hash code。 第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返 回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中 时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用 是永远不会改变的。
第三十一,swtich 是否能作用
在 byte 上,是否能作用在 long 上,是否能作用在 string 上? switch(expr1)中,expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参数应 该是 int、 short、 char 或者 byte。long,string 都不能作用于 swtich。 第三十二,编程题