1、重写和重载?
重载涉及同一个类的同名方法,要求方法名相同,参数列表不同,与返回值类型无关
重写是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同!
2、string stringbuffer stringbuilder区别
在单机非多线程(Multithread)的情况下使用StringBuilder会有较好的效率,因为StringBuilder没有处理同步(Synchronized)问题
StringBuffer则会处理同步问题,如果StringBuilder会在多线程下被操作,则要改用StringBuffer,让对象自行管理同步问题。
3、集合类?
Java的集合类主要有Map接口和Collection接口派生
Collection是集合类的一个顶级接口,其直接继承接口有List与Set
list集合继承Collection接口,是有序接口!List中允许重复的元素,也就是说List是一组不唯一,有序的对象!
list接口的实现类有arrayList和LinkedList.
arraylist内存分配连续的空间 善于查找比较快!
LinkedList采用链表,删除和插入效率比较高!
ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组.
LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.
Set
set接口可以存储一组唯一。无序的对象
set的实现类有hashSet
hashSet的优点是集合的元素是无序的排列、允许集合的元素为null,查找效率高!
Map
是一组键值对(key、value)
key不要求有序,不允许重复
value不要求有序,但允许重复的!
优点在与查询指定的元素比较高!
1、Hashmap 和hashtabie的区别
1)继承与实现的不同
HashTable是基于陈旧的Dictionary类,完成了Map接口;HashMap是Java1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)
2)线程安全不同
HashTable的方法是同步的,HashMap的方法是未同步的。
3)对null的处理不同
HashTable不允许null值的存在,HashMap允许null值的存在
2、final, finally, finalize的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
3、char型变量中能不能存贮一个中文汉字?为什么?.
可以啊。JAVA默认的编码是unicode
4、静态变量和实例变量的区别?
静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。