在java中操纵元素的方法不是C或c++中基于指针的间接表示,它将一切都视为了对象,可以采用单一固定的语法。
尽管将一切都看成了对象,但操纵的标识符是对象的一个“引用”。可以将这个过程看为遥控器(引用)操作电视机(对象),很明显,当你需要执行一些行为,直接用遥控器就可以了。此外,遥控器是可以单独存在的,也就是说你可以有一个独立的引用,而不一定需要一个对象和它关联。
public class A{
public static void main(String[] args){
A a;
A b = new A();
}
}
上边的代码就说明这样的问题,a是一个独立的引用,而b就是关联对象的引用。
接下就说说java中把东西都放到哪里去了:
1.寄存器:这是最快的存储区。
2.堆栈:通过堆栈指针从处理器获得直接支持,上下移动堆栈指针,则释放或分配指针。一般将对象引用存储其中。
3.堆:一种通用的内存池,用于存放所有的java对象。
4.常量存储:常量值通常放在程序代码内部,永远不会改变。
class A{
public int num;
}
public class B{
public static void main(String[] args){
A a = new A();
A b = new B();
a.num = 10;
b.num = 20;
System.out.print(a.num);
System.out.print(“”+b.num);
a = b;
System.out.println(a.num);
System.out.print(“”+b.num);
a.num = 88;
System.out.println(a.num);
System.out.print(“”+b.num);
}
}
输出结果:
10 20
20 20
88 88
A类非常简单,它的两个实例在B中创建的。每个A类对象的num域都赋予了不同的值,然后将b赋给a,接着又修改了a。但由于赋值操作是对对象的引用,所以在改了a的时候同时也修改了b。