Java____赋值顺序,调用顺序,内部类衍生问题:赋值和构造器、代码块谁先执行?+4种代码块
来源:互联网 发布:双色球黄金分割算法 编辑:程序博客网 时间:2024/05/20 02:30
运行顺序为:
1.父类静态块
2.自身静态块
3.父类块
4.父类构造器
5.自身块
6.自身构造器
赋值顺序为:
1.父类的静态变量赋值
2.自身的静态变量赋值
3.父类成员变量赋值
4.父类块赋值
5.父类构造器赋值
6.自身成员变量赋值
7.自身块赋值
8.自身构造器赋值
一、普通代码块
直接在一个方法中出现的{}就称为普通代码块,例子程序如下:
public class CodeDemo01{
public static void main(String[] args){
//普通代码块
{
int x = 10;
System.out.println("x=" + x);
}
int x = 100;
System.out.println("x=" + x);
}
}
二、构造代码块
直接在类中定义的没有加static关键字的代码块{}称为构造代码块,例子程序如下:
public class CodeDemo02{
public CodeDemo02(){
System.out.println("========这是构造方法=========");
}
//这是构造代码块,而且在new对象时,构造代码块优先构造方法执行
{
System.out.println("=========这是构造块!=========");
}
public static void main(String[] args){
new CodeDemo02();
new CodeDemo02();
}
}
三、静态代码块
使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化,例子程序如下:
public class CodeDemo03
{
static{
System.out.println("这是主类中的静态代码块!");
}
public static void main(String[] args){
new Demo();
new Demo();
new Demo();
}
}
class Demo
{
static{
System.out.println("这是Demo类中的静态代码块!");
}
{
System.out.println("这是Demo类中的构造块!");
}
public Demo(){
System.out.println("这是构造方法!");
}
}
静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!
四、同步代码块
同步代码块主要出现在多线程中。
由此可以得出,内部类中出现的
先执行private xx = new a();
再执行构造器的情况,不是因为把private xx = new a();当做代码块,而是先赋值!
- Java____赋值顺序,调用顺序,内部类衍生问题:赋值和构造器、代码块谁先执行?+4种代码块
- 成员变量赋值时机与构造代码块执行顺序
- Java____父类、子类——构造代码块、方法调用顺序问题
- 包含内部类的代码块和构造方法的执行顺序
- java构造代码块执行顺序问题
- Java代码块和构造方法执行顺序问题
- 静态代码块和构造器的执行顺序
- 静态代码块、构造代码块、构造方法执行顺序
- 静态代码块,构造代码块,构造方法执行顺序
- Java中static代码块、普通代码块和构造代码块的执行顺序
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序
- 黑马程序员---静态代码块和构造方法执行顺序
- java 静态代码块和构造方法执行优先顺序
- Java静态代码块和构造方法执行顺序
- Java中构造函数、构造代码块、静态代码块等的执行顺序问题
- java静态代码块 构造代码块 构造方法的执行顺序及注意问题
- Android获取设备或应用基本信息
- ajax 请求回到200 但是不进success-2
- Android开发总结笔记 EditText(输入框) 1-1-7
- iOS开发零基础教程之开发证书以及打包问题
- 全局探索式测试
- Java____赋值顺序,调用顺序,内部类衍生问题:赋值和构造器、代码块谁先执行?+4种代码块
- lvs+keepalived+nginx负载搭建
- imageloader详解
- lintcode做题总结, Oct 07
- 嘿嘿
- ios开发编写规范总结
- 如何自定义 maven中的archetype
- magento 开发模式
- 【.Net码农】RDLC(Reportview)报表直接打印,支持所有浏览器,客户可在linux下浏览使用