文章目录
Java 8 新特性简介
速度更快
1.改动底层数据结构(速度快)
1.1 HashMap
底层数据结构由 数组+链表 —>数组+链表+红黑树
具体看下个文件HashMap详解
2.改动底层内存结构
jvm运行时内存区域主要分为:程序计数器,jvm栈,本地方法栈,堆,方法区。
jvm规把方法区描述为堆的逻辑结构(即永久区PermGen)但是他还有个别名,叫Non-Heap(非堆),目前情况除了Oracle-sun- hotspot还采用永久区以外,Oracle-JRockit,IBM-J9以及国内阿里的jvm,都不存在永久区的概念,而Hotspot也逐渐消除永久区,jdk1.7的Hotspot中就把存放在永久区的字符串常量池移除,放到本地内存(物理内存)
方法区主要存放:类的各中加载信息,常量、静态变量等,方法区或者直接说虚拟机中的永久区会被垃圾回收,但是条件比较苛刻,几乎不会被回收。
Java8就彻底的移除了堆的永久区,取而代之的是元空间(MetaSpace),它最大的特点就是存储在物理内存(本地内存),这样的话减少了方法区进行垃圾回收的概率。一般情况下,是不会出现OOM的
响应的jvm调邮参数 PermGenSize MaxPermGenSize都被剔除,取而代之的是MetaSpace