java如何优化编译呢?

C#默认用debug模式编译,速度和java用javac编译一样,如两者执行20亿次浮点运算都用了10s,但如果C#用release模式编译,同样是20亿次浮点运算,只用了3s,java有没有类似的优化呢?

(javac的选项我看了,好像都没有可以优化编译,网上也找不到相应信息)

慕标琳琳
浏览 1035回答 1
1回答

潇湘沐

#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;//编译时,常量折叠了

白板的微信

⒈五言古诗⒉乐府⒊七言古诗⒋乐府⒌五言律诗唐诗宋词
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java