java具有回收垃圾的作用吗_Java中垃圾回收功能
Java中垃圾回收功能
作者:未知 文章来源:www.jspcn.net
发布日期:2005年01月19日
Java(TM) 编程语言的一个真正强有力的特征是它的内存管理机制。Java 虚拟机依据 new 操作符的请求动态地为对象在堆中分配空间。
其他语言将释放对象的重担都放到了程序员身上,当对象不再使用时,程序员通过 delete 这样的操作符或者是 free()这样的库函数来释放对象。而Java编程语言不为程序员提供这样的功能,因为Java运行环境会自动收回那些没有引用与之相连的对象所占的内存。这种内存回收的过程就叫 垃圾回收。
垃圾回收包括:(1) 为每一个对象保存与之相连的所有引用的数目;(2) 定期回收那些引用数目为零的对象所占的内存。垃圾回收是一个古老的计算技术,在一些计算机语言和文本编辑器这样的环境中都用到过这中技术。
请看下面的方法:
...
void aMethod() {
Dog dog = new Dog();
// do something with the instance dog
...
}
...
dog 是方法 aMethod() 中的一个局部变量,在方法调用时自动分配了内存。new 创建了 Dog 的一个实例,其内存地址存放在 dog 中,对它的引用的数目增加到 1。当此方法完成/返回时,引用变量 dog 就不再在其作用范围内,对其的引用数目减为 0。此时,Dog 实例就要被垃圾回收器回收。
下面,看看这段代码:
...
while (true)
Dog dog = new Dog();
...
上述代码中,while 循环(一直进行)的每一轮都为Dog 的一个新实例分配空间,将其引用存放在 dog 中并替换掉在上一轮循环中放入的对 Dog 实例的引用。此时,前面分配的实例就成了垃圾回收的对象。
垃圾回收器自动定期执行。任何时候你都可以手动通过 System.gc() 调用垃圾回收器。
java具有回收垃圾的作用吗_Java中垃圾回收功能相关推荐
- Java平台,标准版Oracle JDK 9中的新功能
Java平台,标准版 Oracle JDK 9中的新增功能 版本9 E77563-05 2017年9月 JDK 9中的新功能概述 Java Platform,Standard Edition 9是一个 ...
- java中垃圾收集_Java中垃圾回收机制
"猪能吃的是湿垃圾,猪不吃的是干垃圾,猪吃了会死的是有害垃圾,卖了能买猪的是干垃圾 ......"最近,上海人民都快被垃圾分类弄疯了.那作为程序员的你,知道在Java中是怎么垃圾回 ...
- Java传统的io和nio区别_Java中IO和NIO的本质和区别
简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就 ...
- java 继承 实现 会重写 方法吗_java 中继承,组合,重载,重写的实现原理 (转)...
我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...
- java中的日历_Java中的日历功能
java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...
- Java所有函数都是动态的_Java中的函数动态调用
//------------------------------------- //类ArgumentHolder //用于调用参数的封装,实现变长参数及 //不同类型参数的统一形式地传递 //成员变 ...
- java 什么时候进行垃圾回收_Java中垃圾回收有什么目的?什么时候进行垃圾回收?...
仅提供一个大致的思路: 垃圾回收(gc)的目的是释放堆中不需要保存的对象,达到内存的充分利用. 1.回收哪些对象的判定 垃圾回收最简单的思路是采用引用计数的方式,即记录对象被引用的次数,直到一段时间内 ...
- java po vo bo是什么以及_JAVA中(PO,VO,TO,BO,DAO,POJO)分别是指什么
(一)O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据. 在O/R Mapping的世界 ...
- java复制两个对象报异常_Java中复制两个不同类的对象的属性
Apache的开源包BeanUtils用来复制两个对象的属性,要使用这个Apache的开源包,要先去官网下载commons-beanutils-1.X.jar包,http://www.apache.o ...
- java bufferedwriter会自动创建文件吗_Java中为什么会有包装类?自动拆装箱必要吗?关于Wrapping Class这是重点!...
入题 自动封箱与拆箱人人皆可言之道之,但封箱和拆箱却被多数人略之!如此简单的一个机制,却影射着Java的核心理念,不清楚?继续向下看吧~ Java中的数据类别 目前Java中的数据类别分为两种,一种是 ...
最新文章
- NHibernate ConfORM Mapping
- h5移动端如何让页面强制横屏
- IOS15 UICollectionViewController 如何初始化
- 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格...
- 单片机c语言篮球比分_基于单片机的篮球比赛计时计分器的设计
- 销货清单数据_2020年8月数据科学阅读清单
- 665C. Simple Strings
- 麒麟信安:根植于openEuler,走操作系统自主创新之路
- SAP 函数积累(转
- ORACLE SEQUENCE用法 (自增长)
- 【IDEA】Command line is too long. Shorten command ... or also for Application default configuration
- 源代码分析工具推荐Understand
- 如何用来客商城改造成种草商城
- 基于java的拼图游戏的设计与实现
- vue element table expand 扩展行点击行展示且保证只展示一行
- window 删除文件报错显示被程序占用 强制删除被占用的文件
- 《那些年啊,那些事——一个程序员的奋斗史》——43
- 女人,你真的懂自己吗:女生空间QQ情感日志
- android小米手机拍照功能,拍照参数设置界面_小米 M1(MIUI)_手机Android频道-中关村在线...
- 东大22春电子政务X《电子政务》在线平时作业1答案非答案