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方法)>构造代码块>构 ...
随机推荐
- 关于 lua table表存储函数且运用
--table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意类型的值来做数组的索引,但这个值不能是nil--lua tabl ...
- nginx ngx_http_image_filter_module 简单试用
nginx包含了一个ngx_http_image_filter_module 模块,我们可以方便的进行图片的缩略图,平时一些简单的功能 已经够用了 环境准备 为了简单使用docker-compose ...
- Rogue 罗格
发售年份 1980 平台 多平台 开发商 Michael Toy, Glenn Wichman, Ken Arnold 类型 策略/角色扮演 https://www.youtube.com/watch ...
- 计算机图形学----基于3D图形开发技术 (韩正贤 著)
第1章 游戏模型 第2章 顶点处理机制 第3章 光栅化操作 第4章 片元处理和输出合并 第5章 光照和着色 第6章 参数曲线和表面 第7章 着色器模型 第8章 图像纹理 第9章 凹凸贴图 第10章 高 ...
- debian-pve-ceph
从头开始安装debian9.8 debian-9.8.0-amd64-netinst.iso vi /etc/vim/vimrc.tinyset nocompatibleset backspace=2 ...
- adb和机顶盒一些常识
1.adb install强制安装在SD卡 因为盒子/data/空间不够了.而默认apk就安装在了/data/目录下.因此需要更改默认安装位置 命令参照 进入adb shell $adb shell ...
- 配置Tomcat使用https协议(配置SSL协议)
配置Tomcat使用https协议(配置SSL协议) 2014-01-20 16:38 58915人阅读 评论(3) 收藏 举报 转载地址:http://ln-ydc.iteye.com/blog/1 ...
- python3学习笔记十(循环语句)
参考http://www.runoob.com/python3/python3-loop.html 循环语句 while循环 # !/usr/bin/env python3 n = 100 sum = ...
- Linux 系统报错 rcu_preempt detected stalls on CPUs/tasks
说在前面的一些废话: 这是什么错误我不知道,为什么出现我不知道! 那为什么还要把他写出来了,只是因为这个错误遇到了,而且浪费了我很多时间和精力. 故事留给自己看,解决办法就是,重新升级一下Linux系 ...
- navicat 导入execl失败
在使用navicat导入execl是遇到了如下图的错误 在更换多个版本的navicat后问题依然如故. 解决办法; 1.打开需要导入的execl 2.安装一个AccessDatabaseEngine_ ...