淺析:Java與C++的主要區別

Java區別於C++程序員

表面看來二者最大的不一樣在於Java沒有指針,或者說,Java滿地都是指針。對於編程者而言Java的這種設計是安全且更易用的。說Java滿地是指針的緣由在於它把指針的功能隱藏了,其實在程序的深處,指針仍以存儲地址的形式存在着。因爲程序員沒法獲知真實地址,實際上提供了一個更加安全的系統,避免意外破壞。編程

1.引用安全

對於簡單數據類型,Java將和C++一樣採起直接存儲的方式。如 int a=1;spa

一個名爲a的存儲地址將存儲整型指1設計

對於對象,如 Object o;指針

一個名爲o的存儲地址將存儲的是一個Object類型的地址的引用而非對象自己,對象自己被存儲在別處。對象

C++內存

Object o;資源

這句話將建立一個對象,且留出了存儲這個對象所需的空間。在C++中也存在引用,可是須要顯式說明,用&符號。字符串

2.賦值

O1=O2;

C++中將一個名爲O2的對象的數據複製給O1,即存在兩個對象,他們的值相同。

而在Java中,這句話只是把O2對象的引用複製給了O1,此時它們指向同一個對象,即只存在一個對象。

4.垃圾回收機制

C++中,對於再也不須要的空間,須要用delete來釋放,估計你們幾乎都經歷過忘記或者錯誤刪除存儲空間的經歷吧,後果是內存泄露,系統資源被消耗,程序不穩定,甚至系統崩潰...

對於Java,這樣的問題就不復存在了,程序員無需理會內存管理,系統將自動檢查並回收空閒內存區。

5.參數

對於類類型,在參數傳遞時,Java的實參和形參指向同一對象,C++的形參指向的是複製來的另外一個對象。

對於基本數據類型,都採用值傳遞...

6.==

對類類型,Java==斷定的是二者是否指向同一對象,便是否爲同一對象的引用。若要斷定值是否相等,需調用在Object類中定義的equals()方法。

7.重載操做符

C++有而Java沒有。Java中能夠採用命名的辦法...

8.基本變量類型

CC++用整數值來表示真假,而Java中布爾型是獨立的,truefalse...

Javaint變量32位,C/C++則取決於計算機環境。

JavaString是類類型而非基本類型。

對於C/C++能夠自動進行的類型轉換,Java要顯式轉換

9.輸入輸出

Java的輸入輸出是個使人髮指的玩意兒...這是我首次接觸是的趕腳

字符串輸入:

InputStreamReader isr=new InputStreamReader(System.in);

BufferReader br=new BufferReader(isr);

String s=br.readLine();

輸入字符:

InputStreamReader isr=new InputStreamReader(System.in);

BufferReader br=new BufferReader(isr);

String s=br.readLine();

char c=s.charAt(index);

輸入整數:

InputStreamReader isr=new InputStreamReader(System.in);

BufferReader br=new BufferReader(isr);

String s=br.readLine();

int a=Integer.parseInt(s);

輸入浮點數:

InputStreamReader isr=new InputStreamReader(System.in);

BufferReader br=new BufferReader(isr);

String s=br.readLine();

Double d=Double.valueOf(s);

double db=d.doubleValue();

其中Double是雙精度浮點型數據的封裝類。。。 

相關文章
相關標籤/搜索