今天上午我们老师讲Java的垃圾内存回收机制,然后下午我就写这个简单的几句好多次,不是说代码很长,就那么几句的,就是有些想不懂的。
老师讲的垃圾内存回收:
1.垃圾内存:
就是通过new关键字分配内存并创建了一个对象,比如new Garbage();就是在产生垃圾
2.垃圾回收:
通过调用finalize()方法,来进行回收.
3.代码:
class Garbage { int index;//判断销毁的对象编号 static int count; Garbage(){ count = count+1; System.out.println("object:"+count+"constructed."); setID(count); } void setID(int id){ index = id; } protected void finalize(){ System.out.println("object:"+index+"is reclaimed."); } public static void main(String[] args){ new Garbage(); new Garbage(); new Garbage(); new Garbage(); new Garbage(); new Garbage(); System.gc(); } }
4.老师和同学的运行结果:
----------------------------------------------------------------
1.看API查看gc(),和finalize()方法:
gc():
finalize():
2.通过API知道finalize():
1.显式的调用finalize方法,会调用finalize();
2.所有对象被Garbage Collection时自动调用,比如运行System.gc()的
时候会调用finalize();
3.然后我的运行结果如下:
4.然后就在网上搜:
5.最后得出是可能是JDK版本问题,老师的是JDK6,我的是JDK7:
6.然后看了好久的G1垃圾收集器,这个没看懂的
7.求大神指点.
8.补充:
修饰符的作用范围:
对于protected:
相关推荐
本文将围绕“Flash强制垃圾内存回收测试”这一主题进行深入探讨,结合提供的标签“源码”和“工具”,我们将讨论Flash平台上的内存管理机制,特别是如何进行垃圾回收(Garbage Collection, GC)以及如何通过源码进行...
内存垃圾回收程序是计算机科学中一个关键的概念,特别是在动态内存管理的上下文中。这个程序源自CMU(卡内基梅隆大学),它涉及到系统级编程的深入领域,旨在自动管理和释放不再使用的内存资源,以避免内存泄漏并...
本文将深入探讨C++中的内存管理,包括内存回收、内存泄漏以及相关的检测工具。 首先,我们要理解C++的内存层次结构,主要包括栈内存(Stack)、堆内存(Heap)、静态存储区(Static)和常量存储区(ReadOnly)。栈...
JVM内存模型与垃圾回收是Java性能优化的关键部分。JVM(Java Virtual Machine)内存模型分为多个区域,包括新生代(New Generation)、老年代(Old Generation)和永久代(Permanent Generation)。新生代又细分为...
本程序"MemoryCollectTest"旨在帮助开发者理解和实践如何在C#中强制触发内存回收。 首先,我们需要了解.NET内存管理的基本概念。.NET中的内存分为堆和栈两部分。栈主要用于存储基本类型和引用,而堆则用于存储对象...
### 深入理解.NET内存回收机制 #### 一、引言 在.NET框架中,内存管理是一项核心功能,它负责自动地管理应用程序所使用的内存资源。与传统的手动内存管理方式(如C++中的new/delete操作)不同,.NET通过引入垃圾...
Java 堆也是垃圾收集器管理的主要区域,如果从内存回收的角度看,由于现在收集器采用分代收集算法所以可以分为老年代和新生代,再细致有 Eden 空间、from 空间、to 空间,但是无论怎么划分,它都是只是存储对象实例...
### Java垃圾回收及内存泄漏知识点详解 #### 一、Java内存管理 1. **运行时数据区**:Java虚拟机管理的内存主要分为以下几个部分: - **方法区(Method Area)**:存储类的信息(如类名、字段、方法等)、常量、...
第四节:垃圾回收算法 1.1标记清除算法 1.2复制算法 1.3 标记整理(标记压缩)算法 第五节:垃圾回收器 1.1Serial/Serial Old收集器 1.2 ParNew收集器 1.3Parallel Scavenge收集器 1.4Parallel Old收集器 1.5CMS...
Java作为一种广泛使用的编程语言,其垃圾回收机制是其重要的特性之一,能够自动管理内存,大大简化了开发者的负担。本文将深入探讨Java中的垃圾回收机制,包括其工作原理、常用算法以及实际应用中的注意事项。 ####...
不过,既然标题是“安卓kernel 内存回收机制”,那么我可以根据这个主题,详细说明安卓内核内存回收机制的知识点。 安卓操作系统是基于Linux内核构建的,Linux内核具有强大的内存管理能力,安卓系统在此基础上...
为了解决这些问题,一些高级语言如Java和Python提供了自动内存回收机制,即垃圾回收(Garbage Collection)。在C++中,虽然没有内置的垃圾回收机制,但可以通过特定的设计模式和库来实现类似的功能。 《The Art of ...
Java虚拟机(JVM)是Java程序运行的基础,它的内存管理与垃圾回收机制对于程序的性能至关重要。在Java中,内存分为堆内存、栈内存、方法区、程序计数器和本地方法栈五个主要区域。下面我们将深入探讨这些区域以及...
在C++编程中,垃圾回收(Garbage Collection, GC)是一种自动管理内存的技术,它能够自动识别并释放不再使用的对象,以防止内存泄漏。在Java等语言中,垃圾回收是标准特性,但在C++中,程序员通常需要手动管理内存,...
Java虚拟机(JVM)是Java程序运行的基础,它的历史发展和内存回收机制是Java开发者必须深入了解的关键领域。本文将详细探讨JVM的发展历程以及内存管理中的垃圾回收机制。 一、JVM的历史发展 1. **早期阶段**:1995...
垃圾回收(Garbage Collection, GC)是编程语言中用于自动管理内存的重要机制,尤其是在像Java、C#等语言中。这个技术示例旨在深入探讨垃圾回收的原理、工作流程以及在实际开发中的应用。 垃圾回收的基本目标是识别...
垃圾回收是JVM自动进行内存管理的一种机制,其主要目标是回收不再使用的对象所占用的内存空间,以防止内存泄漏。GC分为多个阶段: 1. **标记(Marking)**:确定哪些对象是“活的”,哪些是可回收的。常见的算法有...
在Java编程语言中,垃圾回收(Garbage Collection, GC)是一项自动化的内存管理机制。它能够自动检测并释放那些不再被程序使用的对象所占用的内存空间,从而有效地避免了内存泄漏问题。与C++等需要程序员手动管理...