7/10
1、
图片说明
基本数据类型、包装类--string型:连接运算、调用String重载的valueOf

2、
Java表达式转型规则由低到高转换:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型,如果两个操作数中有一个是float类型的,另一个将会被转换为float类型,并且结果也是float类型,如果两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型,否则(操作数为:byte、short、int 、char),两个数都会被转换成int类型,并且结果也是int类型。
①被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化。
②一个final的变量和另一个不是final的变量操作,你就当final不存在就行
图片说明
1、3、4错误
语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;
语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;
语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);
语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。

3、
图片说明

经过代码测试:
当直接new 子类 创建时的执行顺序为:父类静态块、子类静态块、父类构造方法、子类构造方法。
当new创建子类数组时,不加载任何东西
当用父类名调用父类静态变量、方法时:加载父类静态块
当用子类名调用父类静态变量、方法是:加载父类静态块
当用子类名调用子类特有静态变量、方法是:加载父类静态块、加载子类静态块

https://blog.csdn.net/qq_22771739/article/details/86348962

图片说明

9/10
1、
图片说明
JAVA访问变量采用就近原则,局部变量与成员变量重名时,局部变量比较近,使用局部变量
除了使用this
图片说明

2、
如果父类中的某个方法使用了 synchronized关键字,而子类中也覆盖了这个方法,默认情况下子类中的这个方法并不是同步的,必须显示的在子类的这个方法中加上 synchronized关键字才可。当然,也可以在子类中调用父类中相应的方法,这样虽然子类中的方法并不是同步的,但子类调用了父类中的同步方法,也就相当子类方法也同步了。详见:http://blog.csdn.net/welcome000yy/article/details/8941644

3、
图片说明
图片说明
康师傅的原题,幸亏当时记住了