`
jilong-liang
  • 浏览: 485251 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Java的GC的两种回收

    博客分类:
  • Java
GC 
阅读更多
public class GcTest {
	/**
	 * JDK的解释:
	 *  1)gc public void gc()运行垃圾回收器.调用此方法意味着 Java
	 * 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存.当控制从方法调用中返回时,
	 * 虚拟机已经尽最大努力回收了所有丢弃的对象.名称 gc 代表“垃圾回收器”.虚拟机根据需要在单独的线程中自动执
	 * 行回收过程,甚至不用显式调用 gc 方法. 方法 System.gc();是调用此方法的一种传统而便捷的方式. 
	 * 
	 * 2)public static void gc()运行垃圾回收器. 调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象
	 * 以便能够快速地重用这些对象当前占用的内存.当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间.
	 * 调用 System.gc() 实际上等效于调用: Runtime.getRuntime().gc()
	 * 
	 * 3)原理:将无用的对象空间进行释放, GC两种回收:自动回收,手工调用System.gc();方法实际上是调用System.gc();就相当于调用
	 *  了Runtime.getRuntime().gc();方法
	 */
	public static void main(String[] args) {

		try {
			System.out.println("GC");
		} catch (Exception e) {
			System.out.println(e.toString());
		} finally {
			Runtime rt = Runtime.getRuntime();
			rt.gc();// 手工回收
			/**
			 * 调用System.gc();其实就是调用Runtime.getRuntime().gc();回收 public static
			 * void gc() { Runtime.getRuntime().gc(); }
			 */
			System.gc();
			
			rt.totalMemory();//清除内存
			rt.freeMemory();//释放内存

		}
		/**
		 * Runtime与System的常用
		 */
		String name="C:/Windows/System32/crypt32.dll";
		// print when the program starts
		System.out.println("Program starting...");
		// load a library that is Windows/System32 folder
		System.out.println("Loading Library...");
		Runtime.getRuntime().load(name);
		System.out.println("Library Loaded.");
		
		//1.加载文件 
		System.load(name); 
		Runtime.getRuntime().load(name); 
		//2.加载库 
		System.loadLibrary(name); 
		Runtime.getRuntime().loadLibrary(name); 
		//3.快速复制数组 
		Object src=null,dest=null;
		int srcPos=0,destPos = 0,length=0;
		System.arraycopy(src, srcPos, dest, destPos, length);
		//4.取得系统的时间(毫秒数) 
		System.currentTimeMillis(); 
		//5.系统退出命令 
		System.exit(0); 
		Runtime.getRuntime().exit(0); 
		//6.垃圾回收 
		System.gc(); 
		Runtime.getRuntime().gc(); 
		//7.查看系统内存 
		Runtime.getRuntime().totalMemory(); 
		Runtime.getRuntime().maxMemory(); 
		Runtime.getRuntime().freeMemory(); 
		//8.运行系统程序 
		//如打开记事本 
		try {
			Runtime.getRuntime().exec("notepad") ;
			Runtime.getRuntime().exec("notepad").waitFor();//等待进程结束 
		} catch (IOException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		//9.使用关闭钩子 
		Runtime.getRuntime().addShutdownHook(new Thread());
	
	}
}

 

0
5
分享到:
评论

相关推荐

    Java GC的过程

    GC判定一个对象是否可回收,通常采用两种策略: 1. 引用计数法:跟踪对象被引用的次数,当引用计数为0时,认为对象可回收。但由于其无法处理循环引用,Java并未采用。 2. 可达性分析:通过一系列称为“根”(如:...

    java垃圾回收(gc)机制详解

    GC主要基于两种概念:引用计数和可达性分析。 1. 引用计数:为每个对象维护一个引用计数,当引用数为0时,对象被视为垃圾。但这种方法无法处理循环引用的问题。 2. 可达性分析:从一组称为“根”(如栈上的本地...

    Java垃圾回收GC机制

    Java垃圾回收GC机制 Java垃圾回收GC机制是Java虚拟机(JVM)中的一种...GC机制的实现基于分代收集算法,可以分为普通GC和全局GC两种类型。不同的GC算法有其优缺,选择合适的GC算法可以提高Java程序的性能和稳定性。

    成为JavaGC专家PartII-如何监控Java垃圾回收

    在Java编程语言中,垃圾回收(Garbage Collection, GC)是一项至关重要的机制,它自动管理内存,释放不再使用的对象,防止内存泄漏。本篇将深入探讨如何监控Java的垃圾回收,帮助开发者提升应用性能和稳定性。 Java...

    java垃圾回收(gc)机制详解.pdf

    确定一个对象是否“无用”,主要有两种算法:引用计数法和可达性分析法。 1. 引用计数法 引用计数法通过跟踪记录每个对象被引用的次数来判断对象是否可回收。当对象的引用计数器值为0时,意味着没有引用指向该对象...

    Java垃圾回收机制详解

    Java的出现极大地简化了这一过程,其中最为突出的特点之一就是其内置的垃圾回收机制(Garbage Collection, GC)。通过这一机制,Java能够自动识别不再使用的对象,并释放其所占用的内存空间,从而避免了手动管理内存...

    java垃圾回收机制

    在Java中,主要有两种方法来确定一个对象是否可以被回收: 1. **引用计数**:早期的一种简单策略,通过跟踪指向每个对象的引用数量来决定是否可以回收。当对象的引用计数降为0时,说明它可以被回收。 2. **对象引用...

    java垃圾回收

    Java垃圾回收(Garbage Collection, 简称GC)是Java虚拟机(JVM)管理内存的一种机制,它自动地识别并清理不再使用的对象,从而避免了程序员手动管理内存可能导致的内存泄漏问题。垃圾回收是Java语言的一个重要特性...

    JAVA垃圾回收机制

    GC的运作方式主要有两种策略:引用计数和对象引用遍历。 引用计数是一种简单但不完美的方法。每个对象都有一个引用计数,当一个对象被创建并赋值给变量时,其计数为1。当其他变量引用该对象时,计数增加,当引用...

    Java垃圾回收机制总结

    该算法的主要思想是,首先标记出所有的GC Root对象,然后将这些对象的引用关系跟踪下去,并将所有的对象分为两类:存活对象和垃圾对象。最后,回收所有的垃圾对象所占用的内存空间。该算法的优点是标记-清除算法不...

    Java垃圾回收详解

    在Java编程语言中,垃圾回收(Garbage Collection, GC)是一项自动化的内存管理机制。它能够自动检测并释放那些不再被程序使用的对象所占用的内存空间,从而有效地避免了内存泄漏问题。与C++等需要程序员手动管理...

    JAVA垃圾回收面试个人总结.doc

    垃圾回收(Garbage Collection, GC)是Java虚拟机自动管理内存的一种方式,旨在自动识别并释放不再使用的对象,从而避免内存泄漏。面试中,理解GC的工作原理和优化策略对于应聘者来说至关重要。 首先,Java内存主要...

    java垃圾回收技术,面试会问

    在现代软件开发中,Java作为一种广泛使用的编程语言,其垃圾回收机制(Garbage Collection, GC)是面试和技术交流中经常提及的话题之一。尤其对于那些深入研究Java内存管理和性能优化的技术人员来说,理解垃圾回收的...

    java C#垃圾回收算法分析

    Java和C#是两种流行的面向对象的编程语言,它们都具备自动内存管理机制,其中垃圾回收(Garbage Collection, GC)是一项核心功能。垃圾回收旨在自动检测并释放不再使用的内存,防止内存泄漏,确保程序的稳定运行。...

    Java与C#的垃圾回收机制

    本文将深入对比Java与C#这两种广泛使用的编程语言中的垃圾回收机制,帮助开发者更好地理解它们的工作原理以及差异。 #### 二、Java的垃圾回收机制 ##### 2.1 Java内存区域 Java虚拟机(JVM)将内存划分为几个主要...

    浅谈JAVA垃圾回收机制.pdf

    Java 中的垃圾回收机制主要通过两种算法来判断对象是否可以被回收,即引用计数算法和可达性分析算法。引用计数算法通过给对象中添加一个引用计数器来判断对象是否可以被回收,而可达性分析算法则是通过搜索 GC Roots...

    JAVA中对GC的理解

    每种回收器在性能、停顿时间和资源利用上都有不同的优化策略。 4. **GC的工作流程**: - 新生代GC(Minor GC):通常发生在新生代,当Eden区满时触发。存活对象会被移动到Survivor区。 - 老年代GC(Major GC/Full...

    C#垃圾回收机制GC

    垃圾回收(Garbage Collection, GC)是现代编程语言中用于自动管理内存的一种机制。它的核心思想是通过跟踪和回收那些不再被程序引用的对象,以避免内存泄漏和提高内存利用率。在.NET框架中,GC是由Common Language ...

    基于动态优先级的实时Java垃圾回收策略.pdf

    本文提出了一种基于动态优先级的实时Java垃圾回收策略,旨在解决通用平台下Java虚拟机垃圾回收器(GC)的不定期启动问题。该策略将优先级分为两级:关键线程和非关键线程,并计算出垃圾回收的时机,即计算出垃圾回收...

Global site tag (gtag.js) - Google Analytics