当前位置: 首页 > 知识库问答 >
问题:

java中带有新关键字和直接赋值的字符串[副本]

翟淇
2023-03-14
String s="hi";
String s1=new String("hi");

s代表“hi”,s1代表hi所在的内存位置?

请帮帮忙?

共有1个答案

薛鹏飞
2023-03-14

考虑以下内容

 String s = "hi";
 String s1 = new String("hi");

变量s将引用字符串常量池中引用的字符串文字hi,如果还有一些变量,如s2=“hi”,则ss2将引用同一个对象。

String s1 = new String("hi"); 

这将在运行时创建一个新字符串。

 类似资料:
  • 问题内容: 我正在阅读“学习节点”这本书,但陷入了一个非常简单的问题,这个问题我并没有考虑太多:javascript中的赋值。 作者指出,我们应该意识到,通过使用Node的REPL,以下内容将返回undefined: 而以下代码将在REPL中返回“ 2”: 这是为什么?上面的代码不是归因吗?怎么会?如果var’a’直到代码中的那个点才存在,那么为什么它不存在并归因于此? 问题答案: 根据ECMA-

  • 如果我们打印newString,这里会发生什么,我们知道输出将仅为JAVA8,但第2行在堆或常量池中创建了新对象。它在内部的行为如何

  • 当我写下面的代码时,我遇到了一个问题 然后我运行我的代码,控制台打印这个 这让我很困惑。为什么第二次打印是真的,而第一次打印是假的??在我对String文字池的理解中,当定义一个字符串时,JVM将检查池中是否包含该字符串,如果不包含,则将该字符串放入池中。 在我的代码中,变量Hello存在于字符串池中,“Helo”和“lo”也在池中,我的问题是 如果池中存在Helo和lo串联的结果。 关于str5

  • 问题内容: 我试图理解字符串比较与字符串比较的输出。需要明确的是,我拥有使用==和equals比较两个字符串的类。我试图将==和equals()的输出合并为字符串。equals()的输出会连续显示,但==的输出不会 连续显示。使用Java的装箱功能,将与字符串连接的布尔值联系起来。equals和==都返回布尔值。那么为什么会有这种差异呢?有人可以解释吗? 输出 更新:答案 如果不使用s1 == s

  • 问题内容: Java 9最大的功能之一是Project Jigsaw定义的模块系统。当从JavaOne 2015 的Project Jigsaw:The Hood 中读取幻灯片时,我注意到以下源代码: 对我而言,有趣的是文件结尾,并且似乎使用了两个新关键字:和。Java 9将引入哪些其他关键字?向后兼容性(即名为的函数或变量)将如何处理? 问题答案: Java SE 9 Edition Java语

  • 问题内容: 我知道问题的标题不是很清楚,对此感到抱歉,不知道如何提出。我有一个非常基本的Java实现问题,我想着重于应用程序性能,但是它也涉及Java中的String创建模式。 我了解Java中字符串的不变性概念。我不确定的是,我在某处读到以下内容不会创建两个不同的String对象: 我想知道Java是怎么做到的?它实际上是否在程序存储器中寻找一个String值并检查其是否存在,如果不存在则创建一