Java对象与Java对象引用的区别:
上次课老师给我们讲到过Java对象和Java对象引用。提到Java对象就是“new”,“new”出来一个新的对象。
举个例子:就像是遥控板控制电视机一样,我们“new”一个对象把它当做一个“电视机”,此时需要声明一个控制其的“遥控器”。
FightPlane fp;
fp = new FightPlane();
上面的代码就是产生一个FightPlane的对象,fp此时是一个“遥控器”,但是并没有“遥控到”“电视机”,后面的代码句才让fp“遥控器”与“电视机”匹配上了。
new FightPlane();
产生的一个对象分配到堆内存之中,fp作为引用能操控对象的原因在于:它分配在栈内存中,并且存储着堆中对象的实际地址。
而关于Java对象引用,在第一个代码块就已经有所体现了。
FightPlane fp;
这就是声明一个对象引用,第二句代码就是初始化对象引用,让对象引用(“遥控器”)指向对象(“电视机”)。
Java对象的创建与C++对象创建的区别:
Java对象的创建是在堆内存、栈内存上创建的,而C++对象的创建可以在内存的三个部分上创建:
-
静态存储区域:主要保存全局变量和静态变量。生存期:整个程序。
-
堆:存储动态生成的变量。生存期:自己来决定。
-
栈:存储调用函数相关的变量和地址等。生存期:所处的语句块(既{}的范围)
以上是内存上的区别,创建对象的区别就是Java用“new”声明,而C++用数据类型、“new”还有“static”来创建不同内存部分的对象