• 单例设计模式 (2)

    1.静态内部类实现 在上一版的时候用的是懒汉和饿汉来做单例模式,如果我们采用静态内部类的话,就可以通过classloader来懒加载单例用静态内部类实现单例模式: 这里有几个...

  • 为什么用ScheduledExecutorService替代Timer

    0.序言 插件给出的解释是: 简单查了下之后,发现使用 ScheduledThreadPoolExecutor 替代 Timer 有如下好处 1.Timer执行所有定时任...

  • 120
    Java容器 - ConcurrentHashMap

    ConcurrentHashMap 是 一种线程安全的HashMap,关于HashMap的可以看前面两篇总结,如果是用HashTable和或者是Collections.Syn...

  • 120
    JVM笔记 7 虚拟机类加载机制

    类加载的整个生命周期包括:加载,验证,准备,解析,初始化,使用,卸载。 验证,准备和解析3个部分统称为连接。 解析阶段不一定按部就班执行,也可以在初始化后执行。 1.类加载的...

  • JVM笔记 6.3 class类文件的结构

    1. 魔数和Class文件的版本 每个Class文件的头4个字节被称为魔数, 值为 0xCAFEBABE ,接着5和6个字节是次版本号,7和8是主版本号,高版本的JDK向下兼...

  • 单例设计模式 (1)

    emmm, 单例应该是最常见的设计模式了,我们比较简单的写法就是延迟初始化的写法,昨天在看《Java并发编程实战》的时候,发现原来延迟初始化是一种线程不安全的写法,回寝室的路...

  • JVM笔记 3.6 内存分配和回收策略

    1. 对象优先在 Eden 分配 当Eden区没有足够的空间进行分配的时候就要做一个Minor GC 2. 大对象直接进入老年区 如果遇到朝生夕死的大对象更惨,所以要避免出现...

  • 120
    JVM笔记 3.5 垃圾回收器

    1. Serial收集器 单线程的收集器,这个单线程不仅仅是说他会用一个CPY或者一条收集线程去完成垃圾收集,更重要的是他要暂停其他所有线程直到GC结束,优点是采用了复制算法...

  • JVM笔记 3.4 HotSpot的算法实现

    1. 枚举根节点 可达性分析在执行GC的时候会停顿一下,如果引用关系不断变换的时候很难进行准确的可达性分析。目前虚拟机主要采用的是准确性GC,虚拟机应该有办法知道哪些地方存着...