A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李敬 中级黑马   /  2012-8-9 16:55  /  1331 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于一个java程序怎么从计算机硬盘到内存中这一个过程感到特别混乱,谁能帮忙详细讲解下吗?

1 个回复

倒序浏览
本帖最后由 赵俊杰 于 2012-8-9 17:02 编辑

类的加载顺序

什么时候类加载:第一次需要使用类信息时加载。

类加载的原则:延迟加载,能不加载就不加载。

类加载的几种情况
(1)、调用静态成员时,会加载静态成员真正所在的类及其父类。
通过子类调用父类的静态成员时,只会加载父类而不会加载子类。
(2)、第一次 new 对象的时候 加载(第二次再 new 同一个类时,不需再加载)。
(3)、加载子类会先加载父类。(覆盖父类方法时所抛出的异常不能超过父类定义的范围)
注:如果静态属性有 final 修饰时,则不会加载,当成常量使用。
例:public static final int a =123;
但是如果上面的等式右值改成表达式(且该表达式在编译时不能确定其值)时则会加载类。
例:public static final int a = math.PI
如果访问的是类的公开静态常量,那么如果编译器在编译的时候能确定这个常量的值,就不会被加载;
如果编译时不能确定其值的话,则运行时加载

类加载的顺序
1,加载静态成员/代码块
2,加载非静态成员/代码块
3,调用构造方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马