Java类成员之代码块
2024-09-07 14:19:25
代码块含义:使用{ }括起来的代码
代码块类型:
1.局部代码块:定义在方法体中。
2.构造代码块:也叫初始化代码块,定义在类中方法体之外。
3.静态代码块:定义在类中方法体之外,被static修饰符所修饰,
随着类加载而执行。
4.同步代码块:在Java的多线程中,为解决并发操作可能造成的异常,
而引入同步监视器,使用同步监视器的通用方法就是同步代码块。
构造代码块VS构造方法:
在Java程序中构造代码块先执行,然后才是构造方法。
静态代码块:用static修饰的代码块
1.可以有输出语句。
2.可以对类的属性、类的声明进行初始化操作。
3.不可以对非静态的属性初始化。即不可以调用非静态的属性和方法。
4.若有多个静态的代码块,那么按照从上到下的顺序依次执行。
5.静态代码块的执行要先于非静态代码块。
6.静态代码块随着类的加载而加载,且只执行一次。
非静态代码块:没有static修饰的代码块
1.可以有输出语句。
2.可以对类的属性、类的声明进行初始化操作。
3.除了调用非静态的结构外,还可以调用静态的变量或方法。
4.若有多个非静态的代码块,那么按照从上到下的顺序依次执行。
5.每次创建对象的时候,都会执行一次。且先于构造器执行。
构造代码块VS静态代码块:
1.静态代码块,最多执行一次。
2.构造代码块,每次创建对象都会执行。
public class CodeBlockDemo { public static void main(String[] args) { CodeBlockClass codeBlockClass = new CodeBlockClass(); System.out.println(codeBlockClass.i); System.out.println(CodeBlockClass.name); //测试构造代码块和静态代码的执行特征: CodeBlockClass codeBlockClass1 = new CodeBlockClass(); CodeBlockClass codeBlockClass2 = new CodeBlockClass(); } } class CodeBlockClass { int i; static String name; public CodeBlockClass() { System.out.println("contructor method"); } //构造代码块 { i = 10; System.out.println("constructor block: " + i); } //静态代码块 static { System.out.println("static block"); } public void localCodeBlock () { //定义局部代码块 { int i = 10; System.out.println(i); } } }
最新文章
- 用spm2构建seajs项目的过程
- MapReduce 2简介
- 利用 NSSortDescriptor 对 NSMutableArray 排序
- iOS block示例
- JavaScript之数据类型
- wireshark tcp 协议分析
- Python数据结构之注意事项
- OpenGL路(四)自制的图形功能(立方体、汽缸、圆锥)
- 201521123110《Java程序与设计》第13周学习总结
- window下编辑了脚本文件linux报如下错误
- centos7安装nginx必要环境
- docker~docker-compose的使用
- C语言,char类型变量不应与EOF直接比较
- AD域安装及必要设置
- 如何让浏览器直接输出HTML代码而不解析
- HOSTNAME问题 和yum配置163源的操作 安装lsb_release,KSH,CSH
- 图像YUV格式介绍
- 关于mysql性能压测之tpcc
- 077 Apache的HBase与cdh的hue集成(不建议不同版本之间的集成)
- 为什么要使用yocto