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

Java中类的生命周期

  Java虚拟机管理类和对象的生命周期;
(1)类的生命周期从类被加载,连接,初始化开始,到类被卸载结束;
(2)类处于生命周期时,它的二进制数据位于运行时方法区内,在堆区还有一个相应的描述类的Class类的对象;
(3)只有当类处于生命周期中时,Java程序才能够使用它。
1.Java虚拟机及程序的生命周期
(1)通过java命令运行一个Java程序时,启动一个Java虚拟机进程;
(2)Java虚拟机进程从启动到终止的过程,称为Java虚拟机生命周期;
(3)程序生命周期和Java虚拟机生命周期是一致的,因为Java虚拟机进程从创建起的任务就是执行Java程序。
2.类的加载,连接和初始化
a.Java程序要使用某个类时,Java虚拟机要确保这个类被加载,连接和运行,其中连接包括验证,准备和解析。
b.加载:查找并加载类的二进制数据;
c.连接
  c.1 验证:确保加载类的正确性;
  c.2 准备:为静态变量分配内存,并将其初始化为默认值;
  c.3 解析:将类中的符号引用转换为直接引用。
d初始化:
   给类的静态变量赋予正确的初始值
(1)加载
     1.1 加载需要完成:
       1.1.1 将类的.class文件中的二进制数据读到内存中的运行时数据区的方法区;
       1.1.2 在堆区创建一个java.lang.Class对象(对象都放在堆区),用于封装类在方法区内的数据结构。
     1.2 加载的最终产品是位于运行时数据区堆区的java.lang.Class对象,Class对象封装了类在方法区的数据结构,并向Java程序提供访问类在方法区内的数据结构的接口
     1.3 类的加载由加载器完成
        1.3.1 Java虚拟机自带的加载器
                 包括启动类加载器,扩展类加载器和系统类加载器《后两个都是java.lang.Class类的实例》
        1.3.2 用户自定义的类加载器
                 java.lang.Class的子类的实例,用户可以通过它定制类的加载方式
  类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载过程中遇到.class


相关文档:

JAVA使用EPoll来进行NIO处理的方法

JDK 6.0 以及JDK 5.0 update 9 的 nio支持epoll (仅限 Linux
系统
),对并发idle connection会有大幅度的性能提升,这就是很多网络服务器应用程序需要的。
启用的方法如下:
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider
例如在 Linux 下运行的 Tomcat 使用 NIO Connector ,那么启 ......

Java编程规范

一、项目版本规范:
1、版本号命名格式:
V 主版本号.次版本号.修整版本号
a.初始版本号为V1.0.0;
b.类属性或类方法的内容发生变化时,主版本号和次版本号都不变,修整版本号加 1;
c.增加了类或接口方法时,主版本号不变,次版本号加 1,修整版本号复位为0;
d.增加了类或接口时,主版本号加1,次版本号复位为0 ......

JSP/JAVA 编程参考

第1条  How to Write an Equality Method in Java  
http://www.artima.com/lejava/articles/equality.html
How to Write an Equality Method in Java
by Martin Odersky, Lex Spoon, and Bill Venners
June 1, 2009
Summary
This article describes a technique for overriding the equals method t ......

java 文件操作

1.
BufferedReader in = new BufferedReader(new FileReader("远程文件"));
in.readLine() ;
l  使用 Java 操作文本文件的方法详解
http://java.ccidnet.com/art/3737/20041108/523627_1.html
l    FileReader 是什么类?和 FileInputStream 有什么不同???     
ht ......

Java语言中的关键字讲解(三)volatile的用途

关于volatile
我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。
这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下
volatile关键字的使用变得非常重 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号