1、java子类和父类中的构造块、初始化块、静态初始化块执行顺序
笔试题中经常会考到有一个子类继承一个父类,然后各自有各自的代码块等输出,然后问输出顺序是什么。这里我们就要搞清楚他们的执行顺序问题。
- 静态初始化块>初始化块>构造器
- 父类>子类
这两种顺序我们都很熟悉,但当他们结合在一起的时候,顺序会有所改变。
- 父类静态初始化块
- 子类静态初始化块
- 父类初始化块
- 父类构造器
- 子类初始化块
- 子类构造器
进阶(重载重写问题)
2、java中Collection接口、Map接口问题
判断题,常用接口及其实现的接口问题
进阶(线程安全问题)
3、try,catch问题
此类问题常和++,--等赋值问题一起考
i=0;
try{
i = i++;
throw exception;
}catch(exception e){
i++;
return i;
}finally{
i++;
return i;
}
try运行,如果遇到错误就运行catch,finally是无论如何都会运行的,通常这里会加入一个return的考点。
进阶(运算符问题)
重载:函数重载是指在同一作用域内(名字空间),可以有一组具有相同函数名,不同参数列表的函数
(重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。)
重写:指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样
(重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!)
父类引用指向子类对象,并调用子类方法
这时候如果用father调用方法father,method() ;如果method()方法只有父类有,子类里没有写。那么就调用父类里那个方法体。如果在子类里有对method()进行了重写(注意是重写不是重载), 那么就调用子类里的那个方法体。
线程安全集合类:喂!SHE!
喂:Vector S:stack H:hashtable E:Eenumeration(枚举,相当于迭代器)