Bootstrap

C++与Java的主要区别

一、指针上的区别
  Java和C++最大的不同在于Java没有指针。其实,Java只是摆脱了显示表露的指针,指针依旧以存储地址的形式埋藏在程序的深处。
二、引用
  C++创建对象赋值给变量,它留出了所有这个对象的数据空间。在Java中创建对象,只创建了放置某一对象的存储空间的地址。可以将引用认为是普通变量语法的指针,C++也有引用变量,但他们必须用&符号显示说明。
例如:

Person P1 = new Person();
Person P2 = new Person();
P1 = P2;

对与C++来说是将P1的对象的所有数据都拷贝到另一个名为P2的对象中,而在Java中,这条语句只向P2中拷贝了P1指向的存储地址,现在P2和P1实际是同一个对象。
三、new操作符
  (1)new在Java中返回的是一个引用,而C++返回一个指针。(2)用new向系统申请空间后,C++要用delete释放内存空间,否则可能会导致”内存泄漏“。而在Java则根本不需对释放空间担心,Java每隔一段时间就会查看每一块由new开辟的内存,看指向它的有效引用是否依旧存在,如果这个引用不存在,系统会自动将这块空间归入空闲内存区。
四、==操作符
  在Java中当使用==判断类时,实际上是判断类的引用是否一致,即它们是否指向同一个对象。(如果在Java中要判断两个对象中是否含有相同的数据,则要使用Object类中的equal()方法)
  在C++中,这个操作符会判断出两个对象是否含有相同的数据。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;