java基础_对象初始化过程
Posted 君子攸宁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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基础_对象初始化过程的主要内容,如果未能解决你的问题,请参考以下文章