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

java中固定大小内存分配的字符串数组

仲霍英
2023-03-14
String str[] = new String[3];

有人能给我解释一下上面这一行的记忆地图吗。它将有多少个对象和引用?

共有3个答案

章安宜
2023-03-14

它将有一个数组实例,引用3个字符串对象。

巫马浩言
2023-03-14

新字符串[3]将创建一个对象,即由3个字符串引用组成的数组,并用null初始化。对象大小(对于32位JVM)=标头(8)长度(4)3个引用(每个引用4个字节)

鲁滨海
2023-03-14

该行分配一个对象,它是三个String引用的数组。默认情况下,这些引用初始化为null

它还将str定义为保存对字符串数组的引用的局部变量。它使用对它刚刚创建的对象的引用来初始化变量

所以你有这个图表:

str (local variable)
    +--------+             array object    
    |   -----+---------> +-------------+
    +--------+           |    null     | (can hold a reference to a String)
                         +-------------+
                         |    null     | (can hold a reference to a String)
                         +-------------+
                         |    null     | (can hold a reference to a String)
                         +-------------+
 类似资料:
  • 我想在JavaScript中使用空格作为分隔符将字符串分成固定大小的块(例如每个140个字符)(即它不应该分词),注意:它应该处理换行符目前我使用的是wordwrap npm包,但它不处理新行符。 它适用于普通文本,但如果文本包含新行标记,我会得到以下错误: syntaxerror:exports.runinthiscontext(VM.js:73:16) 在module._compile(mod

  • 我读过很多关于创建字符串时内存分配的相互矛盾的文章。一些文章说new operator在堆中创建一个字符串,String literal在String Pool[heap]中创建,而一些文章说new operator在堆中创建一个对象,在String Pool中创建另一个对象。 为了分析这一点,我写了下面的程序,打印字符串字符数组和字符串对象的hashcode: 此程序打印以下输出: 从这个输出中

  • 我有一个随机地址字符串,如 我想将其拆分为具有两个条件的字符串数组: 该字符串数组的每个元素的长度小于或等于20 字符串数组的元素没有尴尬的结尾 例如,每20个字符拆分将产生: 但正确的输出是: 注意字符串数组中的每个元素是如何小于或等于20的。 以上是我对这段代码的输出:

  • 问题内容: 我听过关于Java程序中一个字节占用的内存量的意见不一。 我知道您在一个Java字节中最多可以存储+127,并且文档说一个字节只有8位,但是在这里我被告知实际上它占用的内存量与int相同,因此仅一种有助于代码理解而不是效率的类型。 谁能解决这个问题,这将是实现特定的问题吗? 问题答案: 好的,已经进行了很多讨论,而没有很多代码:) 这是一个快速基准测试。谈到这种事情,通常会有一些警告-

  • 问题内容: 在下面的代码中: 为了确定从CloudFoundry接收JSON数据所需的数据类型,请测试上面的示例代码以了解vs 类型的内存分配。 类型变量的预期大小为1个字节x 4个ascii编码字母= 4个字节,但是大小显示为16个字节。 对于类型变量,GO将字符串作为字符串文字嵌入到可执行程序中。它将在运行时使用该函数将字符串文字转换为字节片。就像是… 类型变量的预期大小再次为1字节x 4 a

  • 问题内容: Python f字符串是否有一种简单的方法来固定小数点后的位数?(特别是f字符串,而不是其他字符串格式设置选项,例如.format或%) 例如,假设我要在小数点后显示2位数字。 我怎么做?比方说 问题答案: 在格式表达式中包括类型说明符: