一.Java对象与Java对象引用的区别
先来看一段代码
FighterPlane fp = new FirghterPlane();
代码的执行过程是先产生对象,之后将对象赋予声明fp;
有声明时可以没有对象,当声明被赋予特定的对象后,声明就被另一个概念——“引用”所取代;
从某种角度上讲,引用就好比对象的名片;
fp作为引用,在栈中保留了堆中对象的实际地址;
对象作为参数时,对象是引用传递,传递的的事对象的地址,也就是说对象只有一个,而引用可以有多个。
二.Java对象与C++对象的区别
同样是这段代码
FirghterPlane fp;
- 这段代码在Java中产生一个对象的声明,此时并没有任何此类的对象产生,也没有为此对象分配内存空间,而在C++中,此时已经产生了一个对象;
- C++中用关键字new方式创建的对象在堆中,而用“FirghterPlane fp”方式产生的对象在方法栈中;