使用 StringBuffer。 典型地,你可以使用 StringBuffers 来动态构造字符数据。
11、运行时异常与一般异常有何异同? 11、运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运
行时异常表示虚拟机的通常操作中 可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须声明抛出可能发生的 非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
12、 12、说出 ArrayList,Vector, LinkedList 的存储性能和特性
ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便 增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动 等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized 方法(线 程安全),通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索
引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以 插入速度较快。
13、 的区别。 13、Collection 和 Collections 的区别。
Collection 是集合类的上级接口,继承与他的接口主要有 Set 和 List. Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的
搜索、 排序、线程安全化等操作。
14、 &;&;的区别。 14、&;和&;&;的区别。 的区别
&;是位运算符,表示按位与运算,&;&;是逻辑运算符,表示逻辑与(and)。
15、 中为什么要引入内部类?还有匿名内部类? 15、请说一下 java 中为什么要引入内部类?还有匿名内部类?
答: 第一、隐藏你不想让别人知道的操作,即封装性 第二、非静态内部类可以访问外部类的内容,甚至私有成员变量 第三、减少类数量的同时,使代码结构更清晰 第四、减少命名的冲突
的区别。 16、HashMap 和 Hashtable 的区别。
HashMap 是 Hashtable 的轻量级实现 (非线程安全的实现) 他们都完成了 Map 接口, , 主要区别在于 HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于 Hashtable。 HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。 HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因 为 contains 方法容易让人引起误解。 Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实现。 最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线程访问 Hashtable 时,不需要自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。 Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一样, 所以性能不会有很大的差异。
17、 的区别。 17、final, finally, finalize 的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally 是异常处理语句结构的一部分,表示总是执行。finalize 是 Object 类的一个方法,在 垃圾收
集器执行的时候会调用被回收对象的此方法, 可以覆盖此方法提供垃圾收集时的其他 资源回收,例如关闭文件等。
18、 有什么区别? 18、sleep() 和 wait() 有什么区别?
sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他 线程,但是监控状态依然保持,到时后会自动恢复。调用 sleep 不会释放对象锁。wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待 锁定池,只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获 得对象锁进入运行状态。
19、 Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类 19、 型?
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。 重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如 果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。 子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽” 了。 如果在一个类中定义了多个同名的方法, 它们或有不同的参数个数或有不同的参数类型,
则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。
20、 有什么区别? 20、error 和 exception 有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重
问题。比如说内存溢出。不可 能指望程序能处理这样的情况。 exception 表示一种
设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的 情况。
21、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 21、 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在 读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用
程序在对象上调用了一个需要花费很长时间来执行的方法, 并且不希望