博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java类加载机制(仅作记录)
阅读量:7045 次
发布时间:2019-06-28

本文共 1197 字,大约阅读时间需要 3 分钟。

下面声明类看看结果:

 

[java]   
 
  1. package com.shareniu;  
  2.   
  3.   
  4. public class HelloA {  
  5.     {  
  6.         System.out.println("before class HelloA");  
  7.     }  
  8.     public HelloA() {  
  9.     System.out.println("HelloA");  
  10.     }  
  11.       
  12.     static{  
  13.         System.out.println("static HelloA");  
  14.     }  
  15.     {  
  16.         System.out.println("after class HelloA");  
  17.     }  
  18. }  
  19. public class HelloB extends HelloA {  
  20. private int i;  
  21. public HelloB() {  
  22. System.out.println("HelloB");  
  23. }  
  24. {  
  25. System.out.println(i);  
  26. System.out.println(" before class HelloB");  
  27. }  
  28. {  
  29. System.out.println("after class HelloB");  
  30. }  
  31. static{  
  32. System.out.println("static HelloB");  
  33. }  
  34. public static void main(String[] args) {  
  35. new HelloB();  
  36. System.out.println("shareniu");  
  37. new HelloB();  
  38. }  

 

输出的结果是什么呢?

 

[java]   
 
  1. static HelloA  
  2. static HelloB  
  3. before class HelloA  
  4. after class HelloA  
  5. HelloA  
  6. 0  
  7.  before class HelloB  
  8. after class HelloB  
  9. HelloB  
  10. shareniu  
  11. before class HelloA  
  12. after class HelloA  
  13. HelloA  
  14. 0  
  15.  before class HelloB  
  16. after class HelloB  
  17. HelloB  

 

1.1.1. 总结

1.实例化类对象的时候,先实例化父类的静态方法,再实例化子类的静态方法,而且只会执行一次。

2.静态块的代码的优先级是最高的。

3.先初始化父类的代码块,再执行父类的构造方法。继续初始化自己的代码块,再执行自己的构造方法。

4.代码块是优先于构造方法执行的。这里就是类对象初始化的2次构造机制造成的。先执行代码块初始化所有的变量信息,构造方法执行的时候,如果有变量的赋值,就去再次初始化已经修改的值的内存。

5.永远都是先加载父类,在加载子类。先加载static的,在加载类对象的变量信息。

6.代码块{}的执行顺序,从上而下执行。

转载于:https://www.cnblogs.com/gshacnblogs/p/7171815.html

你可能感兴趣的文章
CodeWarrior的map文件详解
查看>>
JD主页
查看>>
UVA Planning mobile robot on Tree树上的机器人(状态压缩+bfs)
查看>>
BestCoder Round #56 1002 Clarke and problem 1003 Clarke and puzzle (dp,二维bit或线段树)
查看>>
P4645 [COCI2006-2007 Contest#3] BICIKLI
查看>>
对象分析
查看>>
案例35:室内消火栓系统检查与维护保养案例分析(一)
查看>>
UVA 315 Network(无向图求割点)
查看>>
中国移动将发力Android及OPhone平台游
查看>>
[转载] 算法导论(麻省理工大学)——第1集 课程简介及算法分析
查看>>
斐波那契数列的算法分析
查看>>
iOS Http协议与TCP协议简单理解
查看>>
codevs1063 合并果子 优先队列(小根堆)
查看>>
回顾过去,展望未来
查看>>
个人中心标签页导航
查看>>
主键生成策略
查看>>
汇编实验十:编写子程序
查看>>
Intellij IDEA 快速创建Spring Web 项目
查看>>
CSS基础汇总
查看>>
将连接组学提高一个数量级
查看>>