参考
https://www.toutiao.com/a6767185577851748867/
https://www.toutiao.com/a6715230415075934728/
https://www.toutiao.com/a6750187070641144324/
https://www.toutiao.com/a6702374395450491396/
https://www.toutiao.com/a6715302733953368588/
https://www.toutiao.com/a6636862701987430925/
https://www.jianshu.com/p/52c38cf2e3d4
https://www.cnblogs.com/zyy1688/p/11290381.html
http://www.cocoachina.com/cms/wap.php?action=article&id=25345
jdk1.8之前,堆内存被分为新生代,老年代,永久带,jdk1.8及以后堆内存被分成了新生代和老年代。新生代的区域又分为eden区,s0区,s1区,默认比例是8:1:1,元空间可以理解为直接的物理内存
直接内存
在 JDK 1.4 中新加入了 NIO 类,它可以使用 Native 函数库直接分配堆外内存(Native 堆),然后通过一个存储在 Java 堆里的 DirectByteBuffer 对象作为这块内存的引用进行操作。
这样能在一些场景中显著提高性能,因为避免了在 Java 堆和 Native 堆中来回复制数据。
**