Java学习笔记(五)垃圾强制回收

Java学习笔记3.11.2 垃圾回收 - 垃圾回收的实现方式 1. 理解并掌握垃圾回收的实现方式; 2. 理解垃圾回收器何时自动进行垃圾回收 阅读详情

Java中提供了垃圾强制回收机制的方法System.gc(),但是系统并不保证会立即进行垃圾回收,而是JVM根据定义的一套垃圾回收算法来确定,算法用来提高垃圾回收的效率。

判断一个存储单元是否是垃圾的依据是:该存储单元所对应的对象是否仍被程序所用,即是否有引用指向该对象。Java的垃圾回收器自动扫描对象的动态内存区,对所引用的对象加标记,然后把没有引用的对象作为垃圾收集起来并释放出去。

Java没有提供析构方法,但提供了一个类似的方法:protected void finalize();

程序说明:

class J_Book {
	private String name;

	J_Book(String name) {
		this.name = name;
	}

	// 覆盖默认的finalize方法
	protected void finalize() {
		System.out.println("Book,\"" + name + "\",is destroyed!");
	}
}

public class J_Finalize {
	public static void main(String[] args) {
		J_Book book1 = new J_Book("Gone with wind");

		// 匿名的实例,被Java判定为垃圾内存,会被当做垃圾回收
		new J_Book("Java How to Program");
		new J_Book("Roman Holiday");
		book1 = new J_Book("Thingking in Java");

		// 强制垃圾回收,注意编译系统不会立刻垃圾回收,由自己的算法来决定何时执行垃圾回收
		System.gc();
	}
}

程序运行结果:

Book,"Roman Holiday",isdestroyed!

Book,"Java How toProgram",is destroyed!

Book,"Gonewith wind",is destroyed!

说明:上述结果是eclipse在调试模式下得出的!


论文分享 - OctoMap八叉树建图原理 论文:OctoMap:An Efficient Probabilistic 3D Mapping Framework Based on Octrees。 阅读详情

相关推荐

Redis架构演进:从主从、哨兵到集群,如何支撑亿级流量的秒杀场景?

本文深入探讨了分布式缓存Redis的三种核心高可用模式:主从复制、哨兵模式与集群模式。以高并发的电商秒杀业务为切入点,我们分析了每种模式的优缺点和适用场景,并最终选择Redis集群模式作为最佳解决方案。文章提供了基于Spring Boot和Spring Data Redis的完整实现代码,详细展示了如何配置和使用Redis集群来应对高并发、高可用的挑战,旨在帮助开发者在实际项目中做出正确的技术选型和架构设计。

lingRJ777的博客 723

Java的垃圾强制回收

一点睛 当一个对象失去引用后,系统何时调用它的finalize()方法对它进行资源清理,何时它可以变成不可达状态,系统何时回收它占有的内存,对于程序完全透明。程序只能控制一个对象不再被任何引用变量引用,不能控制它何时被回收。 程序可以强制系统进行垃圾回收——这种强制只是通知系统进行垃圾回收,但系统是否进行垃圾回收依然不能确定。大部分时候,程序强制垃圾回收后总是有一些效果 强制系统垃圾回收有...

实践求真知 9662

基于APDL语言的结构优化设计

同理,二次微分值称为二阶值。通俗地讲优化分析,指的找到一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应力,费用等)最小。设计方案的任何方面都是可以优化的,比如说:尺寸(如厚度),形状(如过渡圆角的大小),支撑位置,制造费用,自然频率,材料特性等。完成分析文件的建立后,就可以进行优化分析了,如果在交互方式下进行优化的话,最好先在ANSYS数据库中用分析文件建立参数,其优点有:初始参数可以作为一阶分析方法的起点,且对于优化过程参数在数据库中可以在GUI下进行操作,便于定义优化变量。

m0_73816777的博客 1174

java程序可以强迫垃圾回收么_Java基础知识总结之垃圾回收机制

垃圾回收机制Java垃圾回收机制是Java语言的重要功能之一。当程序创建对象,数组等引用类型对象时,系统会自动在内存区为之分配一块内存,对象就保存在这块内存区内,当这块内存不再被任何变量引用时,这块内存就成为了垃圾,等待垃圾回收机制进行回收。Java垃圾回收机制的特征1.垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(例如数据库连接、网络连接、IO流等资源)。2.程序无法精准控制垃圾回...

weixin_35663718的博客 819

手把手教你用VCS+Verdi在Linux下仿真蜂鸟E203 RISC-V核(附波形调试技巧)

本文详细介绍了在Linux环境下使用VCS和Verdi工具链对蜂鸟E203 RISC-V核进行仿真验证的完整流程。从环境配置、工程结构解析到VCS编译优化和Verdi波形分析技巧,提供了实战性强的调试方法和性能优化策略,帮助工程师高效完成数字IC验证工作。

weixin_42531163的博客 415

RTX 5090配Ubuntu 24.04踩坑记:手把手搞定OpenVLA-OFT环境(附版本避坑清单)

