簡體   English   中英

Java編譯器字符串優化

[英]Java Compiler String optimization

對我來說,編譯器會采用這樣的方式似乎是合理的:

log.info("A really long logger message that is kind of a pain in the tucous " + 
    "and violates formatting standards by making the line to long");

並將兩個字符串編譯成一個。 我很確定這是真的,但如果有人提出來的話,我想把我的鴨子連成兩排。

是的,這將由Java語言規范的常量表達式部分處理。 特別參見第15.18.1部分 字符串連接運算符+

由常量表達式計算的字符串(第15.28節)在編譯時計算,然后將其視為文字。

JLS的引用顯示給任何“挑戰”你的人。

要檢查JLS對常量表達式的說法是否正確,我遵守了此代碼Test.java

public static void main(String[] args) {
    log.warning("123" + "456");
}

然后用Jad反編譯Test.class並得到它

public static void main(String args[])
{
    log.warning("123456");
}

也就是說,在Test.class中只有一個文字“123456”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM