java8 新特性(速度更快)

    java 8 在速度上更快主要源于以下几个改变   

          java 8 在底层数据数据结构上的改变,核心之一就是HashMap,将原来的数组-链表存储方式转化为,数组--链表--红黑树(二叉树的一种,满足左子节点键值要比父节点要小,右子节点键值要比父节点大(且键值不重复))当链表长度超过8,总容量超过64,则将链表自动转化为红黑树。这将很大的提升我们数据的删改查以及当数组扩容后数据存放位置的速率。

       数组的扩容因子为0.75,当数组75%的位置都存放有数据后,数组以二次幂的大小增长。而存放在红黑树中的数据无需通过哈希算法再次计算Hash code 而是根据情况选择保持在原地或将其存放原索引+旧容量的位置。例如原存放位置为5,原容量为16,扩展为32位,则现在存储的位置为21。

       相应改变的也有ConcurrentHashMap,它取消了并发级别,而是改用CAS算法,它为底层支持的算法,效率要比锁高尚很多。

     另一个改变的为底层内存结构,将堆中的永久区(加载类信息)的方法剥离出来,将其转换成Metaspace(元空间),去除堆的永久区,元空间改为使用物理内存。改变的同时JVM调优的两个参数-->PremGenSize及MaxPremGenSize也替换成MeatSpaceSize及MaxMetaSpaceSize。由于元空间使用物理内存,大大的增加了空间,而垃圾回收机制则是在空间将要满时,进行垃圾回收,这将很大的减小回收方法的几率,提高了垃圾回收机制的效率。OutOfMemoryError发生的概率也同时减小,加快我们编程的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值