jvm
dotsee
这个作者很懒,什么都没留下…
展开
-
强软弱虚引用的使用场景
强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也不会靠随意回收具有强引用的“存活”对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式...原创 2020-02-24 11:54:24 · 1225 阅读 · 0 评论 -
java是如何实现跨平台的
一 前言java具有一次编译导出运行的特性,那个从这句话可以看出亮点: 1 java具有很强的跨平台特性。 2 java在跨平台的过程中要经历两个阶段,第一阶段是编译阶段,第二阶段是运行阶段二 跨平台基础组件介绍实现前言中介绍的两个步骤,需要使用到两个组件(这里姑且叫为组件),第一个是java编译器,第二个是java虚拟机。java编译器和java虚拟机都是运行在操作系统上软件。根据j原创 2017-10-19 15:28:47 · 1305 阅读 · 0 评论 -
深入浅出JVM优化策略
前言Java号称一次编译,到处运行。这个目标就是通过JVM来实现的。java编译器负责把Java代码编译成.class二进制文件,在Java编译器和OS之间的JVM把.class二进制文件解释成机器码,然后机器码可交给不同的OS执行。在这个过程中,JVM之间如何进行优化,将对程序的执行影响很大,所以JVM调优过程是非常重要的工作。一 JVM调优的整体思路JVM运行的时候,设计到最重要的两部分是原创 2017-10-11 00:15:24 · 644 阅读 · 0 评论 -
TreeMap 源码阅读
TreeMap是用红黑树实现的,插入数据后添加红黑树节点并进行红黑树的调整,删除数据后也同样进行红黑树的调整,查询数据时,不是用hashcode来进行查询,而是使用红黑树查询。TreeMap没有HashMap的扩容机制,所有的数据都存在一棵红黑树上。红黑树的数据节点是封装数据的Entry对象。Entry定义static final class Entry<K,V> implem...原创 2019-02-16 17:01:58 · 176 阅读 · 0 评论 -
HashMap 源码阅读
HashMap 是一个key value类型的集合,是线程不安全的。它底层基于hash表,用数据+链表的结构存储数据。JDK1.8中,还是用红黑树来管理冲突的Entry链表,从而提高从HashMap拿数据的效率。HashMap的结构如下所示:HashMap的元素我们要先看下其数据单元,因为HashMap有普通的元素,还有红黑树的元素,所以其数据单元定义有两个:// 普通节点static...原创 2019-02-16 23:01:44 · 134 阅读 · 0 评论 -
ConcurrentHashMap的扩容机制(jdk1.8)
ConcurrentHashMap相关的文章网上有很多,而关于ConcurrentHashMap扩容机制是很关键的点,尤其是在并发的情况下实现数组的扩容的问题经常会碰到,看到这篇写的具有代表性,详细讲解了ConcurrentHashMap是如何在并发情况扩容的。转自简书:占小狼http://www.jianshu.com/u/90ab66c248e6什么情况会触发扩容当往hashMap...转载 2019-02-17 20:36:38 · 1021 阅读 · 0 评论