簡體   English   中英

在Java中,存儲字符串

[英]In Java, Storing String

我有一個關於在Java中存儲字符串的問題。 您知道我可以使用String類或字符數組存儲字符串,但是我們通常使用String類存儲字符串。 但是為什么將字符串存儲在String對象中而不是使用字符數組進行存儲。 據我所知,其他低級語言字符串存儲為字符數組。

您能解釋一下使用String對象存儲字符串的原因和好處嗎?

謝謝。

我認為您應該在Java中尋找String實現,您會看到類似以下內容的內容:

private final char value[];

這意味着String使用字符數組。 從文檔引用:

The class String includes methods for examining individual characters of the sequence, for comparing strings, for searching strings, for extracting substrings, and for creating a copy of a string with all characters translated to uppercase or to lowercase.

因此,您會看到String還包含用於對String進行操作的有用方法,並且我們可以說使用String類只是存儲字符串的最便捷方法。

查看Javadoc,它解釋得很好:

字符串是常量; 它們的值創建后無法更改。 字符串緩沖區支持可變字符串。 由於String對象是不可變的,因此可以共享它們。 例如:

  String str = "abc"; 

等效於:

  char data[] = {'a', 'b', 'c'}; String str = new String(data); 

Stringchar[]之間有一個顯着的區別-在安全性方面,最好使用char數組,因為String是不可變的,並且您不能更改它們。

這會導致您無法覆蓋例如已存儲在內存中某處的密碼,並且可以訪問該內存的任何人都可以讀取該密碼的情況。

如果使用char[]則在使用密碼后可以清理數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM