In general, + always create new string unless it happens at compiler time, so in s1=s+"" a new string is created, but in s2="ab"+"c", no new string is created, based on my poor memory.
JLS规定的: http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jl The String object is newly created (§12.5) unless the expression is a compile-time constant expression (§15.28). String s1=s+""; 不是一个 compile-time constant expression,因为s是个变量 同理 String s3 = "bc"; s == "a" + s3 -> false
w*y
22 楼
Helix的屏幕比例竖着偏长,Tablet的电池续航偏短,抓在手上比较热。总体上比不过 Surface Pro 3。
【在 S***r 的大作中提到】 : Thinkpad helix呢?
f*x
23 楼
哦,明白了 关键在于compile time
【在 p*****p 的大作中提到】 : JLS规定的: : http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jl : The String object is newly created (§12.5) unless the expression is a : compile-time constant expression (§15.28). : String s1=s+""; : 不是一个 compile-time constant expression,因为s是个变量 : 同理 : String s3 = "bc"; : s == "a" + s3 -> false