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,都是最先初始 ...
随机推荐
- SQL之NULL值的几种处理方式
1.创建测试表: drop table if exists tab_null_operator; create table tab_null_operator as select 1 as id,'c ...
- Django中web开发用md5加密图片名并存储静态文件夹
一般在开发中,有的网站存在大量图片,首先图片的名称是不能重复的, 但是除了数据库可用的id以外我们可以用time模块中time.time()获取的时间来进行md5加密操作, 因为time模块所产生的时 ...
- Unicode编码范围
- [dev][ipsec][dpdk] strongswan/dpdk源码分析之ipsec算法配置过程
1 简述 storngswan的配置里用一种固定格式的字符串设置了用于协商的预定义算法.在包协商过程中strongswan将字符串转换为固定的枚举值封在数据包里用于传输. 协商成功之后,这组被协商选中 ...
- linux 常用压缩解压命令
压缩格式 打包/解压 执行命令 .tar 解包 tar ...
- Linux基础命令1
文件的操作: Tab键:自动补齐 反斜杠‘\’:强制换行 Ctrl+u:清空至行首 Ctrl+k:清空至行尾 Ctrl+l:清屏 --clear 清屏 Ctrl+c:取消本次命令编辑,中断当前操作 ...
- 学号 20175201张驰 《Java程序设计》第6周学习总结
学号 20175201张驰 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 ·1.Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类 ...
- 【git】强制覆盖本地代码(与git远程仓库保持一致)
git强制覆盖: git fetch --all git reset --hard origin/master git pull git强制覆盖本地命令(单条执行): git ...
- Oracle 12C 补丁升级
升级步骤 Oracle 12.2.0.1升级至12.2.0.1.190115 1.阅读readme文件 2.检查更新opatch 3.备份程序 4.使用opatchauto工具进行数据库升级 5.打O ...
- requests 获取百度推广信息
2019年的第一篇博客,恩,好久没写过博客了,恩,忘了,哈哈,实在是太懒了 今天写一个爬取百度推广数据的爬虫,当然我写的肯定不是那么的完美,但是能用,大哭 注意:有的时候,get或post方法获取数据 ...