差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

java:basic:string [2019/09/17 09:36]
tony
java:basic:string [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​java}} 
-====== String ====== 
-===== 有效率的寫法 ===== 
-==== 宣告 ==== 
-在fix findubg系列文章中有提到的寫法:​([[java:​code_quality:​findbug:​dm_string_void_ctor|DM_STRING_VOID_CTOR]]、[[java:​code_quality:​findbug:​dm_string_ctor|DM_STRING_CTOR]]) 
-<code java> 
-String bad1 = new String("​test"​);​ 
-String bad2 = new String(); 
-</​code>​ 
-V.S. 
-<code java> 
-String good1 = "​test";​ 
-String good2 = "";​ 
-</​code>​ 
-主要原理是由於"​test"​與""​在編譯時就就已決定放置於Constant Pool。new String("​test"​)在編譯時也會將"​test"​放到Constant Pool,然後Runtime會再去做new String的動作。這是不必要的浪費! 
  
-===== Reference ===== 
-  * [[http://​hi.baidu.com/​boywell/​item/​d5ee5b0cc0af55c875cd3cfd|Java对String字符串对象的创建,​管理和“+”运算符的实现]] 
-  * [[https://​javapapers.com/​java/​java-string-vs-stringbuilder-vs-stringbuffer-concatenation-performance-micro-benchmark/​|Java String vs StringBuilder vs StringBuffer Concatenation Performance Micro Benchmark]] 
- 
-=====    ===== 
----- 
-\\ 
-~~DISQUS~~