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

Java 动态加载类


第一部分:Java虚拟机启动时,关于类加载方面的一些动作
当使用java ProgramName.class运行程序时,Java找到JRE,接着找到jvm.dll,把该动态库载入内存,这就是JVM。然后加载其它动态库, 并激活JVM。JVM激活之后会进行一些初始化工作,之后生成BootstrapLoader,该Class Loader是由C++写的。BootstrapLoader加载Launcher.java中的ExtClassLoader,并设定其Parent为 null,意思是ExtClassLoader的Parent Class Loader就是BootstrapLoader。然后BootstrapLoader又加载Launcher.java中的 AppClassLoade,并设定其Parent Class Loader是ExtClassLoader。不过如果调用ExtClassLoader的getParent( )方法,则返回的是null。这两个Class Loader都是以静态类的形式存在,并且都是用Java编写的。
这三个Class Loader它们都有自己的类查找路径:
BootstrapLoader: sun.boot.class.path
ExtClassLoader: java.ext.dirs
AppClassLoader: java.class.path
以上三个路径都是Java的系统属性,可以通过System.getProperty(String key)方法来查看其设置:
System.out.println(System.getProperty("sun.boot.class.path"));
输出:
C:\Program Files\Java\jre1.5.0_04\lib\rt.jar;
C:\Program Files\Java\jre1.5.0_04\lib\i18n.jar;
C:\Program Files\Java\jre1.5.0_04\lib\sunrsasign.jar;
C:\Program Files\Java\jre1.5.0_04\lib\jsse.jar;
C:\Program Files\Java\jre1.5.0_04\lib\jce.jar;
C:\Program Files\Java\jre1.5.0_04\lib\charsets.jar;
C:\Program Files\Java\jre1.5.0_04\classes
即BootstrapLoader 加载的是jre和jre\lib目录下的class
System.out.println(System.getProperty("java.class.path"));
输出:
C:\Program Files\Java\jre1.5.0_04\lib\ext
即ExtClassLoader加载的是jre\lib\ext下的class
System.out.println(System.getProperty("java.class.path"));
输出:应用里的路径
由此可见,BootstrapLoader负责Java核心类(所有以java.*开头的类)。ExtClassLoader负责加载扩展类(所以以javax.*开头的类以及存在ext目录下的类)。AppClassLoader负责加载应用程序自身的类。
第二部分:Java的类加载机制。Java是如何加载类的,其流程。
类加载按照加载时机,是否自动加载分为两种:预先加载和按需加载。
预先加载的类是在JVM启动之后,应用程序运行之前。至少包含rt.jar中的所有类。
按需加载则是在应用程序运行之后,在


相关文档:

java开发中Mysql中文乱码问题的解决

     Mysql在默认情况下建立表的字符编码是latin1,所以在插入中文时会出错。
eg:
1、查看表建立的sql源码:
1: sql命令:show create table users
2:
3: 结果:
4: CREATE TABLE `users` (
5: `userID` int(10) unsigned NOT NULL AUTO_INCREMENT,
6: `userName` varchar(4 ......

Java配置文件读取

Java配置文件读取有各种不同的文件,但是由于打包Jar后的路径改变,往往在项目中能正确读取的配置文件在Jar后变成文件不存在的杯具,下在提出几各不同的配置文件读取方式,仅供参考
一、直接文件读取
File f = new File("you config file path");
FileReader fr = new FileReader(f);
BufferReader br = new ......

java 类编译流程

1.代码的装入
2.代码的校验
3.和代码的执行
体会: dao层 方法名 修改后 调用其的 services 。action 都将被重新 编译。
--- 基本类型使用 :
体会:dao层 基本类型 尽量使用对象类型,以为 基本类型 能自动类型提升 而对象类型 为 null 主动类型转换 会报错:NullPointerException
 小心 类型主动提升 &nb ......

java读取properties属性文件值方法

在使用hibernate或者spring的时候,我们往往通过配置文件配置数据库连接属性。但这次项目中并没有用到hibernate和spring,只用到了struts2。要如何实现通过读取文件配置获取属性值呢?ResourceBundle这个类可是实现读取properties文件来获取值
在java中:
public final static Object initLock = new Object();
privat ......

java 继承中的构造方法


参考代码:
class SuperClass {
private int n;

SuperClass() {
System.out.println("SuperClass()");
}

SuperClass(int n) {
System.out.println("SuperClass(" + n + ")");
this.n = n;
}
}
class SubClass extends SuperClass {
private int n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号