当前位置: 首页 > news >正文

深圳住房和建设局网站统一产品设计英文

深圳住房和建设局网站统一,产品设计英文,昆明网站建设公司猎狐科技怎么样,网站建设怎么下载代码目录 垃圾的条件 1、引用计数法 2、可达性分析 3、强引用 4、软引用 5、弱引用 6、虚引用 判断垃圾的条件 在Java虚拟机#xff08;JVM#xff09;中#xff0c;垃圾收集器负责管理内存#xff0c;其中的垃圾收集算法用于确定哪些对象是垃圾#xff0c;可以被回收…目录 垃圾的条件 1、引用计数法 2、可达性分析 3、强引用 4、软引用 5、弱引用 6、虚引用 判断垃圾的条件 在Java虚拟机JVM中垃圾收集器负责管理内存其中的垃圾收集算法用于确定哪些对象是垃圾可以被回收以释放内存空间。Java中主要使用的是自动内存管理垃圾收集器会自动识别和回收不再被程序引用的对象。以下是一些判定对象为垃圾的条件 1、引用计数法 引用计数法是一种简单而直观的垃圾收集算法其核心思想是通过在对象头中添加一个引用计数器记录该对象被引用的次数。每当有一个新的引用指向该对象时引用计数加一当引用被删除或者超出作用范围时引用计数减一。当引用计数为零时表示该对象不再被引用即可以被回收。 然而引用计数法有一个明显的缺陷即难以处理循环引用的情况。例如两个对象互相引用它们的引用计数永远不会变为零即使它们已经不再被程序所使用。 以下是一个简单的引用计数法的Java代码示例 class ReferenceCountingObject {private int referenceCount 0;public ReferenceCountingObject() {// 对象初始化时引用计数为 0}public void addReference() {referenceCount;}public void removeReference() {referenceCount--;if (referenceCount 0) {// 当引用计数为零时可以进行垃圾回收操作System.out.println(对象被回收);}} }public class ReferenceCountingExample {public static void main(String[] args) {// 创建两个对象ReferenceCountingObject obj1 new ReferenceCountingObject();ReferenceCountingObject obj2 new ReferenceCountingObject();// obj1 引用计数加一obj1.addReference();// obj2 引用计数加一obj2.addReference();// obj1 引用计数减一obj1.removeReference();// obj1 引用计数为零可以进行垃圾回收// obj2 引用计数仍为一} }2、可达性分析 可达性分析是Java虚拟机中垃圾收集的核心算法之一它主要通过判断对象是否能够从一组称为GC Roots的根对象出发通过引用链追踪最终判断对象是否可达。以下是关于可达性分析的一些详细细节和Java代码示例 GC Roots GC Roots包括虚拟机栈中引用的对象、方法区中类静态属性引用的对象、方法区中常量引用的对象以及本地方法栈中JNIJava Native Interface引用的对象。这些对象被认为是程序的根对象是可达性分析的起始点。 可达性分析过程 从GC Roots出发通过对象引用链逐步追踪判断对象是否能够被程序访问到。如果对象能够通过一系列引用到达GC Roots则该对象被认为是可达的反之如果无法到达则被认为是不可达的。 标记-清除算法 在可达性分析过程中标记-清除算法是一种常用的垃圾收集算法。通过标记可达的对象然后清除不可达的对象最终回收被标记的垃圾。 下面是一个简单的Java代码示例演示了可达性分析的基本原理 class MyClass {// 成员变量作为引用private MyClass reference;public MyClass() {this.reference null;}public void setReference(MyClass anotherObject) {this.reference anotherObject;} }public class ReachabilityAnalysisExample {public static void main(String[] args) {// 创建对象1MyClass obj1 new MyClass();// 创建对象2MyClass obj2 new MyClass();// obj1 的 reference 成员变量指向 obj2obj1.setReference(obj2);// obj2 的 reference 成员变量为空不指向其他对象// 现在obj1 和 obj2 都是可达的因为它们可以通过引用链相互访问// 将 obj1 置为 null切断对 obj1 的引用obj1 null;// 现在obj1 不可达因为没有其他引用指向它但 obj2 仍然可达// 执行垃圾回收System.gc();// 垃圾回收器可能会回收不可达的对象释放其占用的内存// 在实际应用中Java 虚拟机会根据不同的垃圾收集算法和策略执行垃圾回收} }3、强引用 强引用是最常见的引用类型只要强引用存在垃圾收集器就不会回收被引用的对象。当没有任何强引用指向一个对象时该对象就变得不可达。 特点 强引用是最常见的引用类型它会使对象始终保持存活。只要存在强引用指向一个对象垃圾收集器就不会回收该对象。 使用场景 大多数对象的引用都是强引用例如通过 new 操作符创建的对象就是强引用。当程序员希望确保对象不被垃圾收集器回收时使用强引用是合适的。 Object obj new Object(); // 强引用4、软引用 软引用用于描述一些还有用但非必需的对象。在系统将要发生内存溢出之前会尝试回收软引用指向的对象。 特点 软引用用于描述一些还有用但非必需的对象。当系统内存不足时垃圾收集器会根据软引用的情况来决定是否回收该对象以释放内存。 使用场景 软引用通常用于实现缓存策略允许在内存不足时回收部分缓存而不会导致程序崩溃。 SoftReferenceObject softRef new SoftReference(new Object()); Object obj softRef.get(); // 获取软引用指向的对象5、弱引用 弱引用也用于描述非必需对象但它的生命周期比软引用更短。当垃圾收集器运行时无论内存是否足够都会回收被弱引用指向的对象。 特点 弱引用描述的是非必需对象其生命周期比软引用更短。当垃圾收集器运行时无论内存是否足够都会回收被弱引用指向的对象。 使用场景 弱引用常用于实现对象缓存但不希望缓存的对象影响垃圾回收。 WeakReferenceObject weakRef new WeakReference(new Object()); Object obj weakRef.get(); // 获取弱引用指向的对象6、虚引用 虚引用是最弱的引用类型几乎没有保持对象存活的作用。主要用于对象被回收前的一些清理操作。 特点 虚引用是最弱的引用类型几乎没有保持对象存活的作用。主要用于对象被回收前的一些清理操作。虚引用必须和引用队列ReferenceQueue一起使用。 使用场景 虚引用主要用于跟踪对象被垃圾收集的状态执行一些清理操作或者资源释放。 ReferenceQueueObject referenceQueue new ReferenceQueue(); PhantomReferenceObject phantomRef new PhantomReference(new Object(), referenceQueue); // 虚引用不提供 get 方法因为其并不保持对象的存活需要通过 ReferenceQueue 来获取通知 Object obj phantomRef.get(); // 返回始终为 null总体而言这些引用类型在Java中提供了更灵活的内存管理手段允许开发人员根据不同的场景来控制对象的生命周期。选择合适的引用类型取决于应用程序的需求以及对内存使用和性能的权衡。
http://www.yutouwan.com/news/391306/

