面试集锦二
9.
Collection是集合类的上级接口,继承与他的接口主要有 Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排
序、线程安全化等操作
10.
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型,所以会出现转换时
精度丢失错误)short s1 = 1; s1 += 1;(可以正确编译,因为+=是特殊java运算符,不会自动
进行数据的提示,而是按照同一类型进行的转换。)
11.
数组没有length()这个方法,有 length的属性。String有有 length()这个方法
12.
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding
是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如果
在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类
的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"
了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,
则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型
13.
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可
能指望程序能处理这样的情况
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的
情况
14.
接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承实体类
//super关键字是针对父类方法的,且是已实现的
//但是接口是没有实现的,使用就是自相矛盾
public class 接口使用super implements test{
@Override
public void getInfo() {
}
public static void main(String args[]){
B b = new B();
b.getS();
}
}
interface test{
public void getInfo();
}
class TestExtends{
}
abstract class AA extends TestExtends{
public void getS(){
System.out.println("fdgfdgdf");
}
}
class B extends AA{
}
15.
HashMap与 HashTable主要从三方面来说。
一.历史原因:Hashtable 是基于陈旧的Dictionary 类的,HashMap是Java 1.2引进的 Map接口
的一个实现
二.同步性:Hashtable 是线程安全的,也就是说是同步的,而 HashMap 是线程序不安全的,
不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
16.
谈谈final, finally, finalize 的区别
答:final—修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,
不能作为父类被继承。因此一个类不能既被声明为 abstract 的,又被声明为 final 的。将变
量或方法声明为 final,可以保证它们在使用中不被改变。
被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被
声明为final的方法也同样只能使用,不能重载
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹
配的catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除
出去