java的垃圾回收机制介绍-创新互联
这篇文章主要讲解了“java的垃圾回收机制介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java的垃圾回收机制介绍”吧!
成都创新互联公司长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为湖州企业提供专业的成都网站建设、网站制作,湖州网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。java垃圾回收机制介绍
了解了到了绝大部分的对象是分配在堆上面的,我们在编码的时候并没有显示的指明哪些对象需要回收,但是程序在运行的过程中是会一直创建对象的,之所以没有内存溢出是因为我们的虚拟机帮我我们自动进行了垃圾回收,保证程序运行的时候有足够的空间来分配我们创建的对象。
JVM被分为五大内存区域,其中程序计数器、虚拟机栈,本地方法栈是线程私有的,内存随着线程的销毁而退出。堆和方法区是动态分配的,由于方法区的垃圾收集收效甚微,所以本章所说的垃圾回收主要指的是堆内存的垃圾回收。
什么样的对象会被回收
什么样的对象会被回收呢?我们想象下在生活中,什么样的东西会被我们扔进垃圾桶呢,是不是已经不再使用的东西或者说是没有任何利用价值的东西,在java中也是一样的,就是不会再使用到的对象。那么在java中,怎么判断这个对象是不是不会再被使用呢?显然,这似乎要比现实生活中判断哪些东西是垃圾要复杂许多。
如何确定一个对象是垃圾
前面说到,我们需要知道哪些对象是需要被回收的,那么怎么判断这个对象是否需要回收呢?
引用计数法。
创建对象的时候,给对象添加一个引用计数器,每当有一个地方引用的时候,就给计数器加1,当引用失效时,就给计数器减1,当引用计数器为0的时候,说明这个对象不会再被使用。这种方法被称为引用计数法。引用计数法的逻辑比较简单,效率高,但是却无法解决对象和对象之间的循环引用的问题。
可达性算法分析
可达性分析算法的基本思想是通过被称为GCRoots的起始点向下搜索,搜索走过的链路被称为引用链,如果没有任何一条链路到达这个对象,那么这个对象就不会再被使用,就可以将其回收。
感谢各位的阅读,以上就是“java的垃圾回收机制介绍”的内容了,经过本文的学习后,相信大家对java的垃圾回收机制介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联网站建设公司,,小编将为大家推送更多相关知识点的文章,欢迎关注!
本文标题:java的垃圾回收机制介绍-创新互联
文章源于:http://scjbc.cn/article/cecpss.html