一、方法区
1.1 组成![](https://img-blog.csdnimg.cn/20210822104906201.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzU3MzM3Mg==,size_16,color_FFFFFF,t_70)
1.2 内存溢出
1.8 以前会导致永久代内存溢出
* 演示永久代内存溢出 java.lang.OutOfMemoryError: PermGen space
* -XX:MaxPermSize=8m
1.8 之后会导致元空间内存溢出
* 演示元空间内存溢出 java.lang.OutOfMemoryError: Metaspace
* -XX:MaxMetaspaceSize=8m
1.3方法区常量池
![](https://img-blog.csdnimg.cn/20210822121244874.png)
![](https://img-blog.csdnimg.cn/20210822135118837.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzU3MzM3Mg==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210822134712864.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzU3MzM3Mg==,size_16,color_FFFFFF,t_70)
1.4 StringTable 特性 ![](https://img-blog.csdnimg.cn/20210822135259532.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzU3MzM3Mg==,size_16,color_FFFFFF,t_70)
1.5 StringTable位置
1.6 StringTable性能调优
调整 -XX:StringTableSize=桶个数
有大量字符串且存在重复问题,将字符串用intern(),放入串池中,节约堆内存的使用