相关文章:

  • 网站设计与网页制作模板有没有专业做特产的网站
  • 用asp做的网站如何运行备案中又需要建设网站
  • 哪里学网站建设推广营销crm
  • 网站域名解析失败网站开发分为哪几块
  • 大连专业制作网站wordpress 邮箱验证
  • asp.net网站开发第一步黑帽seo培训
  • 做基金的网站哪个好wordpress注册页面更改
  • 泰安网站建设费用营销型网站建设的流程
  • 免备案网站建设乐陵天气预报
  • 精品电商网站建设做产品推广的网站有哪些
  • 企业网站建站技术0基础做网站工具
  • 网站策划书优势怎么分析中国专利网官网入口
  • 网站建设需要多少钱费用安阳信息网官网
  • wordpress 网站维护工程网站开发
  • 南京网站制作公司有哪些傻瓜式网站源码
  • 深圳非凡网站建设公司汕头建设信息网官网
  • wordpress如何导航网站做销售怎么和客户聊天
  • 空间 网站成都有哪些好玩的
  • 潮州外贸网站建设小熊代刷推广网站
  • 网站怎么做移动端深圳光明区住房和建设局官网
  • 广东省建站公司广州站到广州南站地铁要多久
  • 搜索企业的软件宁波网络推广优化公司
  • 松江网站制作手帐风格wordpress主题
  • 阜阳制作网站公司电商网站开发流程代码
  • 黑彩网站充值就给你做单子网站维护怎么学
  • 苏州有做网站的公司吗成都外贸网站建设
  • 营销网站建站开发网站优化公司排名
  • 设计手机网站页面尺寸深圳市宝安区西乡
  • 可以做宣传图的网站全球招商网加盟网
  • 济南做企业网站的公司欧洲大型服务器