笔试题:
String strA = new String("123123");这一行中创建了几个String对象??
1 public class StringHeapCountTest { 2 3 public static void main(String[] args) { 4 String strA = new String("123123"); 5 System.out.println(1); 6 } 7 8 }
这个题主要考察应试者对java内存结构的了解程度。堆、非堆、栈、本地方法栈
首先我们看一下下面的代码在堆中创建了多少String
1 public class StringHeapCountTest { 2 3 public static void main(String[] args) { 4 System.out.println(1); 5 } 6 7 }
在第4行打断点,然后使用jps打印出当前进程,再使用jmap -histo xxx打印当前jvm中的对象数。如下图所示,String有3778个
再看如下代码中String的个数
1 public class StringHeapCountTest { 2 3 public static void main(String[] args) { 4 String strA = "123123"; 5 System.out.println(1); 6 } 7 8 }
如下图所示,String有3779个
最后我们恢复文章开头题目中的第4行,再统计一下jvm中String的个数.如下图所示,3780个
原文地址:https://www.cnblogs.com/yszzu/p/9270682.html
时间: 2024-11-02 17:03:19