3.2对象已死? 3.2.1 引用计数法 在对象中加入一个引用计数器;很难解决循环引用; 3.2.2 可达性分析算法 GC Roots包含以下: 虚拟机栈中引用的对象 方法区中类的静态属性引用的对象; 方法区中常量引用的对象; 本地方法栈中JNI引入的对象; 虚拟机内部引用,基本数据类型对应的class对象、常驻的异常对象、系统的类加载器; 同步锁持有的对象; 虚拟机内部的回调、本地代码缓存; 3.2.3 再谈引用 如果reference 类型的数据中存储的数值代表的是另外一块内存的起始地址;就称改referenc…

2021/06/01 0条评论 948点热度 0人点赞 阅读全文

13.2 线程安全 13.2.1 java语言中的线程安全 java语言中各种操作共享的数据分为以下五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。 一、不可变 不可变的对象一定是线程安全了(废话,线程的不安全主要体现在增删改,只读没有任何不安全的地方) 如:java中的字符串实例是一个典型的不可变对象,用户调用内部的substring()、replace()这些方法都是返回一个新构造的字符串对象。 二、绝对线程安全 一 个类要达到“不管运行时环境如何,调用者都不需要任何额外的同步措施”可能需要付出非…

2021/04/08 0条评论 862点热度 0人点赞 阅读全文