- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我知道常量池和 JVM 用来处理字符串字面量的字符串常量池的概念。但我不知道 JVM 使用哪种类型的内存来存储 String 常量文字。栈还是堆?由于它是一个不与任何实例相关联的文字,我假设它将存储在堆栈中。但是,如果它没有被任何实例引用,则文字必须由 GC 运行收集(如果我错了,请纠正我),那么如果它存储在堆栈中,如何处理呢?
最佳答案
从技术上讲,答案都不是。根据 Java 虚拟机规范,存储字符串文字的区域在 runtime constant pool 中。 .运行时常量池内存区域是在每个类或每个接口(interface)的基础上分配的,因此它根本不依赖于任何对象实例。运行时常量池是方法区的子集,它“存储每个类的结构,例如运行时常量池、字段和方法数据,以及方法和构造函数的代码,包括使用的特殊方法在类和实例初始化和接口(interface)类型初始化”。 VM 规范说,虽然 方法区 在逻辑上是堆的一部分,但它并没有规定在方法区中分配的内存要进行垃圾收集或其他与正常数据相关的行为分配给堆的结构。
关于java - Java 的字符串常量池在哪里,堆还是栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918399/
我正在 Windows 10、Intel Core i7-8550U 处理器上使用 Python 3.7.4 尝试 python 多处理。 我正在使用两个函数测试多处理,一个使用基本的 sleep()
我在 Azure synapse Analytics 中使用 pyspark 代码创建了 3 个不同的笔记本。笔记本正在使用 Spark 池运行。所有 3 台笔记本都只有一个 Spark 池。当这 3
我在 Azure synapse Analytics 中使用 pyspark 代码创建了 3 个不同的笔记本。笔记本正在使用 Spark 池运行。所有 3 台笔记本都只有一个 Spark 池。当这 3
如果我在 ASP.NET 页面上创建一个新线程,则 IsThreadPoolThread 属性为 true。第一个问题是,它是来自 ASP.NET 池还是 CLR 池?第二个问题是,如果它来自 ASP
注意:这主要是关于 pg 或 Node-PostgreSQL 模块的问题。它有来自 Gatsby 和 Postgraphile 的详细信息,但我不需要这三个方面的专业知识,只需要 pg。 我有一个数据
我是一名优秀的程序员,十分优秀!