Java学习之代码块(静态,构造代码块,构造方法)执行顺序
静态代码块 static{ 代码 } 随着类的加载而加载,随类的消失而消失,存在于类中,方法外,最先执行,且只加载1次,可用来加载驱动及初始化对象属性.
构造代码块 { } 也存在于类中,方法外,由多个构造方法中相同的代码存放到一个代码块中调用执行,由于构造方法执行.
具体执行顺序参考下面代码.
例:
public class Demo4 {
static{
System.out.println("Demo静态代码块执行了");
}
{
System.out.println("Demo构造代码块执行了");
}
public Demo4(){
System.out.println("Demo构造方法执行了");
}
public static void main(String[] rgs){
new Demo4();
}
}
运行结果为:
Demo静态代码块执行了
Demo构造代码块执行了
Demo构造方法执行了
例2:
第一个类Demo4:
public class Demo4 {
static{
System.out.println("Demo静态代码块执行了");
}
{
System.out.println("Demo构造代码块执行了");
}
public Demo4(){
System.out.println("Demo构造方法执行了");
}
public static void main(String[] rgs){
new Demo5();
new Demo4();
}
}
public class Demo5 {
String name = "王五";
static{
System.out.println("Demo5静态代码块执行了");
Demo5 ps = new Demo5();
System.out.println(ps.name);
}
{
System.out.println("Demo5构造代码块执行了");
}
public Demo5(){
System.out.println("Demo5构造方法执行了");
}
}
第二个类Demo5
执行顺序为:
Demo静态代码块执行了
Demo5静态代码块执行了
Demo5构造代码块执行了
Demo5构造方法执行了
王五
Demo5构造代码块执行了
Demo5构造方法执行了
Demo构造代码块执行了
Demo构造方法执行了
如图所示,图中将Demo改成了Demo4

注:认真思考,总结,万变不离其中.
Java学习之代码块(静态,构造代码块,构造方法)执行顺序的更多相关文章
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...
- 【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在 ...
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- Java中普通代码块,构造代码块,静态代码块执行顺序
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...
- 关于java中普通代码块、构造代码块与静态代码块
1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块. *普通 ...
- Java中普通代码块,构造代码块,静态代码块的代码演示样例及区分
//运行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 当中静态代码块仅仅运行一次.构造代码块在每次创建对象是都会运行. 1 普通代码块 <span ...
- Java中静态代码块、构造代码块、构造函数、普通代码块
在Java中,静态代码块.构造代码块.构造函数.普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序. 1.静态代码块 ①.格式 在java类中(方法中不能存在静态代 ...
- 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例
Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...
随机推荐
- Mac OS X L2TP Client Setup
原文链接:http://www.softether.org/4-docs/2-howto/9.L2TPIPsec_Setup_Guide_for_SoftEther_VPN_Server/5.Mac_ ...
- python2和3的区别
一.默认编码 2:ascii 3:utf-8 二.数字 python3无long
- k8s基于CA签名的双向数字证书认证(三)
1.设置kube-apiserver的CA证书相关的文件和启动参数 1)创建CA证书和私钥相关的文件 openssl genrsa -out ca.key openssl req -x509 -n ...
- py-day4-1 python reduce函数
from functools import reduse 从模块中导入 reduce函数: 处理一个序列,然后把序列进行合并操作 #**** 问题:求1+2+3+100的和是多少? # 一,原始 ...
- Firebird Embedded 部署的一个坑
今天把旧程序升级了,把DBX组件换成了FireDac组件,在虚拟机里测试的时候,一直报上图中的错误,但是在主机上运行无问题,之前用户使用也一直没报过这个错. 折腾了又折腾,还是搞不定,感觉脑袋有点大了 ...
- idea构建maven多项目web架构
1.新建一个maven项目作为顶级module,可以使用模板quickstart模板,在生成pom.xml中添加一些子项目都会用到的依赖,apache-commons,guava等.因为是顶级modu ...
- jquery怎么选择嵌套的第一层的li
$(".ra").click(function(){ var id=$(this).children("ul").attr("id"); i ...
- NGUI外包开发总结一下今天的收获
先总结一下今天的收获:在一个脚本类中对其成员变量进行初始化时,什么时候在Awake()中,什么时候在Start()中是有讲究的. 1)当成员变量会被外部脚本引用时,尤其是该成员变量是一个自己定义的非脚 ...
- react super() and super(props)
subclass: subclass is a class that extends another class. 即子类. In ES2015, to use 'this' in subclasse ...
- Tomcat 启动报错:host-manager does not exist or is not a readable directory
http://blog.csdn.net/yh88356656/article/details/50519120 新安装一个Tomcat,我们肯定会删除Tomcat Webapps下的自带项目,在考入 ...