JAVA学习第五篇--java中对象的创建过程以及函数的调用过程

下面本文将详细介绍java语言中对象的创建过程,以及函数的调用过程。

class Person{
	public String name="zhao";
	public int ege;
	public static String country = "CN";
	Person(String name,int ege){
	this.name = name;
	this.ege = ege;
	}
	public static void show(){
		System.out.println("haha");
	}
	public void showName(){
		this.name=name;
		System.out.println(name);
	}
}
class staticDemo{
	public static void main(String[] args){
		Person p = new Person("zhai",27);
		p.name = "zhaidong";
		p.showName();
	}
}  

 
  

1,java语言中对象的创建过程

在上面主函数中下述语句的作用是创建对象:

Person p = new Person();
在内存中该语句的执行过程为:
1)因为new用到了Person.class,所以会先找到Person.class文件并利用java虚拟机在加载到内存中,此时静态属性等已经被加载到了方法区中。
2)如果Person类中包含静态代码块则执行类中的静态代码块;
3)在堆内存中开辟空间,分配内存地址;
4)在堆内存中建立对象的特有属性,并进行默认初始话。此时堆内存中有name = NULL; age = 0;
5)对对象进行显示初始话,此时有name = “zhao”; age = 0
6)对对象进行构造代码快初始化;
7)对对象进行构造函数初始化;此时堆内存中name = "zhai"; age = 28;
8)将内存地址付给栈内存中的P变量。
2,函数的调用过程
下图生动的展示了函数的调用过程。首先所有的函数都是存储在方法区中的,当有函数调用时,如果不是静态方法那么该函数的调用将会在栈内存中进行,函数调用完毕则释放该栈内存。

你可能感兴趣的:(java语言学习)