コンパイラは、このようなものを取るために起こっているように私には合理的であると思われます。私はこれが本当だと確信していますが、もし誰かがそれを持ち上げたら、 は私のアヒルを連れて行きたいと思います。Javaコンパイラ文字列の最適化が
6
A
答えて
3
は、どのようなJLSは定数式について言うことは、私はこのコードを遵守trueの場合JADファイルで、Test.java
public static void main(String[] args) {
log.warning("123" + "456");
}
その後、デコンパイルTest.classをチェックしている。この
public static void main(String args[])
{
log.warning("123456");
}
を得たために、 Test.classには1つのリテラル "123456"しかありません
10
はい、これはJava言語仕様のconstant expression部分で処理されます。特定の参照部に定数式(15.28)によって計算15.18.1. String Concatenation Operator +
7
文字列は コンパイル時に計算した後、それらがリテラルであるかのように扱われます。
JLSの引用符を「あなたに挑戦する」人に見せてください。