It seems reasonable to me that the compiler is going to take something like this:
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");
and compile the two Strings into one. I'm pretty sure this is true but I would like to have my ducks in a row if anyone brings it up.
To check if what JLS says about constant expressions is true I complied this code, Test.java
public static void main(String[] args) {
log.warning("123" + "456");
}
then decompile Test.class with Jad and got this
public static void main(String args[])
{
log.warning("123456");
}
that is, in Test.class there is only one literal "123456"