大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了“java的垃圾回收机制介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java的垃圾回收机制介绍”吧!
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的沂水网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
了解了到了绝大部分的对象是分配在堆上面的,我们在编码的时候并没有显示的指明哪些对象需要回收,但是程序在运行的过程中是会一直创建对象的,之所以没有内存溢出是因为我们的虚拟机帮我我们自动进行了垃圾回收,保证程序运行的时候有足够的空间来分配我们创建的对象。
JVM被分为五大内存区域,其中程序计数器、虚拟机栈,本地方法栈是线程私有的,内存随着线程的销毁而退出。堆和方法区是动态分配的,由于方法区的垃圾收集收效甚微,所以本章所说的垃圾回收主要指的是堆内存的垃圾回收。
什么样的对象会被回收呢?我们想象下在生活中,什么样的东西会被我们扔进垃圾桶呢,是不是已经不再使用的东西或者说是没有任何利用价值的东西,在java中也是一样的,就是不会再使用到的对象。那么在java中,怎么判断这个对象是不是不会再被使用呢?显然,这似乎要比现实生活中判断哪些东西是垃圾要复杂许多。
前面说到,我们需要知道哪些对象是需要被回收的,那么怎么判断这个对象是否需要回收呢?
引用计数法。
创建对象的时候,给对象添加一个引用计数器,每当有一个地方引用的时候,就给计数器加1,当引用失效时,就给计数器减1,当引用计数器为0的时候,说明这个对象不会再被使用。这种方法被称为引用计数法。引用计数法的逻辑比较简单,效率高,但是却无法解决对象和对象之间的循环引用的问题。
可达性算法分析
可达性分析算法的基本思想是通过被称为GCRoots的起始点向下搜索,搜索走过的链路被称为引用链,如果没有任何一条链路到达这个对象,那么这个对象就不会再被使用,就可以将其回收。
感谢各位的阅读,以上就是“java的垃圾回收机制介绍”的内容了,经过本文的学习后,相信大家对java的垃圾回收机制介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!