static代码块与{}代码块的比较
第一个例子:
public class StaticDemo {
{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}
public static void main(String[] args) {
}
}
static 代码块
结论:类的加载会执行static代码块,不会执行{}代码块。
第二个例子:
public class StaticDemo2 {
{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}
public static void main(String[] args) {
new StaticDemo2();
}
}
static 代码块
{} 代码块
结论: new一个类的实例,会先执行static代码块,再执行{}代码块。
第三个例子:
public class StaticDemo3 {
public StaticDemo3(){
System.out.println("构造函数");
}
{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}
public static void main(String[] args) {
new StaticDemo3();
}
}
static 代码块
{} 代码块
构造函数
结论:new一个类的实例,会先执行static代码块,再执行{}代码块,最后执行构造函数。
第四个例子:
public class StaticDemo4 {
public StaticDemo4(){
System.out.println("构造函数");
}
{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}
public static void main(String[] args) {
new StaticDemo4();
new StaticDemo4();
}
}
static 代码块
{} 代码块
构造函数
{} 代码块
构造函数
总结:static{}代码块,会在类初次被加载的时候被执行一次。{}代码块和构造函数一样,每次new一个对象都会被执行。
注:当有多个带不同参数的构造函数需要执行相同的初始化代码,可以将这些代码提起出来放在{}代码块中。
static代码块与{}代码块的比较的更多相关文章
- 13_java之final|static|包|匿名对象|代码块|内部类
01final关键字概念 * A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承 ...
- 非静态代码块(非static初始化块)&静态代码块(static初始化块)
非静态代码块: TestOrder: package com.aff.singleton; /* 类的第四个成员:初始化块(代码块) 代码块: 如果有修饰的话只能使用static 分类:非静态代码块: ...
- Java中静态代码块,代码块,构造方法优先级、区别及代码示例
在项目中遇到了代码块的知识点,跑了下测试,写下结论 代码优先级:静态代码块 -> 构造代码块 -> 构造方法 多个代码块优先级,按照“先定义的代码先执行,后定义的代码后执行”原则执行 静态 ...
- Java中静态代码块,代码块,构造方法的理解
直接贴代码 class A { static { System.out.println("父类静态代码区"); } { System.out.println("父类代码区 ...
- Java中普通代码块,构造代码块,静态代码块的代码演示样例及区分
//运行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 当中静态代码块仅仅运行一次.构造代码块在每次创建对象是都会运行. 1 普通代码块 <span ...
- java学习(一)静态代码块 构造代码块 构造方法的执行顺序及注意问题
今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载 当时做了这么一个小案例(想必 ...
- Java面试题 静态代码块 构造代码块 构造方法 的执行顺序
JAVA中的静态代码块 构造代码块 构造方法执行顺序: 静态代码块(类加载时执行)>>构造代码块>>构造方法 下面展示一个简单的例子,推荐大家动手运行一遍: public cl ...
- Java基础6:代码块与代码加载顺序
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- java-代码块-局部代码块、构造代码块、静态代码块
1.代码块概述: 在Java中,使用{ }括起来的代码被称为代码块. 2.代码块分类: 根据其位置和声明的不同,可以分为局部代码块,构造代码块.静态代码块和同步代码块(多线程). 3.常见代码块的应用 ...
随机推荐
- yii 基础版用rbac-plus
1.将高级版的common/models/user.php覆盖掉基础版的models/user.php 2.将命名空间 namespace common\models;改为 namespace app ...
- 【axc】简单的线性动画绘制
在一个View上绘制一条直线 然后做出相应的动画效果 可以这样封装三个方法: /** * 划线工具 * * @param lineArray 线段的点数组 NSValue 类型 默认第一 ...
- Rotate List || LeetCode
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * } ...
- svn的差异查看器和合并工具换成BCompare.exe
svn的差异查看器和合并工具换成BCompare.exe
- Audio Session Interruption
近期处理了一个挂断电话后,莫名手机开始播放音乐的Bug. 所以顺便在这总结一下,对于IOS的AudioSession中断的几种处理情况. 一.通过C语言的init方法配置interruptionl回调 ...
- HTML两张图片叠加问题的进一步修改
要想两张图片叠加,只需在circle添加一个Position:absolute就OK了 以上几步,很多大侠前辈都已经说过,相信不用再啰嗦,我想说的是一种扩展,将示例放到右边,可能因为我悟性低,研究了一 ...
- 在Linux最小系统上编译运行第一个helloworld程序
一.安装和使用SSH软件 1.安装SSH 软件 1)SSH 软件压缩包可以在网盘下载,下载后解压,进入解压出来的文件夹,如下图. 2)单击上图中的“SSHSecureShellClient-3.2.9 ...
- enum使用
新建一个.h文件 typedef enum { type1 = 1, type2 = 2 };
- request.get request.GET……
发现他们是不同的. 报错: AttributeError at /add/ 'WSGIRequest' object has no attribute 'get' Request Method: GE ...
- 旋转toast 自定义toast方向,支持多个方向的显示,自定义View
package com.example.canvasdemo; import java.security.InvalidAlgorithmParameterException; import andr ...