java的内存主要的部分就是堆和栈(当然还有方法区,程序计数器,本地方法栈)。java 的数据类型又分有基本基本数据类型和引用数据类型。这两种有什么存储的区别呢

java基本数据类型:java是在栈中进行值存储

java引用数据类型:在栈中是存储的对象的引用,实际对象是在堆中存储

为什么java对基本数据类型在栈中存储值呢,这是因为基本数据类型的内存大小是固定的(如 int 4个字节);

再说一下 :java方法调用时的参数传递

1.基本数据类型进行的是值copy 2.引用数据类型进行的是引用copy  总之就是把栈中存储的内容进行了copy,而方法的每个参数都是一份新的copy,在栈中有一份新的空间

 

public class Test {
public static void intTest(int i){
i = 10;
System.out.println(i);
}

public static void personTest(Person p){
p.setName("test");
System.out.println(p.getName());
p = new Person();
p.setName("test1");
System.out.println(p.getName());
}


public static void main(String[] args) {
int i = 100;
intTest(i);
System.out.println(i);

Person p = new Person();

personTest(p);
System.out.println(p.getName());

}
}


class Person {

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}


运行结果:

10
100
test
test1
test

 

posted on 2018-10-23 15:44  立志要做大牛的人  阅读(102)  评论(0)    收藏  举报