Q:构造方法的特点是什么?
A:
Ⅰ。没有返回值,连void也没有
Ⅱ。构造方法的方法名与类名相同
Ⅲ。当创建对象时,构造方法自动执行
Q:Java访问修饰符public、protected、默认(default)以及private的区别?
A:
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default(默认) | √ | √ | ||
private | √ |
Q:实现多态的前提条件?
A:
Ⅰ。必须实现继承
Ⅱ。必须重写父类方法
Ⅲ。父类引用指向子类对象
Q:String、StringBuffer以及StringBuilder的区别。
A:
名称 | JDK版本 | 线程 | 效率 | 字符序列是否可变 |
String | JDK1.0 | 安全 | 低 | 不可变 |
StringBuffer | JDK1.0 | 安全 | 低 | 可变 |
StringBuilder | JDK1.5 | 不安全 | 高 | 可变 |
Q:List集合的三个子类的特点与区别是什么?
A:
集合名称 | 底层数据结构 | 查询 | 增删 | 线程是否安全 | 效率 |
ArrayList<T> | 数组 | 快 | 慢 | 线程不安全 | 效率高 |
Vector<T> | 数组 | 快 | 慢 | 线程安全 | 效率低 |
LinkedList<T> | 链表 | 慢 | 快 | 线程不安全 | 效率高 |
Q:HashMap和Hashtable的区别。
A:
名称 | JDK版本 | 线程是否安全 | 效率 | 是否允许存储空键和空值 |
HashMap | JDK1.2 | 线程不安全 | 高 | 允许 |
Hashtable | JDK1.0 | 线程安全 | 低 | 不允许 |