编译器的两点优化
在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果。
short result = 5 +8;//等号右边全都是常量,没有任何变量参与运算。
编译之后,得到.class字节码文件相当于【直接就是】:
short result =13;
右侧的常量结果数值,没有超过左侧的范围,所以正确。
这称为“编译器的常量优化”。
但是注意:一旦表达式中有变量参与,那么就不能进行这种优化了。
JDK9对集合添加的优化———————of方法
List接口,Set接口,Map接口————里边增加了一个静态的方法of,可以给集合一次性添加多个元素。
static<E>List<E>of(E …elements)
使用前提
当集合中存储的元素的个数已经确定了,不在改变时使用。
注意
- of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类。
- of方法返回值是一个不能改变的集合,集合不能使用add,put方法添加元素,会抛出异常。
- Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常。