码迷,mamicode.com
首页 > 编程语言 > 详细

java基础_对象初始化过程

时间:2017-04-25 23:22:41      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:对象   变量   静态   stat   name   调用   static   public   void   

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基础_对象初始化过程

标签:对象   变量   静态   stat   name   调用   static   public   void   

原文地址:http://www.cnblogs.com/youning/p/6765074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!