摘要:
JMM(java memory model)java内存模型主要目标是定义程序中的变量,(此处所指的变量是实例字段、静态字段等,不包含局部变量和函数参数,因为这两种是线程私有无法共享)在虚拟机中存储到内存与从内存读取出来的规则细节,Java 内存模型规定所有变量都存储在主内存中,每条线程还有自己的工 阅读全文
摘要:
双亲委派模型的工作流程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当父加载器在它的搜索范围中没有找到所需的类时,即无法完成该加载,子加载器才会尝试自己去加载该类。双 阅读全文
摘要:
1、饿汉式:静态常量 特点:单例的实例被声明成static和final变量了,在第一次加载类到内存中时就会初始化,所以会创建实例本身是线程安全的 2、懒汉式:线程不安全 特点:使用了懒加载模式,但是却存在致命的问题。当多个线程并行调用getInstance()的时候,就会创建多个实例,即在多线程下不 阅读全文
摘要:
享元模式:可以提高系统性能的设计模式之一,它的核心思想如果系统中存在多个相同的对象,那么只需要共享一份对象的copy,而没必为每次使用都创建新的对象,一般会与工厂类一同使用,由于创建对象的次数减少对于内存的需求也就较低,对于GC的压力也也有所减少,简单的说,即共享同一个对象 对于为啥会出现这种情况, 阅读全文