问题标签 [string-pool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 需要了解的字符串、字符串常量池和字符串实习生方法
假设字符串常量池中没有字符串,如果我说,
那么会创建多少个对象呢?
现在游泳池里什么也没有,我说,
现在,将创建多少个对象?
现在游泳池里什么也没有,我说,
实习生方法会做什么?
现在游泳池里什么也没有,我说,
现在会发生什么?
请回答,因为我真的很困惑。
正如我在 SCJP5 Kathy Sierra 书中所读到的,当您使用 new 创建一个 String 时,会创建 2 个对象,一个在堆上,一个在池中。
java - Java - 非池化字符串
是否有强制 JVM 不将特定
String
实例存储在长寿命字符串池中的合法方法?是否
new String()
提供此功能,并且我可以 100% 确定以这种方式创建的值将被放入堆而不是池中,除非我调用intern()
?
java - 字符串池中的字符串和字符串池外的堆中的字符串如何具有相同的 hashCode?
考虑下面给出的一段代码。我想知道字符串池“s1”或“s2”中存在的字符串如何具有与堆中存在的字符串相同的 hashCode 作为“s3”但在字符串池之外。
输入: deep (master *) LanguagePackageInJava $ javac Lecture3.java
输出: deep (master *) LanguagePackageInJava $ java Test
true
false
false
79855167
79855167
79855167
关于这个问题,我进行了很多搜索。请告诉我我在思考过程中哪里错了。
java - 为什么我在比较 java 中的两个对象时得到不同的字符串池输出?
我正在运行这个程序。检查字符串池概念。我参考了这个链接 并在java中的Object类中添加了两行equals方法。为什么我得到 objRef1==objRef2 与 objRef1.equals(objeRef2) 的不同输出。在我看来,它们应该是相同的。
java - 通过 Writer 写入数百万个字符串会成为 Java 字符串池的内存和性能问题吗?
所以说我有这段代码,它可以将字符串流回具有数百万行数据的客户端。每次写入时的所有字符串都会被保留,从而影响 java 内存吗?如果是这样,为什么在我的情况下会被拘留或不被拘留?
我真的不知道我是否应该在这里使用一个字符串生成器来附加我要写的所有东西,然后在最后写它们,或者保持原样
该查询将返回数百万行
string - 当对象创建具有连接时,String 保存在哪里?
正如我们所知,以下字符串保存在字符串常量池中。
如下创建的 String 对象将保存在 Heap 中。
String e = b.concat("C");
此时,任何人都可以解释以下字符串的保存位置吗?
String c = new String("A"+ "B");
String d = "A" + "B";
感谢您是否可以清楚地解释原因。
java - 字符串常量池中没有对应对象的字符串,而使用intern方法返回同一对象的引用
使用 intern 方法时字符串常量池中没有对应对象的字符串返回堆中存在的同一对象的引用。不应该返回由 String 常量池中的 intern 方法新创建的完全不同对象的引用吗? 考虑给定的一段代码。
输入: deep (master *) LanguagePackageInJava $ javac Lecture14.java
deep (master *) LanguagePackageInJava $ java 测试
输出: true
true
第一个打印语句的输出如何为真?据我说s2是堆区的对象,而s3应该是字符串常量池区的对象。它们怎么能指向同一个对象?
c# - 什么时候在 C# 中回收字符串池?
我知道字符串池与进程相关联。当所有者进程退出或卸载应用程序域时,它将被回收。
但是我想知道如果一个应用程序长时间运行,字符串池会泄漏内存吗?
java - String 对象被实习后的状态
我知道在new
使用运算符时,hello
变量是指String
堆上的对象。在下一行中,由于它是实习的,因此在字符串池中创建了一个新对象,假设“Hello”不存在。
在这种情况下,String
堆上的对象是否有资格进行垃圾回收?
我知道字符串池是从 Java 7 开始的堆的一部分。
visual-studio-2013 - 错误的字符串比较何时可以工作?字符串池 VS6.0
在 VS2013 中遇到问题,并询问这怎么可能?
客户在生产中具有以下宏。(具体内容已更改)
我的问题是当请求一个名为“none”的块时代码崩溃了。代码应该已经识别出一个“无”块并跳过请求该块。但它没有这样做?
我知道客户代码在 VS6.0 中运行生产,但仅在 VS2013 中崩溃。答案如下。