jvm启动时,是不是会同时用bootstrap去加载最基本的class
那ExtClassloader也会去同时加载ext下面的class吗,
还是说ext下面的class是用到的时候才会去加载
同样,AppClassloader是怎么样的方式呢最好有官方的说明url之类的,可以让我看一下,O(∩_∩)O谢谢~~
那ExtClassloader也会去同时加载ext下面的class吗,
还是说ext下面的class是用到的时候才会去加载
同样,AppClassloader是怎么样的方式呢最好有官方的说明url之类的,可以让我看一下,O(∩_∩)O谢谢~~
解决方案 »
- 逆向工程时,为什么Spring DAO不可选?
- ssh子系统
- spring c3p0 mysql报错
- txt文件读取
- 小妹跪求myEclipse开发Hibernate实例(数据库为SQL Server2000)
- Struts中配置多应用模块的问题
- Can't start a cloned connection while in manual transaction mode?是什么错误
- servlet文件上传过大提示
- 急!谁能解决tomcat 的数据库连接池的配置问题!
- java 将Html转为Excel
- spring 注入空指针 @Autowired
- 菜鸟求教,java工厂模式为什么要实现接口
上面这个是一个cs结构的项目启动程序,-cp后面的就是我自己的项目所在目录,他是由appClassLoader负责加载的,最后面的是调用PackageProject中main方法。
连接 验证字节码,为类变量分配内存并赋默认值,并可以做一些常量池解析
初始化 只有当一个类被主动使用的时候才会被初始化,初始化就是为类变量赋初始值,执行static块关于 装载 这个阶段,jvm有很大的自由,将所有jar包中的类都装进去也没有问题关键在于初始化阶段,只有 主动使用 才能初始化,何为主动使用?
一个类在下列情形下才是主动使用,才会被初始化:
1、创建该类的实例
2、调用该类中声明的静态方法
3、操作该类或接口中声明的非常量静态字段
4、调用特定的反射方法
5、初始化该类的子类
6、该类作为虚拟机启动时的初始类
这里我用了加载和装载两个词以区分,但在英文中都是load,有人可能都译作 加载