java类的加载顺序
2016-03-01 18:19
363 查看
转自:http://moliniao.iteye.com/blog/976287
一个java类的加载顺序,今天做了一个实验,结果如下
超类的静态成员
超类的静态块
子类的静态成员
子类的静态块
超类的非静态成员
超类的构造函数
子类的非静态成员
子类的构造函数
现在将代码拷一下
Java代码
class Parent1 {
private String parent="parent init";
private static String staticVar="Parent static init";
public Parent1(){
System.out.println(parent);
System.out.println("parent constructor......");
}
static{
System.out.println("parent static block ........"+staticVar);
}
}
class Son1 extends Parent1{
private String son="son init";
private static String staticSonnVar="son static init";
public Son1(){
System.out.println(son);
System.out.println("son constructor....");
}
static{
System.out.println("son static block....."+staticSonnVar);
}
}
public class ClassProject
{
public static void main(String[] args)
{
// Parent1 parent=new Parent1();
Son1 son=new Son1();
}
}
运行结果
parent static block ........Parent static init
son static block.....son static init
parent init
parent constructor......
son init
son constructor....
一个java类的加载顺序,今天做了一个实验,结果如下
超类的静态成员
超类的静态块
子类的静态成员
子类的静态块
超类的非静态成员
超类的构造函数
子类的非静态成员
子类的构造函数
现在将代码拷一下
Java代码
class Parent1 {
private String parent="parent init";
private static String staticVar="Parent static init";
public Parent1(){
System.out.println(parent);
System.out.println("parent constructor......");
}
static{
System.out.println("parent static block ........"+staticVar);
}
}
class Son1 extends Parent1{
private String son="son init";
private static String staticSonnVar="son static init";
public Son1(){
System.out.println(son);
System.out.println("son constructor....");
}
static{
System.out.println("son static block....."+staticSonnVar);
}
}
public class ClassProject
{
public static void main(String[] args)
{
// Parent1 parent=new Parent1();
Son1 son=new Son1();
}
}
运行结果
parent static block ........Parent static init
son static block.....son static init
parent init
parent constructor......
son init
son constructor....
相关文章推荐
- C#和Java区别
- Java中String转换Double类型 Java小数点后留两位
- eclipse里的Ctrl操作很慢
- Java 8读取Access数据库报错的问题——用32位Java 7
- Java关键字final、static使用总结
- JAVA基础---面向对象
- POJO TO Map
- Java泛型的实现原理
- JAVA-单例模式之性能探究
- Java多线程(七)——Collections.synchronizedXX包装器
- 交换两个整数类型的变量(不借助第3个变量)
- Struts项目环境配置
- 初学者必看——最简单最清晰的Struts2项目搭建流程
- [Java并发包学习八]深度剖析ConcurrentHashMap
- JNI的native代码中打印日志到eclipse的logcat中
- JVM源码分析之javaagent原理完全解读
- (五)Freemarker 整合Spring
- spring对AOP的支持 jdk和cglib
- 关于java的多态方法调用顺序的问题
- Java多线程(六)——Synchronized关键字