本文详细记录了在RTX 5090显卡和Ubuntu 24.04系统上部署OpenVLA-OFT环境的完整过程,包括驱动安装、CUDA配置、PyTorch版本选择等关键步骤。提供了经过验证的版本组合清单和常见错误解决方案,帮助开发者高效搭建AI开发环境。

weixin_30342209的博客 465

关于java中的内存回收机制

该方法只有在gc开始着手清理该对象时才会执行,所以JVM并不是必定会执行该方法的,比如你的程序在退出前都没有释放过该资源,那么该方法就不会执行。第一种执行的是System.gc()和System.runFinalization()方法,从最后的输出可以看出,并没有完全的销毁对象,程序就结束了,这再一次证明了java垃圾回收机制的不确定性。该方法用于在程序结束后进行垃圾回收。该方法有时被人称作强制调用系统的gc,然而这是不准确的,该方法只是建议gc进行一次回收,然而对于它是否能被执行,这是不受保障的。

networmrlc的博客 653

数据质量管理的一些思考

背景 在近期的项目当中,我们为客户落地实施了数据资产平台。随后,在数据平台中接入了客户子公司的一个业务系统的明细数据。客户希望在我们的数据平台上通过数据探索和数据分析,来挖掘一些业务价值和业务创新点。 当我们拿到数据开始进行一些初步探索的时候,发现导入平台的数据质量存在一定的问题:例如一些用于数据分析的关键字段的值为空、一些本应该有主从关系的数据对应不上、数据分类混乱等。这些问题直接影响到了对...

IDEAL Garden 1万+

java中的强制内存回收_Java的内存回收

一、java引用的种类1、对象在内存中的状态可达状态:当一个对象被创建后,有一个以上的引用变量指向它。可恢复状态:不可达状态:当对象的所有关联被切断,且系统调用所有对象的finalize方法依然没有使该对象变成可达状态,那该对象将永久性的失去所有引用,最后变成不可达状态。2、引用的类型强引用:软引用:弱引用:虚引用:二、java的内存泄露三、垃圾回收机制1、垃圾回收算法串行(Serial)回收和并...

weixin_40000457的博客 789

【邻接表存图模板】vector邻接表、数组邻接表、链式前向星

一、目录 一、目录 二、前言 三、邻接表“详解” (一)边的信息 (二)几种邻接表的实现方法“详解” 1.数组邻接表 代码 2.vector邻接表 代码 vector邻接表还有一种魔性写法: 3.链式前向星 代码 四、总结 二、前言 本来之前自己太弱了,一直只会用邻接矩阵,后来发现邻接表才是主流... 参考&特别鸣谢: https://www.cnblog...

十里寒塘路♣烟花一半醒 3113

虚拟机安装VMware Tools

单击虚拟机-->安装VMware Tool 安装之后会有一个VMware Tools硬盘,里面有VMware Tools.tar.gz的压缩包 按照提示解压它,然后执行vmware-install.pl安装VMware Tools 将安装包放到/tmp目录下。可以直接拽过去,也可以使用cp或者mv命令 进入tmp文件目录并解压此文件包 cd /tmp ...

afei001 620

Java垃圾回收机制

内存泄露程序运行时分配出去的内存得不到及时回收就会造成系统运行速度下降,甚至瘫痪,这种情况就叫做内存泄露垃圾回收回收那些不再使用的内存,被称为垃圾回收(Garbage Collection,GC)JREJava运行环境(Java Runtime Environment,简称JRE)JVMJVM是JavaVirtualMachine(Java虚拟机)的缩写永生代内存PermGen,永生代内存主要用于存储一些需要常驻内存,通常不会被回收的信息元空间。

小豪的小目标 1101

后仿真中《SDF反标必懂连载篇》之 <INTERCONNECT/IOPATH> 到底反标电路路径是哪里

对于SDF INTERCONNECT ENTRY 描述,我们在之前的文章有详解。读万卷书,行万里路。实践很重要。今天,搞一下SDF INTERCONNECT / IOPATH 延迟数据信息,究竟反标的是哪一路径延时?究竟在电路上一段段如何表现出延迟现象的呢?

那么菜的博客 2131

java怎么强制回收某个对象_4、如何强制垃圾回收一个对象?(java)

4、如何强制垃圾回收一个对象?(java)检举 | 2008-10-25 19:12 提问者: 路瓶子 | 浏览次数:2956次4、如何强制垃圾回收一个对象?A)垃圾回收不能被强制执行。B)调用System.gc()。C)调用System.gc(), 将要回收对象的引用作为参数传入。D)调用Runtime.gc()。我来帮他解答2008-10-25 19:27 满意回答A...不能被强制收回,,,...

weixin_42546508的博客 2233

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java垃圾回收器总结

什么是Java垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation)、自动回收(Garbage Collect)功能,这两个操作都发生在Java堆上(一段内存快)。某一个时点,一个对象如果有一个以上的引用(Rreference)指向它,那么该对象就为活着的(Live),否则死亡

永无止境,上下求索 3万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java强制gc立即回收一个对象_java的gc(垃圾回收)

