Java面试题二

时间:2024-03-08 13:20:41

1、public、private、protected、Friendly的区别与作用域

public,protected,friendly,private的访问权限如下:

 
    关键字       当前类           包内       子孙类            包外 
 
    public         √                 √            √                √ 
 
    protected   √                 √             √               × 
 
    friendly       √                 √             ×               × 
 
    private        √                 ×             ×               × 
 
    不写时默认为friendly
    不使用关键字默认为包内使用。
2、short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错

第一句错,第二句不错。

Java规范:
a.高位转低位需要强制转换
b.低位转高位自动转.

复合赋值(E1 op=E2)等价于简单赋值(E1=(T)((E1) op (E2))),而(s1 += 1)表达式使用的是复合赋值操作符,复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型。如果结果的类型与该变量的类型相同,那么这个转型不会造成任何影响。