结论

注意 只有显式的加载类 JVM才会加载到内存中

  • 先加载父类的静态代码块 然后执行子类静态代码块
  • 当前类存在类静态变量注意引用类型没进行赋值操作初始化为null 并不会显式的加载类又存在静态代码块 会先执行前者进行初始化 再执行静态代码块
  • 在实例化类的时候 执行顺序 构造代码块-->构造方法存在父类先执行父类
  • 注意 静态成员变量/静态代码块只在JVM运行时 类加载到内存的时候执行一次
public class Test {
static B b=new B(); //这里存在实例 会加载类B 类A
A a =new A();
static {
System.out.println("test static");
}
public Test(){
System.out.println("test constructor");
}
{
System.out.println("test module");
} public static void main(String[] args) {
//A1-->B1-->A2-->A3-->B2-->B3-->TEST STATIC
}
}
class A{
static {
System.out.println("A1");
}
{
System.out.println("A2");
}
public A(){
System.out.println("A3");
}
}
class B extends A{
static {
System.out.println("B1");
}
{
System.out.println("B2");
}
public B(){
System.out.println("B3");
}
}

关于Java中代码的执行顺序的更多相关文章

  1. 2018.11.20-day22 类中代码的执行顺序&组合

    1.类中代码的执行顺序 2.组合

  2. Java类中代码的执行顺序 静态代码块>构造代码块>构造方法

    一:静态代码块 注意是代码块,不是静态函数.函数要调用才执行,代码块加载就执行,一般是静态变量的声明与初始化.被static修饰的代码块(赋值.输出操作等).类中静态语句块仅在类加载时被执行一次 如 ...

  3. java中的一些执行顺序,代码块,静态,构造,成员。。。。(转的)

    Java初始化顺序(转来的) 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完 ...

  4. Java中构造方法的执行顺序

    一.先执行内部静态对象的构造方法,如果有多个按定义的先后顺序执行:静态对象在构造的时候也是也先执行其内部的静态对象. 二.再调用父类的构造方法(父类还有父类的话,从最开始的基类开始调用),如果没有明显 ...

  5. Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)

    继承: 1.继承是对某一匹类的抽象,从而实现对现实世界更好的建模. 2.提高代码的复用性. 3.extends(扩展),子类是父类的扩展. 4.子类继承父类可以得到父类的全部属性和方法.(除了父类的构 ...

  6. java中代码执行顺序

    静态代码块 -- >构造代码块 --> 构造方法静态代码块:只执行一次构造代码块:每次调用构造方法都执行 http://blog.csdn.net/wuhaiwei002/article/ ...

  7. 通过指令码来判断Java代码的执行顺序(++问题与return和finally的问题)

    问题 在<深入理解Java虚拟机>一书中遇到了如下代码: public int method() { int i; try { i = 1; return i; } catch (Exce ...

  8. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

  9. Java基础系列5:Java代码的执行顺序

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.构造方法 构造方 ...

  10. Java——Java代码的执行顺序

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.构造方法 构造方 ...

随机推荐

  1. 跨域请求 jQuery的ajax jsonp的使用

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  2. 【内存管理】ION内存管理器(carveout heap预留内存)

    什么是carveout heap carveout heap从代码中给的解释来看,是reserved预留的物理内存来实现的,这些内存buddy系统是没办法看到和管理到的 carveout heap中的 ...

  3. element ui 全选反选

    <el-checkbox class="selectAll" :indeterminate="isIndeterminate" v-model=" ...

  4. Vue-router 中hash模式和history模式的关系

    Vue-router 中hash模式和history模式的关系 众所周知,vue+vue-router能够构建一个SPA单页面应用, 打包后只会生成一个index.html文件,而项目内页面的切换其实 ...

  5. win服务项因各种原因出问题,删除注册表服务项

    win7系统,可以cmd–>sc delete 服务名称win10计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 删除相关服务即 ...

  6. 什么是互联网控制消息协议ICMP 以及如何作为网络分析利器

    什么是互联网控制消息协议(ICMP) Internet控制消息协议(ICMP)是网络设备用来诊断网络通信问题的网络层协议.ICMP主要用于确定数据是否及时到达其预期目的地.通常,ICMP协议用于网络设 ...

  7. [转]sublime text 4注册

    1.打开浏览器进入网站https://hexed.it2.打开sublime text4安装目录选择文件sublime_text.exe3.搜索80 78 05 00 0f 94 c1更改为c6 40 ...

  8. el-table改变行高样式不生效的解决办法

    之前的效果是这样的,怎么设置也没用

  9. markdown基本学习

    MarkDown学习 标题(二级标题 ##) 标题 字体 加粗(**文字**) 斜体 (*文字*) 加粗+斜体 (***文字***) 废弃 (~~文字~~) 引用(>文字) 摘抄 分割线(--- ...

  10. windows下创建虚拟环境

    创建虚拟环境依赖以下两个模块 virtualenv  和virtualenvwrapper-win 1.下载 2.修改环境变量,增加一条 WORKON_HOME:路径 3.  同步配置 去向Pytho ...