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基础_对象初始化过程的主要内容,如果未能解决你的问题,请参考以下文章

Java基础系列--05_面向对象

JAVA中对象创建和初始化过程

面向对象基础

Java基础—java创建对象相关

_java基础_类和对象—4

类的初始化过程(难点)--------java基础总结