先看下面的代码:

public class Test {

public static int a =0 ;

static {

a = 10;

System.out.println("静态代码块执行a="+a);

}

{

a = 8;

System.out.println("非静态代码块(构造代码块)在执行a="+a);

}

public Test(){

this("调用无参构造方法,a="+ a);

System.out.println("无参构造方法在执行a="+ a);

}

public Test(String n){

this(n ,"调用带参构造方法1,a="+ a);

System.out.println("带参构造方法1在执行a="+ a);

}

public Test(String s1, String s2){

System.out.println(s1 + "," +s2);

}

public static void main(String[] args){

Test test = null;

System.out.println("下面new一个Test实例:");

test = new Test();

}

}

在我编译运行的时候,方法的加载顺序如何呢?先看一下打印信息:

静态代码块执行a=10

下面new一个Test实例:

非静态代码块(构造代码块)在执行a=8

调用无参构造方法,a=10,调用带参构造方法1,a=10

带参构造方法1在执行a=8

无参构造方法在执行a=8

首先打印静态代码块的内容,因为在虚拟机在首次加载Java类时,会对静态代码块、静态成员变量、静态方法进行一次初始化(静态间按顺序执行)。

然后打印非静态内容,先是执行有this()的构造方法,因为此时构造方法还未初始化,没有结果。再按顺序执行其余代码块。

每天进步一点点。

推荐微信公众号【排骨肉段】,记录日常的美好。

java静态方法加载顺序_java中类以及方法的加载顺序相关推荐

  1. java枚举加载顺序_java 中类的加载顺序(转)

    1.虚拟机在首次加载Java类时,会对静态初始化块.静态成员变量.静态方法进行一次初始化 2.只有在调用new方法时才会创建类的实例 3.类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始 ...

  2. java类验证和装载顺序_java中类的加载顺序介绍(ClassLoader)

    转自:http://blog.csdn.net/eff666/article/details/52203406 1.ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.l ...

  3. java类加载器顺序_java中类的加载顺序介绍(ClassLoader)

    1.ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.lang.ClassNotFoundExcetpion这个异常,今天我就来总结一下这个问题.对于这个异常,它实质涉 ...

  4. 文件加载顺序_Java中类的加载顺序介绍(ClassLoader)

    Java中类的加载顺序介绍(ClassLoader) 1.ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.lang.ClassNotFoundExcetpion这个异 ...

  5. java中类定义修饰符_Java 中类和方法修饰符

    Java 中类和方法修饰符 类的修饰 访问修饰符 修饰符 class 类名 extends 父类名称 implements 接口名称(notes: 访问修饰符符与修饰符的位置可以互换) 访问修饰符 名 ...

  6. java中类的方法分为 类方法_Java中类的方法成员分为()方法和实例方法。

    Java中类的方法成员分为()方法和实例方法. 答:第一空: 类 下列各项中,不属于直接材料预算的编制基础的有( ). 答:直接人工预算 现金预算 社会主义基本制度的确立( ?). 答:是中国历史上最 ...

  7. java addall 顺序_Java LinkedList addAll()方法

    Java LinkedList addAll()方法 java.util.LinkedList.addAll(Collection extends E> c) 方法用于将指定集合中的所有元素附加 ...

  8. jquery加载页面的几种方法(页面加载完成就执行)

    1.$(function(){ $("#a").click(function(){ //adding your code here }); }); 2.$(document).re ...

  9. java fileitem 识别图片大小_Java FileItem.getSize方法代碼示例

    本文整理匯總了Java中org.apache.commons.fileupload.FileItem.getSize方法的典型用法代碼示例.如果您正苦於以下問題:Java FileItem.getSi ...

最新文章

  1. android gdb 命令大全,ndk-gdb  |  Android NDK  |  Android Developers
  2. SAP的SD模块中客户的销售视图--扩充客户销售范围
  3. centos6.5 设置tomcat8自启动
  4. mybatis sql标签_这谁顶得住?Mybatis 十八连环问
  5. C#中String对象转换为Font对象的方法
  6. python写一个游戏多少代码-Python项目实战之猜数字游戏(含实现代码)
  7. shell实现统计浏览次数并将结果保存到文件中
  8. 预处理器命令必须作为第一个非空白空间启动_第三章 图形处理器(上)
  9. 大剑无锋----SpringMVC原理详细解析
  10. 微信小程序 点击按钮 退出
  11. LInux:shell 命令:字符串截取
  12. 从helloworld回顾程序的编译过程之一
  13. zblock 结构_偷窥Data block 的物理结构
  14. 深圳卫视 - 饭没了秀
  15. java笔试面试题(五)
  16. 敏捷领导力的反面模式
  17. 单片机C51 之(1)简介
  18. 《ARM体系结构与编程》中的严重错误
  19. 用ArrayList实现简单队列和栈
  20. 微信小商店设置服务器,微信小商店绑定运营者微信号步骤流程

热门文章

  1. gevent.hub.LoopExit: ('This operation would block forever
  2. python 逻辑回归
  3. 'utf-8' codec can't decode byte 0xff in position 0
  4. linux设置网卡速率
  5. VPN之DSVPN的介绍
  6. Failed to initialize NSS library
  7. 软件测试真实项目_企业中软件测试的项目流程
  8. navicat 导入csv未响应_使用navicat将csv文件导入mysql
  9. 京东css3动画全屏海报_京东超市的文案,写到吃货心坎里了
  10. git commit —amend_Git之修改commit记录