java编译速度_java如何优化编译呢?

#java编译器对`String常量表达式`的优化:

- 1.String+String 可以被编译器识别为常量表达

String a="ab" ;

String b="a"+"b";//编译后:b="ab"

System.out.println(a==b);//true

分析:

编译器将"a"+"b"当做常量表达式,在编译时期进行优化,直接取"ab". 在运行时期

并没有创建新的对象,而是从jvm字符串常量池中获取之前已经存在的"ab"对象.

- 2.String+基本类型 可以被编译器识别为常量表达式

String a="a1";

String b="a"+1; //"a1"

String c="a"+true;//"atrue"

String d="a"+3.14;//"a3.14"

#java编译器对`常量`优化:

* 它是编译时的一项优化技术,将代码的常量计算在编译期完成,节约了运行时的计算量.

1.常量替换

//编译前:

final int x=10;

int y=x;

//编译后

int x=10;

int y=10;//编译时,常量替换了

2.数学恒等式的模式匹配替换

//编译前:

int x=10+10;

//编译后

int x=20;//编译时,模式匹配替换了

3.常量折叠

//编译前:

boolean flag=true||(a || b && c);

//编译后

boolean flag=true;//编译时,常量折叠了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值