java静态代码块,构造方法,初始化块的执行顺序
代码Parent和Sub进行讲解
- public class Parent {
- private static final String name;
- public Parent() {
- System.out.println("父类构造方法");
- }
- static{
- name="hello parent";
- System.out.println("父类静态块1");
- }
- static{
- System.out.println("父类静态块2");
- }
- {
- System.out.println("父类非静态块1");
- }
- {
- System.out.println("父类非静态块2");
- }
- }
- public class Sub extends Parent{
- public Sub() {
- System.out.println("子类构造方法");
- }
- static{
- System.out.println("子类静态块");
- }
- {
- System.out.println("子类非静态块");
- }
- }
- public class Test {
- public static void main(String[] args) {
- Parent s1=new Sub();
- Parent s2=new Sub();
- }
- }
- 运行结果:
- 父类静态块1
- 父类静态块2
- 子类静态块
- 父类非静态块1
- 父类非静态块2
- 父类构造方法
- 子类非静态块
- 子类构造方法
- 父类非静态块1
- 父类非静态块2
- 父类构造方法
- 子类非静态块
- 子类构造方法
结果:
父类静态代码块
子类静态代码块
----- 类加载时只调用一次
父类代码块
父类构造方法
子类代码块
子类构造方法
-----每次创建一个对象就调用一次
结论:
static修饰的代码块属于静态代码块属于类,加载时只调用一次;
非static修饰的代码块属于对象,每次创建对象都会运行非static修饰的代码块。
因为静态代码优先于非静态的代码,被static修饰的成员都是类成员,会随着JVM加载类的时候加载而执行,
没有被static修饰的成员也被称为实例成员,需要创建对象才会随之加载到堆内存,所以静态的会优先非静态的先执行
java静态代码块,构造方法,初始化块的执行顺序的更多相关文章
- java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序
java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时 ...
- java 静态代码块和spring @value等注解注入顺序
java 静态代码块和spring @value等注解注入顺序 问题所在 先上代码 java方法 @Value("${mf.cashost}") public static S ...
- 非静态代码块(非static初始化块)&静态代码块(static初始化块)
非静态代码块: TestOrder: package com.aff.singleton; /* 类的第四个成员:初始化块(代码块) 代码块: 如果有修饰的话只能使用static 分类:非静态代码块: ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- [转载] 常用 Java 静态代码分析工具的分析与比较
转载自http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代 ...
- 【转载】常用 Java 静态代码分析工具的分析与比较
摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...
- 常用Java静态代码分析工具的分析与比较
给国产静态代码检测工具Pinpoint打Call! 简介 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了4种现有的主流Java静态代码分析工具 (Checkstyle,FindBugs ...
- [原创]Java静态代码检查工具介绍
[原创]Java静态代码检查工具介绍 一 什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...
- 浅谈Java语言中try{}catch{}和finally{}的执行顺序问题
浅谈Java语言中try{}catch{}和finally{}的执行顺序问题 2019-04-06 PM 13:41:46 1. 不管有没有出现异常,finally块中代码都会执行: 2. 当t ...
随机推荐
- MySQL简版(一)
第一章 数据库的基本概念 1.1 数据库的英文单词 Database,简称DB. 1.2 什么是数据库? 用于存储和管理数据的仓库. 1.3 数据库的特点 持久化存储数据的.其实数据库就是一个文件系统 ...
- C++ GUI Qt4学习笔记04
本章将实现应用程序的功能,通过编写底层函数来完成之前的Spreadsheet程序,关于如何载入和保存文件,如何在内存中存储数据,如何实现剪贴板的操作以及如何向QTableWidget中添加对电子指标软 ...
- RouterOS基础安装配置
安装 光盘安装 载入光盘,按"A"全选按"I"进行安装,然后提示不否用旧的配置,按"N"全新安装,警告时按"Y"确定 安 ...
- Keras get Tensor dimensions
int_shape(y_true)[0] int_shape(y_true)[1]
- Docker(三):Docker入门教程-CentOS Docker 安装
CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...
- LeetCode--079--单词搜索(python)
给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字母不允许被重复使用. ...
- 岭回归、lasso
参考:https://blog.csdn.net/Byron309/article/details/77716127 ---- https://blog.csdn.net/xbinwor ...
- CF1244C
题目描述 给出n,p,w,d,求(x,y,z)使得 xw+yd=p x+y+z=n 其中d<w<10^5^ 题解 显然扩欧啊( 来自天国的long long y如果大于等于w,则显然可以把 ...
- Headless Windows
Google Chrome 79.0.3945.79 (正式版本) (64 位) (cohort: 79_Win_79) .\chrome --headless --user-data-dir=tmp ...
- luogu P1147 连续自然数和 x
P1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以 ...