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

Java类初始化顺序

 
[引言]
本文主要总结了java类的lifetime。包括从类的加载,link,initialize,以至对象的实例化和销毁。并结合jvm规范,略作解释。
1.测试用程序:
 
2.程序输出:
 
[正文]
Java对象的从无到有要经过类的加载,链接,初始化和对象的实例化这几个过程。从总体来说类的生命周期大致将其分为三个phase:
类型(类或者接口)的生命周期:从类型的initial entrance到最终退出虚拟机.
1.类生命周期的开始:装载,链接,初始化(幼年)
2.类生命周期的主要时期:对象实例化,终结(成年)
3.生命周期的末期:类的终结和卸载。(晚年)
 
Phase1:class lifetime
Class lifetime = class load + link + initialize
 
图1 类之初
Phase1-1:Load (3W)
1.what is “Load”?
装载指的是“jvm寻找一个具有特定名称的类或者接口的二进制形式,并使用这个二进制形式构造一个代表该类或者接口的Class对象的过程”。装载过程包括jvm的下列三个动作:
Ø         产生用于表达该类型(类或者接口)的二进制数据流(jvm or complier??)
Ø         在Method area,解析该二进制数据流成内部数据结构
Ø         产生表达该类型的java.lang.Class实例。(此处已经有instance生成了!)
java.lang.Class实例是加载步骤的最后产物,作为一个接口,服务于程序(class consumer)和内部数据结构(class representation)之间。为了存取存储于内部数据结构的类型信息,程序调用相关类型的class实例的方法。
2.when to “load”?
对于何时装载,jvm规范允许jvm设计者弹性实现。
以the command line为例:
    java Terminator Hasta la vista Baby!
will start a Java virtual machine by invoking the method main of class Terminator
The initial attempt to execute the method main of class Terminator discovers that the class Terminator is not loaded-that is, the virtual machine does not currently contain a binary representation for this class. The virtual machine then uses a ClassLoader to attempt to find such a binary representation。
3.who performs“load”?


相关文档:

java核心教程笔记

1.接口与抽象类区别
      abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
  在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员 ......

java环境变量配置

 JAVA_HOME = F:\java\jdk  (jdk安装路径)
 PATH = .;%JAVA_HOME%/bin
 CLASSPTAH = .;%JAVA_HOME%/lib
检验是否配置成功:
   控制台cmd
   输入java出现配置信息说明配置成功。 ......

什么样的java代码容易memory leak?

很多developer知道java也可能memory leak,关于这个主题已经有很多文章了。我这里只想分享一下自己的memory leak的经验。
说明一下这里指的memory leak是程序不及时释放heap导致的OutOfMemoryError.
首先一种情况是collection或者是map一直被put数据,没有机会remove,导致OutOfMemoryError。尤其是当collection或者是map ......

使用java + oracle插入clob类型的数据

 使用java + oracle插入clob类型的数据,需要用以下的步骤:
1、将数据插入数据库,对于clob字段,使其为空clob数据。例如:insert into test values(1,empty_clob())";
2、从数据库中取出插入的clob字段,并将其赋值给oracle.sql.clob类型的变量。例如
String sqll="select content from test where id=1 for upda ......

谈谈IBM2009校园招聘Java笔试题

 只说说几道涉及到我有些遗忘的知识点的题目吧~~
1. 关于final的
一下哪几种声明是正确的?
A: private final int FINAL_INTEGER = 0;
B: private final int FINAL_INTEGER;
{
FINAL_INTEGER = 1;
}
C: private final int FINAL_INTEGER;
static{
FINAL_INTEGER = 1;
}
D: private final int FINA ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号