首页 > 代码库 > java基础_对象初始化过程
java基础_对象初始化过程
1.因为new Studen()用到了Student类,所以会把它从硬盘上加载进入内存
2.如果有static静态代码块就会随着类的加载而执行,还有静态成员方法和普通方法也会随着类的加载而被加载
3.在堆中开辟空间,分配内存地址
4.在堆中建立对象特有属性(非静态成员),并同时对特有属性进行默认初始化
5.对属性进行显示初始化 比如 在类中 String name="123";
6.执行构造代码块,对所有对象进行初始化
7.执行对应的构造函数,对对象进行初始化(调用不同的构造函数)
8.讲内存地址给栈中的变量
实例如下
package j2se; /* *静态代码块随着类的加载而执行,优先于主函数执行,切只执行一次 *new 对象时,先调用构造代码块,再执行相应的构造方法 */ class Student{ String name="fff"; int age; private static String country="中国"; public Student(){ System.out.println("我是无参构造方法"); } public Student(String name){ this.name=name; System.out.println("我是一个参数构造方法"); } public Student(String name,int age){ this(name); this.age=age; System.out.println("我是两个参数构造方法"); } public static void get(){ System.out.println("我是静态成员方法"); } static{ System.out.println("我是静态代码块"); } { System.out.println("我是构造代码块"); } } public class A6_43 { public static void main(String[] args) { Student a=new Student(); Student b=new Student("小明"); Student c=new Student("小明",27); } }
运行结果:
我是静态代码块
我是构造代码块
我是无参构造方法
我是构造代码块
我是一个参数构造方法
我是构造代码块
我是一个参数构造方法
我是两个参数构造方法
java基础_对象初始化过程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。