今天继续在看Think in java .看到讲初始化这章,讲到System.gc();进行垃圾回收,强制进行终结动作(finilize()),一时兴起看了下System.gc()方法的源代码.如下
public static void gc() {
Runtime.getRuntime().gc();
}
继续去看Runtime类的gc()方法
public native void gc();
看了下上面方法的JAVADOC
/**
* Runs the garbage collector.
* Calling this method suggests that the Java virtual machine expend
* effort toward recycling unused objects in order to make the memory
* they currently occupy available for quick reuse. When control
* returns from the method call, the virtual machine has made
* its best effort to recycle all discarded objects.
* <p>
* The name <code>gc</code> stands for "garbage
* collector". The virtual machine performs this recycling
* process automatically as needed, in a separate thread, even if the
* <code>gc</code> method is not invoked explicitly.
* <p>
* The method {@link System#gc()} is the conventional and convenient
* means of invoking this method.
*/
native关键字 说明垃圾回收调用的是本地方法,JAVADOC说明垃圾回收是回收当占用内存空间的无用对象,垃圾回收只在需要的时候进行回收。和你调不调用垃圾回收没有啥关系,即使你不调用需要的时候JVM也会自动调用垃圾回收的方法
下面说下native关键字
Native方法一般用于两种情况:
1)在方法中调用一些不是由java语言写的代码。
2)在方法中用java语言直接操纵计算机硬件
如果使用了native方法也就丢失了java的方便性和安全性。Native方法的执行依赖于JVM的设计者,
在sun的JVM中,可以通过JNI(Java Native Interface) API接口来实现本地化。
关于JAVA垃圾回收机制的算法可参考 http://developer.51cto.com/art/201106/271896.htm
分享到:
相关推荐
由Java语言与C/C++对象在内存管理方式的不同,引出了Java语言的优势技术——垃圾处理技术。通过对GC工作原理的阐述及对一些传统的垃圾收集器的分析,提出了一种新的垃圾处理算法,一定程度上改善和提高了Java垃圾...
这种需求就引出了Java Native Interface(JNI)的概念。`Jnative1.4`是一个库,它提供了在Java中调用动态库的功能。 JNI是Java平台标准的一部分,允许Java代码和其他语言写的代码进行交互。它为Java开发者提供了一...
3.讲解Java技术的特点,和c语言等编程语言比较,并引出JVM、字节码等概念 4.给出平台的搭建步骤,重点讲解几个环境变量设置的意义 5.第1个Java程序:编程实例操作示范,向学生示范编写、编译与运行Java程序的3个...
### EAS模板引入引出知识点详解 #### 一、EAS系统简介 EAS(Enterprise Application Suite)系统是一种广泛应用于企业内部管理的信息技术平台。它能够集成企业的各种业务流程,如财务管理、人力资源管理、供应链...
* 不可回收垃圾:生活中常见的不可回收垃圾,如餐巾纸、一次性筷子等。 * 有害垃圾:有毒、有害的垃圾,如电池、药品包装等。 知识点三:环保意识 * 环保的重要性:保护环境、维护生态系统、保障人类健康。 * 环保...
12. **JVM**:理解Java虚拟机的工作原理,包括内存管理(堆、栈、方法区等)、垃圾回收机制和性能优化技巧。 13. **设计模式**:学习常见的设计模式,如单例、工厂、装饰器、观察者等,提升代码的可维护性和可扩展性...
Java的可移植性、面向对象的设计、健壮的库集合和垃圾回收机制使得它成为开发服务器端应用程序的理想选择。Java EE(Java Platform, Enterprise Edition)为构建企业级应用程序提供了一整套服务和API。这包括用于...
然而,Smali代码对于非专业人士来说,阅读和理解起来相当困难,这就引出了Smali2Java工具的出现。 Smali2Java的核心功能在于将Smali代码转换为Java源代码。这个过程极大地简化了逆向工程师的工作,因为Java代码对于...
* 通过讨论学生板演的结果,师生合作完成垃圾种类的划分:可回收垃圾、不可回收垃圾和有害垃圾。 * 让学生了解到垃圾回收利用的好处和重要性。 四、垃圾的处理方法 * 可回收垃圾的处理:主要处理方法是把可回收...
这就引出了我们的主题——"java反编译软件 class转java"。 反编译是将已编译的机器代码转换回源代码的过程。在Java世界里,这个过程就是将.class文件转换回.java文件。这样的工具可以帮助开发者查看和理解已有的...
这就引出了反编译的概念,即逆向工程,将二进制的字节码转换回人类可读的源代码。XJad就是这样的工具,它能够解析`.class`文件的结构,重构出与原始`.java`代码尽可能接近的代码。需要注意的是,由于字节码的优化和...
接着,课程回顾了计算机语言的发展历程,从机器语言、汇编语言到面向过程和面向对象的语言,最后引出Java,一种具有组件化和跨平台能力的语言。 Java的历史部分讲述了Java的起源,起始于1991年的Set-top box项目,...
这就引出了反编译的概念,即通过反编译器将字节码转换回接近原始的Java源代码。 标签"java"进一步确认了这个压缩包与Java语言和技术生态系统相关。在这个压缩包中,我们可以看到一个名为"jd-gui.exe"的文件,这是一...
2. Java Web开发的学习路径:文档通过提问的方式引出了学习Java Web开发时可能遇到的困惑,并提出加入Java学习群以获取知识分享和解答疑惑的建议。这揭示了Java Web开发学习者需要有明确的学习方向和获取知识的途径...
根据提供的信息,我们可以了解到这份文档主要涉及的是GBT 2423.60-2008《电工电子产品环境试验 第2部分:试验方法 试验U:引出端及整体安装件强度》的相关内容。虽然部分内容仅显示了标准分享网站的信息,并没有提供...
动力节点的《Java基础301集》是一个全面且深入的Java入门教程,涵盖了从基础知识到高级特性的广泛内容,适合Java初学者和寻求巩固基础的学习者。以下是一些主要的知识点详解: 1. **数据结构**:教程详细介绍了单项...
这将引出Java中的数组概念,包括一维和多维数组。此外,可能还会涉及集合框架,如ArrayList和LinkedList,用于更灵活的数据管理。 6. **函数与方法**:为了实现复杂任务,会学习如何定义和调用方法。通过编写处理...
这就引出了反编译的概念。Java反编译软件如JD-GUI、JAD、FernFlower等,它们可以将.class文件转换回接近原生的Java源代码形式。这些工具虽然不能完全还原原始的代码结构和变量命名,但大部分情况下仍能提供足够的...
Java的JNI(Java Native Interface)可以方便地调用本地库,实现与硬件的交互。接着,通过TCP/IP协议,系统将数据安全地传输到服务器端。Java的Socket编程模型可以有效地处理这些网络通信任务。 在服务器端,数据...
这就引出了"转换JAVA"这一概念。通过TXT转JAVA工具,我们可以将TXT文件中的数据解析并转化为Java代码,生成的JAR程序可以运行在Java支持的设备上,如早期的Java ME(Mobile Edition)平台,或者现代Android系统中的...