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

在内存中创建了多少个字符串?

松高歌
2023-03-14
问题内容

说我有这个String表情

String hi = "Tom" + "Brady" + "Goat"

我知道,串池“允许运行时以节省内存在一个池保留不变的字符串”
字符串池

字符串池中将创建多少个字符串?

我最初的猜测是5 -,"Tom""Brady""Goat""TomBrady""TomBradyGoat"因为操作顺序的String级联(左到右?),或者是它只是最后的结果,“TomBradyGoat”,存储在字符串池?


问题答案:

在运行时,这段代码将转换为单个String对象。编译器将在编译时进行串联,并在常量池中添加一个值。



 类似资料:
  • 我最近读了很多关于字符串内存分配的文章,但找不到任何细节,如果在Java8中情况相同的话。 在Java8中,像这样的字符串会使用多少内存空间?我使用64位版本。

  • 所以我不确定是0还是2。 如果有人知道请告诉我。

  • 在下面的Java代码中将创建多少对象:

  • 我有一个UICollectionView,里面充满了图像、视频和声音字节。一切顺利!然而,我对带宽的使用感到关切。 我不确定使用出列可重用单元格的UICollectionView是如何工作的,也不确定这些项目何时从存储下载。 假设我有一个简单的牢房。 为了回答我的问题,假设我在集合视图单元格中有100个单元格,每次只显示3个单元格。 加载UICollectionView时是否加载所有100个图像?

  • 将在字符串常量池和堆中为以下代码创建多少个对象: 据我所知,所有的文本都是在字符串常量池中创建的,但是字符串concat操作符在内部使用StringBuffer来追加字符串,那么堆中也会创建一个对象吗?

  • 主要内容:一、 测试,二、对象内存布局,三、Object o = new Object()在内存中占了多少字节,四、User (int idString name) User u = new User(1‘张三’);占用多少字节一、 测试 maven 测试 二、对象内存布局 MarkWord:对象头,8字节。包括了对象的hashCode、对象的分代年龄、锁标志位等。结构如下图所示: 1.hashcode 2.GC标记 3,锁标记位 classPointer:对象指向它的类元素的指针。在不开启对象