jvm启动时,是不是会同时用bootstrap去加载最基本的class
那ExtClassloader也会去同时加载ext下面的class吗,
还是说ext下面的class是用到的时候才会去加载
同样,AppClassloader是怎么样的方式呢最好有官方的说明url之类的,可以让我看一下,O(∩_∩)O谢谢~~

解决方案 »

  1.   

    AppClassloader加载工作空间中的项目
      

  2.   

    start %cd%\jdk\jdk1.5\bin\javaw -Xmx512m -Xms128m -cp .\lib\package-Tools.jar -DcurrentDir=%cd% -Djava.home=%cd%\jdk\jdk1.5 com.pack.tool.PackageProject
    上面这个是一个cs结构的项目启动程序,-cp后面的就是我自己的项目所在目录,他是由appClassLoader负责加载的,最后面的是调用PackageProject中main方法。
      

  3.   

    加载分为 装载-连接-初始化 三个步骤装载 即将class文件读入内存,构建成jvm自定义的数据结构,产生一个java.lang.Class对象
    连接 验证字节码,为类变量分配内存并赋默认值,并可以做一些常量池解析
    初始化 只有当一个类被主动使用的时候才会被初始化,初始化就是为类变量赋初始值,执行static块关于 装载 这个阶段,jvm有很大的自由,将所有jar包中的类都装进去也没有问题关键在于初始化阶段,只有 主动使用 才能初始化,何为主动使用?
    一个类在下列情形下才是主动使用,才会被初始化:
    1、创建该类的实例
    2、调用该类中声明的静态方法
    3、操作该类或接口中声明的非常量静态字段
    4、调用特定的反射方法
    5、初始化该类的子类
    6、该类作为虚拟机启动时的初始类
    这里我用了加载和装载两个词以区分,但在英文中都是load,有人可能都译作 加载
      

  4.   

    bootstrap?啥玩意?tomcat并不是jvmjvm加载类简单来说就是通过一个ClassLoader类去指定的Url加载class文件,就是加载类了