写在前面:如果变量是基本数据类型,此时赋值的是变量所保存的数据值

     如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值

 

 

Java中,引用数据类型定义的变量含有的值,不是null就是地址值(不包括String)

例:

class Student
{
  int age;
};
Student a = new Student();
Student b = new Student();
a.age = 1;
b = a;//     a与b指向同一个地址值,因为a与b是由Student定义的
b.age = 2;//a与b的age同时修改
//*************************
b.age = a.age;
b.age = 2; //此时只有b改变 a与b为分开的地址值
//*************************
String类型:
String a = new String();
		String b = new String();
		a = "name";
		b = a;
		System.out.println(a+"  "+b);
		b = "score";
		System.out.println(a+"  "+b);

这时b与a的值不掺和。

//测试内存分配代码**********************

public class memtext {
	public static void main(String[] args) {
		memtext test = new memtext();

	}
	public void first() {
		int i = 5;
		Value v = new Value();
		v.i = 25;
		second(v,i);
		System.out.println(v.i);
	}
	public void second(Value v,int i) {
		i=0;
		v.i = 20;
		Value val = new Value();
		v = val;
		System.out.println(v.i + " " + i);
	}
}
class Value{
	int i=15;
}

图例:

java 业务对象命名 java对象名是地址吗_引用数据类型