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

公司网站模板侵权案例网页微信版官网登录不扫码

公司网站模板侵权案例,网页微信版官网登录不扫码,网站建设哪专业,wordpress主题列表缩略JVM(Java虚拟机)通过特定的算法和机制来查找和识别垃圾对象,以便进行垃圾回收。以下是JVM查找垃圾对象的主要方法和步骤: 一、可达性分析法 JVM使用可达性分析法来识别垃圾对象。这种方法从一组称为“GC Roots”的对象作为起始点…

JVM(Java虚拟机)通过特定的算法和机制来查找和识别垃圾对象,以便进行垃圾回收。以下是JVM查找垃圾对象的主要方法和步骤:

一、可达性分析法

JVM使用可达性分析法来识别垃圾对象。这种方法从一组称为“GC Roots”的对象作为起始点,通过对象之间的引用关系向下搜索,找到所有能被引用到的对象。未被找到的对象即为垃圾对象,可以被回收。GC Roots通常包括以下几类对象:

  1. 虚拟机栈(栈帧中的局部变量表)中引用的对象,如线程中的局部变量等。
  2. 本地方法栈(JNI)中引用的对象,即本地方法(native方法)引用的对象。
  3. 方法区中类静态属性引用的对象,如类中的静态变量。
  4. 方法区中常量引用的对象。
  5. Java虚拟机内部的引用,如基本数据类型对应的Class对象、常驻异常、系统类加载器等。
  6. 被同步锁(synchronized)持有的对象。
可达性分析示例
  1. 创建对象A:对象A被创建并赋值给objA。
  2. 创建对象B并引用A:对象B被创建并引用对象A。
  3. 断开B对A的引用:将objB设为null,断开B对A的引用。
  4. 创建对象C并引用A:对象C被创建并引用对象A。
  5. 断开C对A的引用:将objC设为null,断开C对A的引用。
  6. 断开A的引用:将objA设为null,断开A的引用。
  7. 触发垃圾回收:调用System.gc()触发垃圾回收。 

二、引用计数法(已弃用)

虽然引用计数法也是一种识别垃圾对象的方法,但它存在无法处理对象之间相互循环引用的问题,因此在主流的虚拟机中并未采用。引用计数法通过在每个对象中添加一个引用计数器来记录该对象的引用数量。当对象被引用时,计数器加1;当引用失效时,计数器减1。当计数器为0时,表示该对象不再被任何引用指向,可以被回收。但由于循环引用的问题,这种方法在实际情况中并不适用。

三、分代收集算法

现代JVM通常采用分代收集算法来管理内存。这种算法根据对象存活周期的不同将内存分为几块(如新生代和老年代),并根据各代的特点选择合适的垃圾收集算法。例如,在新生代中,由于对象存活率低,每次垃圾收集都会回收大量对象,因此可以选择复制算法来减少内存碎片和提高回收效率。而在老年代中,由于对象存活率高,可以选择标记-清除或标记-整理算法来进行垃圾收集

分代收集示例
  1. 创建大量短期存活对象:在一个循环中创建大量对象,这些对象很快就会被回收。
  2. 创建长期存活对象:创建一个长期存活的对象并赋值给longLivedObj
  3. 触发垃圾回收:调用System.gc()触发垃圾回收。
  4. 长期存活对象仍然存在:输出长期存活对象的信息,确认它仍然存在。

 

四、垃圾收集算法

在分代收集算法的基础上,JVM还采用了多种垃圾收集算法来识别并回收垃圾对象。这些算法包括:

  1. 标记-清除算法:该算法分为标记和清除两个阶段。在标记阶段,垃圾收集器从引用根节点开始遍历,标记所有被引用的对象。在清除阶段,垃圾收集器对堆内存从头到尾进行线性遍历,如果发现某个对象为不可达对象(即未被标记),则将其回收。这种方法简单且实现容易,但存在效率问题和空间问题(如内存碎片)。
  2. 复制算法:该算法将内存分为大小相等的两块,每次只使用其中一块。当这一块内存用完了,就将这块内存中存活的对象复制到另一块中,然后一次清除使用的那块内存。这种方法效率较高且不会产生内存碎片问题,但可使用的内存缩小为原来的一半。当存活对象较多时,需要做多次复制操作,效率将变低。因此复制算法通常用于新生代。
  3. 标记-整理算法:该算法与标记-清除算法类似,但多了一个中间操作:整理内存。在标记阶段标记存活对象后,将所有存活对象压缩到内存的一端(按顺序排放),然后统一清除端以外的对象。这种方法不会产生内存碎片且清除效率高,但移动对象时会触发STW(Stop The World)现象(即暂停应用程序的所有线程以等待垃圾回收的完成)。因此标记-整理算法通常用于老年代。

综上所述,JVM通过可达性分析法来识别垃圾对象,并根据对象的存活周期和内存特点选择合适的垃圾收集算法进行垃圾回收。这些算法共同协作以确保JVM能够高效地管理内存并回收不再使用的对象空间。

http://www.yayakq.cn/news/90313/

相关文章:

  • 做国外产品描述的网站嘉兴网站开发公司电话
  • 网络做翻译的网站jsp网站 值班
  • 邢台哪个公司做网站好wordpress可视化编辑失效
  • 网站建设程序的步骤过程ui作品集 网站怎么做
  • 建立一个网站需要哪些步骤wordpress全自动采集
  • 门户网站建设管理工作的意见做网站建网站
  • 运城做网站价格wordpress图片转移
  • 自己做网站到哪里去接广告全国火车站等级最新排名
  • 杭州做网站哪个公司好建设银行报考网站
  • 榆次建设局网站安徽区块链虚拟币网站开发价格
  • 长安响应式网站建设南宁网页制作步骤
  • 单页手机网站源码百度人工电话多少号
  • 行业网站策划一起来做网站
  • 重庆seo网站排名优化湖北住房建设网站
  • 网站开发人员 平均工资网络综合布线设计图
  • 营销活动网站改版对网站优化影响最大的问题是什么
  • php网站开发过程考试深圳外贸营销型网站建设
  • 网页设计公司有哪些国内河南优化网站
  • 更新网站 seo成都品牌设计公司
  • H5网站建设报价多少装饰公司起名字寓意好的字
  • 域名解析手机网站建设wordpress新注册用户不发送邮件
  • 青海省网站建设公司电话做直播网站找哪个网站好
  • 网站建设公司服务公司开封做网站
  • 网站 专题建设服务2022年10月国内最新新闻
  • 百度怎么免费做网站工商网上怎么申请注册公司
  • 淘宝客网站可以备案吗wordpress用户图标
  • 最专业的佛山网站建设价格wordpress wooyun
  • 做的网站必须放专业网站优化软件
  • 集团网站目标制作网页用什么布局
  • 做网站的设计文档怎么做织梦模板可以在wordpress用