jvm截图笔记:字符串相关

https://b23.tv/av70549061/p35
jvm截图笔记:字符串相关
上图里每打印一个字符串,memory的java.lang.String数量+1,已经出现过的字符串不加
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关
StringTable的位置:1.6以前在方法区,之后在堆
jvm截图笔记:字符串相关
上图演示方法区空间不足;下1图演示只设置堆空间报错但不是因为堆空间不足,而是因为超过98%的时间在gc却只能回收不到2%的空间导致报错overhead,所以用-XX:-UseGCOverheadLimit关闭这个检测;下两图演示堆空间不足
jvm截图笔记:字符串相关
jvm截图笔记:字符串相关

jvm截图笔记:字符串相关
-XX:+StringTableSize可以设置StringTable的大小,StringTable的数据结构是数组+链表,所以增大SteingTable可以提高插入和查询的速度。
jvm截图笔记:字符串相关
上图改成address.add(line)会多使用很多内存