Java字符串的熱點問題

1、對那些安全敏感的信息,爲什麼用char[]存儲要優於String?

String是不可變的,這就意味着它一旦被創建,就將永久駐留在內存中,直到垃圾回收器將其回收爲止。然而用數組存儲方式,你可以明確地改變數組中的元素,因此用數組方式,安全信息將有可能不存在系統內存的任何地方。

2、能否用字符串來聲明switch語句?

JAVA 7及以後的版本是支持的。在JDK 7中,允許你使用字符串做switch語句的比較條件。jdk 6以前的版本,不能這樣使用:

// java 7 only!
switch (str.toLowerCase()) {
      case "a":
           value = 1;
           break;
      case "b":
           value = 2;
           break;
}

3、如何重複輸出字符串?

在Python中,我們只需要爲字符串乘上一個數字就可以重複輸出該字符串了。然而在Java中,我們可以用StringUtils的repeat()方法來實現,StringUtils是Apache公共語言庫的其中一個類庫成員。

String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd

4、如何統計指定字符在字符串中出現的頻率

同樣我們利用了Apache公共語言庫中的StringUtils,代碼如下:

int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);

以上這10個關於Java字符串的問題,你遇到過多少?另外,你覺得還有哪些問題會對Java開發者產生困惑,評論中告訴我們,讓我們一起來探討。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章