2.4 引用传递初次分析
所有初学者最难的部分就是 引用传递分析。以后的开发之中都是引用传递。
引用传递的本质就在于别名,而这个别名只不过是放在了栈内存之中,即:一块堆内存可以被多个栈内存所指向。
范例:观察引用传递
//引用传递
class Person{//定义一个类,类名称要求首字母大写
String name;
int age;
public void info() {
System.out.println("name = "+ name + ",age = " + age);
}
}
public class Class2{
public static void main(String args[]) {
//类名称 对象名称 = new 类名称();
Person kai = new Person();//声明一个新的对象
kai.name = "王凯";
kai.age = 23;
Person wang = kai;
wang.name = "小王";
kai.info();
}
}
此程序的执行观察时需要通过内存关系图来进行:
范例:观察引用传递
//引用传递
class Person{//定义一个类,类名称要求首字母大写
String name;
int age;
public void info() {
System.out.println("name = "+ name + ",age = " + age);
}
}
public class Class4{
public static void main(String args[]) {
//类名称 对象名称 = new 类名称();
Person per1 = new Person();//声明一个新的对象
Person per2 = new Person();
per1.name = "wangkai";
per1.age = 23;
per2.name = "kai";
per2.age = 23;
per2 = per1;
per2.name = "hello";
per2.info();
}
}
观察此时的内存分析图:
在程序开发过程之中,所谓的垃圾空间指的就是没有任何栈内存指向的堆内存空间,所有的垃圾空间将不定期被java中的垃圾收集器(GC,Garbage Collector)进行回收以实现内存空间的释放,不过从实际开发来讲,虽然java有提供gc,但是gc也会造成程序性能的下降,所以开发过程之中一定要控制你对象的产生数量,即:无用的对象尽可能的少产生。