我很快就进入Java了,我想知道:字符串实际上是对象,但我听说在为它们分配值并检索它们时它们的行为方式完全不同,几乎就像它们是原始类型一样。有人会说得更清楚吗? 与其他对象相比,当我声明/编辑/访问字符串时,我到底需要关注什么?
答案 0 :(得分:1)
首先,Java具有字符串文字。这意味着你可以写String foo = "bar";
。
字符串是不可移动的(一旦你创建一个,你就不能改变它)它有助于JVM做一个名为" string pool"的技巧。字符串文字存储在池中,在以下示例中,foo
和bar
都可以指向一个字符串实例。 String foo = "baz"; String bar = "baz"
。你甚至可以将它们与==
进行比较,但你永远不应该这样做。但是,equals()
方法(用于比较Java中的字符串)可能会从中受益,因为如果两个变量都指向相同的字符串,则不需要比较字符串。
请查看此主题以获取更多信息What is the Java string pool and how is "s" different from new String("s")?