Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,存储字符串_Java_String - Fatal编程技术网

在Java中,存储字符串

在Java中,存储字符串,java,string,Java,String,我有一个关于用java存储字符串的问题。 您知道,我可以使用字符串类或字符数组来存储字符串,但我们通常使用字符串类来存储字符串。但为什么要将字符串存储在string对象中,而不是使用字符数组进行存储呢。据我所知,其他低级语言字符串存储为字符数组 您能解释一下使用String对象存储字符串的原因和优点吗 谢谢。我认为您应该寻找java中的字符串实现,您将看到如下内容: 私有最终字符值[] 这意味着该字符串使用字符数组。 引用文件: 类字符串包括用于检查序列中各个字符、比较字符串、搜索字符串、提取子

我有一个关于用java存储字符串的问题。 您知道,我可以使用字符串类或字符数组来存储字符串,但我们通常使用字符串类来存储字符串。但为什么要将字符串存储在string对象中,而不是使用字符数组进行存储呢。据我所知,其他低级语言字符串存储为字符数组

您能解释一下使用String对象存储字符串的原因和优点吗


谢谢。

我认为您应该寻找java中的字符串实现,您将看到如下内容:

私有最终字符值[]

这意味着该字符串使用字符数组。 引用文件:

类字符串包括用于检查序列中各个字符、比较字符串、搜索字符串、提取子字符串以及创建字符串副本(所有字符都转换为大写或小写)的方法。


因此,您可以看到String还包含对String进行操作的有用方法,我们可以看出,使用String类是存储字符串最方便的方式。

查看Javadoc,它很好地解释了这一点:

字符串是常量;它们的值在更改后不能更改 创建。字符串缓冲区支持可变字符串。因为字符串 对象是不可变的,它们可以共享。例如:

 String str = "abc";   
相当于:

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

String
s和
char[]
之间有一个显著的区别——在安全性方面,最好使用
char
s数组,因为
String
s是不可变的,您无法更改它们

这会导致无法覆盖的情况,例如,存储在内存中某个位置的密码,任何可以访问该内存的人都可以读取该密码


如果您使用
char[]
则在使用密码后,您可以清理数组。

Java不是低级语言?我知道这一点,但我只是好奇为什么Java使用字符串对象来存储字符串,而不是字符数组。它确实使用字符数组。在
字符串
类中。在Java中,甚至数组也是
对象的一种类型。另外,如果它被存储为
char[]
的话,使用
String
池进行优化会更加困难。有趣。请指定一种高级语言。。。另外,给我一个数组,它有一个
endsWith
方法。