易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中的垃圾回收机制

  1.垃圾回收的必要性
     当对象被创建时,会在Java虚拟机中分配一块内存(内存分配-》默认值-》初始化值),在JVM的生命周期中,Java程序在不断地创建对象,如果这些对象的内存不被及时回收,会导致内存空间不足,因此要有一种措施及时回收无用对象的内存,保证内存能够被重复利用。
     在传统的编程语言中,内存回收的工作由程序完成,程序显式地为对象分配内存,显式地回收,可能导致该回收的没有回收,不该回收的反而回收了。
  2.java中的内存回收工作由JVM进程的一个称为垃圾回收器的系统级线程完成,它负责回收无用对象的内存,回收内存的过程成为垃圾回收。
  3.垃圾回收的特点
     a.只有当对象不再被任何变量引用时,它的内存才可能被回收;
     b.程序无法迫使垃圾回收器立即执行垃圾回收操作
     c.垃圾回收器在回收内存之前会调用finalize()方法,该方法有可能使对象复活,导致垃圾回收器取消回收该对象的操作。
  4.从垃圾回收器的角度看对象的状态
      a.可触及状态,只要程序中还有变量引用对象,该对象就处于可触及状态《此时垃圾回收器什么都不做》;
      b.可复活状态,程序中没有变量引用对象,在这个状态中,垃圾回收器会准备释放对象占用的内存,释放之前,调用它的和其他处于可复活状态的对象的finalize()方法,这些finalize()方法会使对象重新回到可触及状态;
      c.不可触及状态 当JVM执行完所有的finalize()方法,都不能使对象回到可触及状态时,对象就进入不可触及状态,这时,垃圾回收器会真正回收对象的内存
  5.垃圾回收的时间
      (1)程序只能够决定对象什么时候能够变为可复活状态,即在程序中不让任何变量引用该对象,但是程序无法决定垃圾回收器什么时候执行,即什么时候执行finalize()方法,什么时候让对象处于不可触及状态,什么时候回收对象的内存。
      (2)对象生命周期:从对象被创建开始,一直到没有任何变量引用该对象。
      (3)程序无法决定垃圾回收器什么时候回收无用对象的内存,垃圾回收器作为一个地优先级的线程独立运行,可以在程序中使用System


相关文档:

java加密与解密(二)

数字证书:
  (一)证书管理
    1.keyTool证书管理
    (1)  本地数字证书生成命令
   keytool -genkeypair -alias www.zlex.org  -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36000 -keystore zlex.keystore  -dname "CN=www.zle ......

java的相关技术

     1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口。
  2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
  3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟 ......

Java中对象的生命周期

  (1) 对象生命周期的开始
             对象生命周期开始时,需要为对象分配内存,并且初始化它的实例变量;
           对象生命周期结束
        & ......

JAVA反射机制的学习

 
JAVA语言中的反射机制:
    在Java 运行时环境(JRE)中,对于任意一个类,能否知道这个类有哪些属性和方法?
    对于任意一个对象,能否调用他的方法?这些答案是肯定的,这种动态获取类的信息,以及动态调用类的方法的功能来源于JAVA的反射。从而使java具有动态语言的特性。
&n ......

java语句备忘

代码如下:
List <?> lines = FileUtils.readLines(new File(fileName));
for(Object line : lines){
}
问题:
1.List <?> 表示什么意思?
2.for括号内部的表达式是什么意思?
1、范型。表示lines中可保存任意类型
2、for-each 语句,作为for(int i=0;i<lines.length;i++){
Object line=lines.get(i ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号