Java中用final修饰的变量
2015-07-22 20:23
239 查看
在Java中,用final修饰的变量只能赋值一次,之后不能再被重新赋值,而且被修饰的变量变成了常量。
对上面的代码编译之后的class文件进行反编译,结果如下:
编译器会对常量的运算进行优化,因此c=1+2在编译过后直接变成c=3,而d=a+b由于是两个变量相加,因此不会被优化。
将上述代码进行修改:
反编译之后结果为:
d=a+b被优化为了d=3,编译器认为被final修饰的变量a b是两个常量,因为它们不能被修改。
public class Test { public static void main(String[] args) { int a = 1; int b = 2; int c = 1 + 2; int d = a + b; } }
对上面的代码编译之后的class文件进行反编译,结果如下:
编译器会对常量的运算进行优化,因此c=1+2在编译过后直接变成c=3,而d=a+b由于是两个变量相加,因此不会被优化。
将上述代码进行修改:
public class Test { public static void main(String[] args) { final int a = 1; final int b = 2; int c = 1 + 2; int d = a + b; } }
反编译之后结果为:
d=a+b被优化为了d=3,编译器认为被final修饰的变量a b是两个常量,因为它们不能被修改。
相关文章推荐
- java中选择组合或继承的依据
- 最新Spring集成MyBatis详细教程(一)--ccw
- java GC性能优化
- java中如何终止线程
- 《深入浅出struts2》--第五章,表单标签
- 《深入理解Java虚拟机》:HotSpot虚拟机内的即时编译器
- 【JAVA基础】增,删,改,查
- java中的异常
- Eclipse. The archive which is referenced by the classpath, does not exist
- bj java 初学2015-07-22
- Java之IO流详解
- Java实现回调函数
- java 内部类 枚举
- 使用Java创建与操作PDF文档
- Java中用双缓冲技术消除闪烁
- eclipse / MyEclipse JSP默认打开方式更改
- java之反射
- Java获取当前时间
- Java培训-IO流补充
- Java集合