java代码块,静态代码块,静态变量,构造方法执行顺序
一个类中执行顺序:
静态变量
静态代码块
代码块
构造方法
子类和父类执行顺序:
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类代码块
父类构造方法
子类代码块
子类构造方法
直接看代码,一目了然。
public class Test {
public static void main(String[] args) {
new A();
/* 结果:
* A静态变量
A静态代码块
A代码块
A构造方法
* */
new B();
/*
* 结果:
* A静态变量
A静态代码块
B静态变量
B静态代码块
A代码块
A构造方法
B代码块
B构造方法
* */
}
}
class A{
static C c =new C("A");
{
System.out.println("A代码块");
}
static {
System.out.println("A静态代码块");
}
public A(){
System.out.println("A构造方法");
}
}
class B extends A{
static C c =new C("B");
{
System.out.println("B代码块");
}
static {
System.out.println("B静态代码块");
}
public B(){
System.out.println("B构造方法");
}
}
class C {
public C(String str){
System.out.println(str+"静态变量");
}
}
java代码块,静态代码块,静态变量,构造方法执行顺序的更多相关文章
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...
- 【转】java静态代码块和构造方法执行顺序
先看看下面几个类,然后判断它们的输出public class A { static{System.out.print(1);}public A(){System.out.print(2);}} pub ...
- java面试基础题------》Java 中的父子类静态代码块,代码块,构造方法执行顺序
4.指出下面程序的运行结果. class A { static { System.out.print("1"); } public A() { System.out.print(& ...
- Java学习之代码块(静态,构造代码块,构造方法)执行顺序
静态代码块 static{ 代码 } 随着类的加载而加载,随类的消失而消失,存在于类中,方法外,最先执行,且只加载1次,可用来加载驱动及初始化对象属性. 构造代码块 { } 也存在于类中, ...
- Java静态语句块、语句块、构造方法执行顺序
package com.imooc.practice; class Parent{ public Parent(){ System.out.println("Parent构造方法执行!&qu ...
- JAVA变量的执行顺序
对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序以此是(静态变量.静态初始化块)>(变量.初始化块)>构造器.我们也可以通过下面的测试代码来验证这一点: package ...
- 【Java】成员变量赋值执行顺序
程序中成员变量赋值的执行顺序
- Java基础 静态块、非静态块、构造函数的执行顺序
Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的.结构如下: static { 静态语句代码块 } { 非静态语句代码块 } ...
- [备忘]java 静态块、非静态块、静态函数、构造函数 执行顺序
原文链接:http://liqita.iteye.com/blog/1472717 java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始 ...
随机推荐
- linux中启动 java -jar 后台运行程序
直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉.以下方法可让jar运行后一直在后台运行. 1. java -jar xxx.jar & 说明: 在末尾加入 ...
- IDEA/Eclipse简易化使用的几个技巧
IDEA 易用性计较 代码自动提示,取消大小写限制 Ctrl+/生成的"//" 注释,不能跟代码块自动对齐 Eclipse 优化技巧目录 1.更改编码,统一全局的字体编码格式 2. ...
- stm32直流电机驱动与测速代码配套视频资料
说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...
- [daily][netcat] 在UNIX socket上使用netcat
概述 默认情况下,系统里边带的netcat,也就是nc.支持tcp,udp,ipv4,ipv6但是不支持unix socket. 而且,telnet也不支持. 除非自己写一个,不然很不方便. 另一个n ...
- SNMP 优秀帖子
-- 比较系统的描述http://blog.sina.com.cn/s/blog_54837cf301011607.html 几个SNMP官方网站(搜索关键字:snmplibrary C#):http ...
- this在java中的用法
this在java中的用法 1.使用this关键字引用成员变量 作用:解决成员变量与参数或局部变量命名冲突的问题 public class Dog { String name; public Dog( ...
- Windows服务器外网无法访问web的解决方法
windows环境下使用集成 IIS服务器时一般不会发生外网无法访问的问题,而使用apache.kangle.lighttpd.niginx.tomcat等时:服务器上可通过配置的域名访问网站,pin ...
- 汇编-10.0-CALL和RET指令
call和ret指令都是转移指令,他们都是修改IP,或同时修改CS和IP.它们常被共同用来实现子程序设计. 1.ret和retf ret指令用栈中的数据,修改IP的内容,从而实现近转移: retf指令 ...
- 20190422 8个小时的T-SQL基础视频课件-分享
链接:https://pan.baidu.com/s/1YLjtU0Ymn0rI-KMF0DFehw 提取码:yeuw 我最近缺钱..... SQLSERVER 2016视频T-SQL(一) 路径:h ...
- ESlint
转自blog: https://blog.csdn.net/dubinglin/article/details/78539223 https://www.jianshu.com/p/bfc7e7329 ...