字符串相对于其他对象的特殊性



我对Java的兴趣很短,我想知道:字符串实际上是对象,但我听说在给它们赋值和检索时,它们的行为非常不同,几乎就像它们是原始类型一样。。。有人能说得更清楚些吗?与其他对象相比,当我声明/编辑/访问字符串时,我到底需要关心什么?

首先,Java有字符串文本。这意味着您可以编写String foo = "bar";。字符串是不可变的(一旦创建了一个,就不能更改它),它帮助JVM实现一个称为"字符串池"的技巧。字符串文字存储在池中,在下面的示例中,foobar都可以指向字符串的一个实例。String foo = "baz"; String bar = "baz"。你甚至可以将它们与==进行比较,但你永远不应该这样做。无论如何,equals()方法(您在Java中使用它来比较字符串)可能会从中受益,因为如果两个变量都指向同一个字符串,它就不需要比较字符串。

请查看本主题以了解更多信息什么是Java字符串池以及如何使用"Java字符串池";s";与新字符串("s")不同?

最新更新