首页 > 其他 > 详细

jmap应用:一个经典String笔试题的验证

时间:2018-07-05 22:08:59      阅读:193      评论:0      收藏:0      [点我收藏+]

 

笔试题:

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个

技术分享图片

 

jmap应用:一个经典String笔试题的验证

原文:https://www.cnblogs.com/yszzu/p/9270682.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!