Java static(三)
来源:互联网 发布:营口港大数据平台 编辑:程序博客网 时间:2024/06/06 09:08
1. 静态代码块
- static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内
- JVM加载类时会执行这些静态代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们
- 每个静态代码块只会被执行一次
2. 实例说明
// 父类public class ParentStatic { private static String pstr = "父类静态变量"; static { System.out.println("执行父类静态代码块:" + pstr); } public ParentStatic() { System.out.println("执行父类构造方法。。。"); }}// 子类public class ChildStatic extends ParentStatic {private static String cstr = "子类静态变量"; static { System.out.println("执行子类静态代码块:" + cstr); } public ChildStatic() { System.out.println("执行子类构造方法。。。"); }}
public class StaticBlockTest { public static void main(String[] args) { ChildStatic childStatic1 = new ChildStatic(); ChildStatic childStatic2 = new ChildStatic(); System.out.println("类静态代码块只会在加载该类时执行一次。。。"); }}
运行结果:
运行过程:
- 执行ChildStatic childStatic1 = new ChildStatic();先要加载ChildStatic类,加载时发现继承于类ParentStatic,转去加载父类
- JVM加载父类ParentStatic时,发现父类有静态代码块,便执行父类的静态代码块
- 父类ParentStatic加载完成,继续加载子类ChildStatic,发现子类有静态代码块,执行子类静态代码块
- 类ChildStatic加载完成,执行初始化new ChildStatic(),先调用父类构造函数,在调用子类构造函数
- 执行ChildStatic childStatic2 = new ChildStatic(),由于此时子类ChildStatic已经加载过了,所以静态代码块不会再执行,直接初始化,调用父类构造函数,再调用子类构造函数
阅读全文
0 0
- Java static(三)
- Java关键字(三)static关键字(static声明方法)
- Java入门(三)static关键字
- Java面向对象(三)Static
- Java 学习历程(三)this关键字和static关键字
- java知识点汇总之三static
- c++关键字:(三)static
- java学习笔记(三)java中的修饰符abstract、static与final
- Java static(一)
- Java static(二)
- JAVA基础知识点(三)--this,static,main函数,单例设计模式
- java基础--java三大特性及static
- clang static analyzer源码分析(三)
- Java中static、this、super、final用法简谈(三)
- Java中static、this、super、final用法简谈(三)
- java中的三大修饰符static、final、abstract
- java import package static 三者的基本用法
- java面试遇到问题三 -----final关键字和static关键字
- 33. Search in Rotated Sorted Array
- 人生感悟:他们这样爬出烂泥般的人生
- 数字根
- jquery:AJAX 获取外部json
- RocketMQ源码解析-Producer启动
- Java static(三)
- 水仙花数
- 设计模式之状态模式
- jsp中获取根路径的方法
- 关于野指针,freopen重定向以及cin的简单c++问题
- 游戏工程架构设计
- sdnu1070
- Java项目使用Swagger开发包含文档的API接口
- php-cli模式学习(PHP命令行模式)