本文出自 “熔 岩” 博客,转载请与作者联系!:http://lavasoft.blog.51cto.com/62575/112126/Java的垃圾回收总结内存是稀缺的资源,哪怕内存一块钱一条!如果在编程中使用不当,再大的内存也会耗光。一、认识Java的自动垃圾回收垃圾回收是Java语言的一大特性,方便了编程,是以消耗性能为代价的。而垃圾在这里只无用的对象。而C++是需要程序员自己写析构函数来...

weixin_42303568的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java基础:简述垃圾回收机制

1.什么是“垃圾回收”机制? 当程序创建对象,数组等引用类型实体时,系统会在堆内存中为之分配一块内存区,对象就保存在内存区中,当内存不再被任何引用变量引用时,这块内存就变成了垃圾,等待垃圾回收机制去进行回收。 2.垃圾回收机制的特点: *垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(网络io等) *程序无法精准控制垃圾回收的运行,垃圾回收在合适的时候进行,当对象永久性失去了引...

Lzinner的博客 2万+

java 强制gc_如何强制GC回收垃圾

Java垃圾回收机制(GC)详解简介:垃圾回收GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是...

weixin_39528994的博客 5万+

对象与垃圾回收

对象与垃圾回收

底层码农 1万+

java 强制垃圾回收_Java垃圾回收机制

Java垃圾回收机制垃圾回收机制用到finalize。当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存中,当这块内存不再被任何引用变量引用时,这块内存就会变成垃圾,等待垃圾回收机制进行回收。垃圾回收机制特征:垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(例如:数据库连接,网络IO)程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候运...

weixin_34377666的博客 880

java强制回收对象_4、如何强制垃圾回收一个对象?(java)

4、如何强制垃圾回收一个对象?(java)检举 | 2008-10-25 19:12 提问者: 路瓶子 | 浏览次数:2956次4、如何强制垃圾回收一个对象?A)垃圾回收不能被强制执行。B)调用System.gc()。C)调用System.gc(), 将要回收对象的引用作为参数传入。D)调用Runtime.gc()。我来帮他解答2008-10-25 19:27 满意回答A...不能被强制收回,,,...

weixin_39667398的博客 1117

浅谈Java垃圾回收机制

今天来谈谈Java垃圾回收机制,为何谈这个呢?毕竟这个是Java的一大特色,也是进阶之路需要去深入了解的地方。学过C++的同学都知道,C++编程中,对象所占的内存在程序结束运行之前会一直被占用,在明确释放之前不能分配给其它对象。 而在Java中,如果没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。而负责编译的Java虚拟机-JVM的一个系统级线程则自动释放该内存块。垃圾的回

Simple的博客 4773

java强制回收对象_Java的垃圾强制回收实例分析

本文实例讲述了Java的垃圾强制回收。分享给大家供大家参考,具体如下:一 点睛当一个对象失去引用后,系统何时调用它的finalize()方法对它进行资源清理,何时它可以变成不可达状态,系统何时回收它占有的内存,对于程序完全透明。程序只能控制一个对象不再被任何引用变量引用,不能控制它何时被回收。程序可以强制系统进行垃圾回收——这种强制只是通知系统进行垃圾回收,但系统是否进行垃圾回收依然不能确定。大部...

weixin_42515225的博客 472

JAVA垃圾回收

今天我们谈一谈JAVA中的垃圾回收 你好WO SHI 奇卡雨言 ^ _ ^ 大家好,暑假终于来了,终于轻松了,我又可以继续更新了,话不多说,我们开始。 在JAVA中,当一个对象成为垃圾后仍会占用空间,时间长了就会垃圾成山,我们的内存也岌岌可危。针对这种情况,JAVA引入了垃圾回收机制。程序员不需要担心垃圾回收问题。JAVA虚拟机会自动回收垃圾所占用的内存空间。 除了等待JAVA虚拟机进行自动垃圾回收外,还可以通过调用 System.gc()的方法来通知JAVA虚拟机立即进行垃圾回收。当一个对象被释放时,fi

qq_47018979的博客 537

Java语言的垃圾回收

7.6 Java语言的垃圾回收 在Java程序的生命周期中,Java运行环境提供了一个系统的垃圾回收器线程,负责自动回收那些没有被引用的对象所占用的内存,这种清除无用对象进行内存回收的过程就叫作垃圾回收(garbage-collection)。垃圾回收是Java语言提供的一种自动内存回收功能,可以让程序员减轻许多内存管理的负担,也减少程序员犯错的机会。 当一个对象被创建时,JVM会为该对象分配一定的内存、调用该对象的构造方法并开始跟踪该对象。当该对象停止使用时,JVM将通过垃圾回收器回收该对象所占.

CarloPan的博客 942

Java:对象与垃圾回收

一、垃圾回收特征  垃圾回收机制只负责回收内存中的对象,不会回收任何物理资源(例如数据库连接、网络IO等资源);  程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候进行。当对象永久地失去引用后,系统就会在合适的时候回收它所占有的内存;  垃圾回收机制回收任何对象执之前,总会调用finalize()方法,该方法可能是该对象重新复活(然一个引用变量重新引用该对象

1024工场 5901
上一篇: Java学习笔记(四)类与对象
下一篇: Java学习笔记(六)static关键字
mengrennwpu
博客等级 码龄15年 262粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mengrennwpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值