看视频和书籍学习理论的时候,难免会有疏忽,或者自以为学明白了,其实有些地方不清楚甚至理解错误,通过做一些笔试题,能够明白自己的不足,也能加深印象,在此记录下来。
继承相关
子类父类代码执行先后顺序如下:
- 父类静态代码块
- 子类静态代码块
- 父类非静态代码块
- 父类构造器
- 子类非静态代码块
子类构造器
当实例化子类对象时,首先要加载父类class文件,静态代码块是随着类的创建而执行的,所以父类静态代码块先执行;然后加载子类class文件,同理,执行子类静态代码块;实例化子类对象需要先调用父类构造方法,而调用构造方法前需要先执行该类的非静态代码块。
基本语法相关
i++执行时,先使用i参与计算,然后i再自加。虽然知道其含义,但是碰到return i++;时,总以为返回的是i自加后的值,但其实是i的值,返回后i才自加。
1
2i = 0;
return i++;//返回值为0静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法。
内存相关
- 成员变量随着对象的创建而创建,因此存在于对象所在的堆内存;局部变量保存再栈内存。