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.基本變量類型
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是雙精度浮點型數據的封裝類。。。