淺析:Java與C++的主要區別
Java區別于C++
表面看來兩者最大的不同在于Java沒有指針,或者說,Java滿地都是指針。對于編程者而言Java的這種設計是安全且更易用的。說Java滿地是指針的原因在于它把指針的功能隱藏了,其實在程序的深處,指針仍以存儲地址的形式存在著。由于程序員無法獲知真實地址,實際上提供了一個更加安全的系統,避免意外破壞。
1.引用
對于簡單數據類型,Java將和C++同樣采取直接存儲的方式。如 int a=1;
一個名為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.基本變量類型
C和C++用整數值來表示真假,而Java中布爾型是獨立的,true和false...
Java的int變量32位,C/C++則取決于計算機環境。
Java的String是類類型而非基本類型。
對于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是雙精度浮點型數據的封裝類。。。</span>