当前位置: 首页 > 面试题库 >

Java字符串文字会自动解释为String对象,但是如何?

汪兴为
2023-03-14
问题内容

由于没有重载运算符,并且不默认支持低级字符串缓冲区(不包括高级StringBuffer),因此Java自动将字符串文字解释为String对象的机制是什么?这是语言还是虚拟机上下文?


问题答案:

两者都有。

JVM具有用于将字符串文字加载到运行时堆栈上的字节码,并且在JVM规范中将这些操作码指定为通过将适当构造的String对象推入堆栈而工作,该对象的内容等于在类文件中指定的某些字符串文字。除了必须插入String对象之外,没有其他说明可以实现此操作,这意味着转换是特定于实现的。

在语言级别,出于类型检查的目的,编译器可以将它看到的任何String文字视为一个完整的String对象,然后可以将文字和适当的字节码写到类文件中。



 类似资料:
  • 本文向大家介绍JavaScript字符串处理(String对象)详解,包括了JavaScript字符串处理(String对象)详解的使用技巧和注意事项,需要的朋友参考一下 定义字符串(String)对象 JavaScript String 对象用于处理文本字符串。创建 String 对象语法如下: 以上三种方法中,只有第一种是使用 String 构造函数严格的定义一个字符串对象,返回的也是一个对象

  • 我试图将JSON字符串转换为HashMap。下面是我的一些代码: 在这些行的最后一行(我在其中设置数据)抛出异常。 JSON字符串是 {"body":"body","start Date":"2014-05-30 11:00:00","endDate":"2014-05-30 12:00:00","位置":"位置","主题":"主题!"} 我得到的例外是 线程“main”java中出现异常。朗,反

  • 我试图使用GSON解析一些非常简单的JSON。这是我的代码: 以下是从url返回的JSON: 我得到了一个例外: 有什么想法吗?我是格森的新手。

  • 问题内容: 阅读了SCJP Tip Line的作者Corey McGlone在javaranch网站上的文章后,我都感到困惑。从字面上看是Strings,由Kathy Sierra(javaranch的联合创始人)和Bert Bates共同编写的《 SCJP Java 6程序员指南》。 我将尝试引用Corey先生和Kathy Sierra女士对String Literal Pool的引用。 1.根

  • 问题内容: 之间有什么区别 和 问题答案: 当你使用字符串文字时,可以将字符串嵌入,但是当你使用时,你将获得一个新的字符串对象。 在此示例中,两个字符串文字均引用相同的对象: 在这里,创建了2个不同的对象,它们具有不同的引用: 通常,应尽可能使用字符串文字表示法。它更易于阅读,并且为编译器提供了优化代码的机会。

  • 问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s