Java比C++
好在:
1.Java比C,C++簡單,學起來比C\C++容易
2.Java完全對象化,比如數組在Java中是一個對象,含有length這個屬性;而不像C++中數組是一個指針。所以訪問數組,Java都會進行邊界檢查,更安全,但犧牲了速度。同時因為Java中所有類都會繼承Object這個基類,所以可以把幾個好不相干的類用基類聯系起來,比如放在同一個數組裡。
3.Java中沒有指針這樣不安全(雖然指針速度快)的概念。
4.Java中有完善的內存管理機制,能自動垃圾回收,最大可能降低內存溢出的可能,同時提高編程效率。
5.Java中有完善的異常機制(標准C++中不夠完善)。
6.java中保持數據時對象本身是在堆裡,同時靠一在棧裡的句柄與之連接。這個設計更合理。
由以上幾點可見Java更安全。
8.Java標准庫完整的多,相比之下C++除了一個STL(而且還超級難用)就沒了,實際C++編程中需要大量使用第3方庫。這很大程度上是因為Java有一些商業公司支持,更新速度快,而C++只有一個可憐的標准委員會,上一個C++標准版本還是C++98
9. Java因為是把程序編譯為字節碼,運行時需要JVM把字節碼再翻譯為機器碼,所以他跨平台,一次編譯到處運行。但這也是他慢的根本原因。
10.Java原生支持多線程(C++僅靠標准庫辦不到),原生的UI,如AWT Swing
不好在:
1.Java比C\C++慢。Java 1.0 比C慢20倍 現在的Java 1.6運行速度也只是C的一半。
2. C++在繼承和派生上比Java更靈活
3. C++ 中可以直接插入匯編 能直接操控底層硬件 所以操作系統還是得用c寫
4. Java辦的到C++一定辦得到,C++辦得到的Java則不一定。
5. Sun被甲骨文收購了之後,Java的發展很受影響。
6. C++編譯的程序可以直接運行,Java需要安裝JRE有幾十MB,影響產品發布的用戶體驗。
最後插一句,Java的一部分優勢會隨著C++0x的發布有所減弱。