Java基础——对象加载顺序
来源:互联网 发布:oracle创建表的sql语句 编辑:程序博客网 时间:2024/06/05 05:14
加载类.class文件
执行静态代码块(static)
在堆内存开启空间分配内存
在堆内存建立特有属性.初始化
对属性进行显示初始化
对象进行构造代码块初始化
对象进行对应构造好书初始化
内存给栈
示例代码:
class Person{static {System.out.println("静态代码块");//第二步,随着类的加载而加载,先加载静态代码块,并只执行一次}//第三步开辟堆内存空间//第四步,初始化特定属性 country//第五步.显示初始化.初始化hahaprivate String name ="haha" ;private int age;private static String country = "CN"; //类开辟内存后直接初始化,在初始化name之前//第六步.构造代码块初始化{System.out.println("name = "+ name +",age = "+age);System.out.println("country = "+country);System.out.println("构造代码块");}//第七步,执行构造函数Person(String name,int age){System.out.println("普通构造函数");this.name = name;this.age = age;}//普通方法public void speak(){System.out.println("普通方法");}//静态方法public static void show(){System.out.println("country = "+country);}}public class Main {//栈开辟主函数 (总体第一步)public static void main(String[] args) {System.out.println();//第一步加载Person.class文件,加载到内存Person.show();//第八步,堆地址给栈地址Person p1 = new Person("zhangsan",24);}}
执行的结果
静态代码块
country = CN
name = haha,age = 0
country = CN
构造代码块
普通构造函数
0 0
- Java基础——对象加载顺序
- Java对象加载(初始化)顺序
- Java基础-类加载顺序
- 【Java学习笔记】创建对象时类的加载顺序——基于Java SE8
- Java——对象初始化顺序
- Spring—加载顺序
- Java基础重温(四)对象初始化加载
- JAVA基础--类加载&对象创建过程
- JAVA基础--类加载&对象创建过程
- Java实例化对象时候的加载顺序
- Java基础——对象
- java基础—面向对象
- Java基础—面向对象
- Java基础—— 面向对象基础
- java基础:继承关系类加载顺序问题
- java基础的积累巩固--类加载顺序
- Java 基础——类的加载
- Java 基础——类的加载
- C Prime plus 第六章习题
- Vijava 学习笔记之数据中心下(集群和非集群的资源池和ESXI)树形结构展示
- Eclipse安装SVN插件
- Linux网络配置相关
- 设计模式系列--观察者模式基本
- Java基础——对象加载顺序
- c++显示调用析构函数(转csdn)
- Android自定义控件实现登陆界面以及SharedPreferences实现记住密码功能
- 泛型程序设计
- 通过click事件动态改变引用的CSS文件,在不同浏览器下的表现
- Sql字符串分组Split函数的两种实现方法
- UVa 11464 EvenParity 偶数矩阵
- rrdtool绘制图像的简要原理
- JQuery中$.ajax()方法参数详解