2016-11-10 60 views

回答

3

您可以同時使用!試一試!

「爲什麼?」你問。這裏的魔術是+運營商。

+與字符串一起使用時,它會自動將另一個操作數轉換爲字符串!這就是爲什麼它可以與'c'一起使用的字符。它也可以用於"c",因爲當然,"c"是一個字符串文字。

不僅如此,你甚至可以添加整數轉換爲字符串:

String s2=s1+1; 
1

U可以有兩種diferent方式使用它:String s2=s1+'c'; char x = 'c'; String s2 = s1 + x;

0

這兩種方法都OK,但如果你正在進入詳情那麼也許

String s2=s1+'c'; 

需要更少的內存比第二種方法,因爲char是字符串,而只是requir兩個字節es 8+字節。但我不認爲這種細微差別在大多數情況下都很重要,而且我甚至不確定這種差異是否會存在,因爲JVM可能會對它進行優化

0

Java會自動爲您進行轉換,所以它不會「我真的很重要,但我個人只是使​​用一個字符串(雙引號),因爲我個人更喜歡儘量減少如果我可以阻止它的'自動的東西'。此外,如果您決定'c'應該是'csomething',那麼您必須將其改爲boudle報價。

但我想我只是挑剔......

1

這些是2種不同類型的鑄造:隱式轉換明確鑄造

String s2=s1+'c'; 

這是一個隱式轉換,這意味着魔術由編譯器完成(無開銷)。

String s2=s1+"c"; 

這是一個顯式的鑄造,因爲「c」被轉換爲對象,如:

Object o = "c"; 
String s2 = (String) o; 

這意味着轉換必須爲空指針,這將創建的開銷進行檢查。

因此,儘管這兩種方式都有效,但我更喜歡從角色('c')投射,因爲這會創造更少的開銷!

來源:http://www.javaworld.com/article/2076555/build-ci-sdlc/java-performance-programming--part-2--the-cost-of-casting.html