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

加载、链接和初始化(java高级编程1.2.5)


JVM:加载、链接和初始化
JVM要解释Java字节码,就必须对所需的类和接口执行如下3步操作:
(1) 加载:JVM在加载类时,会查找该类或该接口的二进制表示,并根据找到的二进制表示(通常是由Java编译器创建的类文件)创建一个Class对象。该Class对象中封装了类或接口的运行时状态。
(2) 链接:链接这一过程是指取得已加载的类或接口、结合JVM运行时环境、准备执行该类或该接口。
(3) 初始化:初始化是指JVM调用该类或该接口的初始化方法。
1. 第一步
启动一个单机Java程序时,JVM首先做的是另外创建一个Class对象,用于表示包含public static void main(String
[ ] args)方法的Java类。然后JVM会链接并初始化该Java类,调用main()方法,并用main()方法驱动所引用的其他类和接口的加载、链接和初始化过程。
2. 加载
加载过程是由类加载器完成的,该加载器是ClassLoader的子类,并且该类加载器会对所加载的类或接口进行一些校验检查。当表示已编译类或接口的二进制数据有错,则类或接口使用的类文件格式版本不被支持,类加载器找不到类或接口的定义,或者如果出现类循环,都会抛出异常。类循环是指类或接口的父类是其自身的情况。
类加载器一般有两种类型:由JVM提供的引导类加载器(bootstrap
class loader)和用户定义的类加载器。用户定义的类加载器也是Java的ClassLoader类的子类,用于从非标准的、用户定义的源创建Class对象,以便提高安全性。例如,从加密文件中提取Class对象。一个加载器可以将部分甚至整个加载过程委托给另一个加载器。最终生成Class对象的加载器称为定义加载器(defining loader),而开始该加载过程的加载器称为启动加载器(initiating
loader)。
使用默认引导类加载器的加载过程如下:根据所要加载的类文件,引导类加载器会判断自身是否已经成为该类的启动加载器。如果是,则Class对象存在,加载器停止(注意,加载一个类并不等于创建该类的一个实例,这一步骤仅仅是在JVM中加入该类)。如果类还没有加载,则加载器会搜索对应的类文件,并在找到后根据该类文件创建Class对象。如果找不到类文件,那么就会产生NoClassDefFoundError异常。
使用用户定义类加载器时,整个加载过程稍有不同。与引导加载器一样,用户定义的加载器首先判断自身是否已经成为目标类文件的启动加载器。如果是,则Class对象已经存在,加载器停止,而如果不是,用户定义的加载器会调用loadClass()方法。loadClass()方法返回所需的类文件并将表示类的


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

java遍历对象


JDK1.4中
Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
JDK1.5中,应用新特性For-Each循环
Map m = new HashMap(); ......

JAVA定时执行任务

Tomcat 下的定时任务
SysContextListener.java
package axtic.servlet;
import java.util.Timer;//定时器类
import axtic.bean.exportHistoryBean;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SysContextListener implements ServletContextListener
......

MonoRail 09/12/2(java TO .Net)

MonoRail是经典的MVC模式,所以其中也具有三个元素Model,Controller,View,其中MonoRail是通过Url地址来解析
相应的操作的,如当你访问:/home/index.rail,对应会执行HomeController类中的Index方法,而且可以自动绑定参数和
Request的数据,如访问:/home/index.rail?id=1,你可以在HomeController类中的Index方法中定义一个参数 ......

java 中 Cookie的用法

Cookie:记录用户登陆状态,可以在客户端创建cookie,可以使用户第二次登陆的时候不用输入用户名和密码,即可以登陆到主页
主要代码:  
LoginView 中: (获取cookie)
//获取cookie
Cookie [] cs=request.getCookies();
String name="";
String value="";
if(null!=cs)
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号