`
hellojim
  • 浏览: 53325 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

finalize 关键字和 System.gc() 的作用

    博客分类:
  • JAVA
阅读更多
//此类说明了 finalize 关键字以及 System.gc() 的作用
/* 
	finalize 类似 c++中析构函数,表示对象即将消亡时,调用此方法
	gc() 方法表示把拉级回收器启动,把拉圾收走
*/

class Person {
	
	private String name;
	private int age;
	
	public Person() {
	}
	public Person(String name) {
		this.name = name;	
	}
	public Person(String name,int age) {
		this(name);	 
		this.age = age;
	}
	
	//每个类里面都有finalize方法,和构造方法功能相反,一个是对象产生时调用,一个是对象消亡时调用
	public void finalize() {
		
		System.out.println("开始清理对象...");
	}
	
	public static void main(String[] args) {
		//下面三个对象一产生即成为拉圾
		new Person();
		new Person();
		new Person();
		
		//如果不加上下面这句,以上产生的三个对象虽成为拉圾,但不一定马上就会启用拉圾回收机制把拉圾回收走
		//所以就可能看不到 finalize 方法内部执行的效果
		System.gc();
	}
	
}

 

分享到:
评论

相关推荐

    Java中finalize()的用法

    所有对象被 Garbage Collection 时自动调用,例如运行 System.gc() 时;2. 程序退出时为每个对象调用一次 finalize 方法;3. 显式的调用 finalize 方法。 需要注意的是,finalize() 方法的调用是不确定的,JVM 不...

    JAVA中销毁一个对象的方法.doc

    ### JAVA中销毁一个对象的方法详解 ...对于一些特殊需求,还可以通过`finalize()`方法和`System.gc()`来辅助管理对象的生命周期。然而,在实际应用中,应当尽量避免依赖这些辅助手段,以减少潜在的问题和性能开销。

    浅析JAVA之垃圾回收机制.doc

    【垃圾回收机制简介】 在Java编程中,与C++或C等语言相比,开发者无需...开发者应该避免过度依赖`finalize()`和`System.gc()`,而是充分利用Java的内存管理机制,同时关注JVM参数的优化,以提升应用程序的整体性能。

    优秀Java程序员必须了解的GC工作原理

    在Java中,程序员通过`new`关键字创建对象,而对象的释放则无需手动操作,只要将对象的所有引用置为`null`,使其变为“不可达”,GC就会在合适的时候回收这部分内存。 GC的工作原理基于有向图的概念,它跟踪堆...

    java内存泄露[借鉴].pdf

    当对象不再被任何引用(活动部分)指向时,GC会判断其为无用,并在适当的时候调用对象的`finalize()`方法(如果定义了该方法)进行清理工作,随后回收内存。然而,垃圾收集器何时运行是不确定的,且无法被强制执行,...

    Java面试笔试题集

    GC是垃圾收集的缩写,用于释放无用的对象空间,JVM提供了自动回收和手工调用的System.gc()方法两种方式来进行垃圾回收。 十、sleep()和wait()的区别 sleep()是Thread类中的方法,表示线程的休眠,会自动唤醒;wait...

    变态JAVA面试32问.pdf

    在Java中,可以通过System.gc()或Runtime.getRuntime().gc()方法请求虚拟机进行垃圾回收,但具体时机由垃圾收集器决定。 9. 异常处理中的sleep()和wait()方法 sleep()方法属于Thread类,使当前线程暂停执行指定的...

    Java SE编程入门教程 java GC(共6页).pptx

    `System.gc()`是一个建议JVM执行垃圾回收的方法,但它的调用并不保证立即执行垃圾回收。垃圾回收的具体动作取决于JVM的实现和当前的系统状态。 Java提供了`finalize()`方法,这是一个在对象即将被垃圾回收时自动...

    java面试题及答案.doc

    17. 设计四个线程的程序涉及线程同步和协作,可以使用 `synchronized` 关键字控制访问。 18. Java 没有 `goto` 关键字。 19. 启动线程使用 `start()`,`run()` 用于线程执行体。 20. 应用服务器示例有 Tomcat, ...

    java面试技巧.pdf

    了解System.gc()的调用和Runtime.getRuntime().gc()的作用以及它们对垃圾回收的建议性影响。还需了解 finalize() 方法的工作原理及其在现代Java开发中的推荐做法。 **6. Java并发编程** 在面试中可能会要求解释...

    C语言工程师面试宝典

    13. 请说一下 System.gc()函数的作用。什么什么时候可以调用垃圾回收器? 14. 你做过的项目中采用了什么安全认证机制? 15. Math.round()什么作用? C C 语言考查的重点一般是:指针、结构体、条件编译、全局变量/...

    java英语面试题大集合

    虽然不能直接强制执行垃圾收集,但可以通过调用`System.gc()`来请求。Java虚拟机(JVM)并不保证立即启动垃圾收集。 Q6. 如何判断是否需要显式对象类型转换? 当你将超类对象赋值给子类类型的变量时,需要显式类型...

    软件开发技术面试常见题目

    13. 请说一下 System.gc() 函数的作用。什么时候可以调用垃圾回收器? 14. 你做过的项目中采用了什么安全认证机制? C: 1. 请说一下 extern C 的作用。 2. 请说一下 #ifdef... 的作用。 3. C 语言里,哪些变量是...

    程序员面试 九阴真经

    1. 关键字 final、finally 和 finalize: - `final` 用于修饰类、变量和方法,表示不可变性。修饰类时,表示该类不能被继承;修饰变量时,变量一旦初始化后不可改变;修饰方法时,表示该方法不能被重写。 - `...

    C#第八章(对象的生命周期)

    本章还介绍了C#的垃圾回收器相关的高级操作,如使用System.GC类通过编程控制垃圾回收器的行为,以及如何通过System.Object.Finalize()虚方法和IDisposable接口来释放对象内部的非托管资源,确保非托管资源的及时释放...

    Java考试题.pdf

    当一个对象不再可达时,GC会调用`finalize()`方法,这是一个可选的清理操作。`System.gc()`是建议进行垃圾回收的函数,但实际何时执行由JVM决定。垃圾回收器会识别所有引用链中不可达的对象,然后回收其内存。同名...

    Java_基础面试题.

    Java 基础面试题涵盖了Java编程语言的关键概念和特性,包括异常处理、垃圾回收、错误与异常的区别、关键字的应用以及数据结构与集合框架。以下是对这些知识点的详细解释: 1. 异常处理机制:Java中的异常处理是通过...

Global site tag (gtag.js) - Google Analytics