字符串与其他对象的特殊性

时间:2015-11-02 23:48:23

标签: java string object

我很快就进入Java了,我想知道:字符串实际上是对象,但我听说在为它们分配值并检索它们时它们的行为方式完全不同,几乎就像它们是原始类型一样。有人会说得更清楚吗? 与其他对象相比,当我声明/编辑/访问字符串时,我到底需要关注什么?

1 个答案:

答案 0 :(得分:1)

首先,Java具有字符串文字。这意味着你可以写String foo = "bar";。 字符串是不可移动的(一旦你创建一个,你就不能改变它)它有助于JVM做一个名为" string pool"的技巧。字符串文字存储在池中,在以下示例中,foobar都可以指向一个字符串实例。 String foo = "baz"; String bar = "baz"。你甚至可以将它们与==进行比较,但你永远不应该这样做。但是,equals()方法(用于比较Java中的字符串)可能会从中受益,因为如果两个变量都指向相同的字符串,则不需要比较字符串。

请查看此主题以获取更多信息What is the Java string pool and how is "s" different from new String("s")?