C++和java的区别和联系
C++和java的區(qū)別和聯(lián)系
通常,我們聊到Java,第一印象“面向?qū)ο蟆?#xff0c;“沒有指針,編寫效率高,執(zhí)行效率較低”。更深入、專業(yè)一點就談?wù)?“java內(nèi)存自動回收(GC垃圾回收機制),多線程編程”。**
java的三大特性是封裝、繼承和多態(tài)。**
總結(jié)如下:
1、 JAVA的應(yīng)用在高層,C++在中間件和底層
2、 JAVA離不開業(yè)務(wù)邏輯,而C++可以離開業(yè)務(wù)為JAVA們服務(wù)
3、 java語言給開發(fā)人員提供了更為簡潔的語法;取消了指針帶來更高的代碼質(zhì)量;完全面向?qū)ο?#xff0c;獨特的運行機制是其具有天然的可移植性。
4、 java 是運行在JVM上的,之所以說它的可移植性強,是因為jvm可以安裝到任何的系統(tǒng)
5、 c++不是不能在其他系統(tǒng)運行,而是c++在不同的系統(tǒng)上運行,需要不同的編碼(這一點不如java,只編寫一次代碼,到處運行)。java程序一般都是生成字節(jié)碼,在JVM里面運行得到結(jié)果。
6、 java 在web 應(yīng)用上具有c++ 無可比擬的優(yōu)勢
7、 java在桌面程序上不如c++實用,C++可以直接編譯成exe文件,指針是c++的優(yōu)勢,可以直接對內(nèi)存的操作,但同時具有危險性 。(操作內(nèi)存的確是一項非常危險的事情,一旦指針指向的位置發(fā)生錯誤,或者誤刪除了內(nèi)存中某個地址單元存放的重要數(shù)據(jù),后果是可想而知的)。
8、 垃圾回收機制的區(qū)別。c++用析構(gòu)函數(shù)回收垃圾,java自動回收(GC算法),寫C和C++程序時一定要注意內(nèi)存的申請和釋放。
9、 java 豐富的插件是java 發(fā)展如此迅速的原因
10、 java 很大的沿襲了c++的一些實用結(jié)構(gòu)
11、 對于底層程序的編程以及控制方面的編程,c++很靈活,因為有句柄的存在。
相關(guān)文章:http://www.jieba8.com/
Java并不僅僅是C++語言的一個變種,它們在某些本質(zhì)問題上有根本的不同:
(1)Java比C++程序可靠性更高。有人曾估計每50行C++程序中至少有一個BUG。姑且不去討論這個數(shù)字是否夸張,但是任何一個C++程序員都不得不承認C++語言在提供強大的功能的同時也提高了程序含BUG的可能性。Java語言通過改變語言的特性大大提高了程序的可靠性。
(2)Java語言不需要程序?qū)?nèi)存進行分配和回收。Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,在Java語言中,內(nèi)存的分配和回收都是自動進行的,程序員無須考慮內(nèi)存碎片的問題。
(3)Java語言中沒有指針的概念,引入了真正的數(shù)組。不同于C++中利用指針實現(xiàn)的“偽數(shù)組”,Java引入了真正的數(shù)組,同時將容易造成麻煩的指針從語言中去掉,這將有利于防止在c++程序中常見的因為數(shù)組操作越界等指針操作而對系統(tǒng)數(shù)據(jù)進行非法讀寫帶來的不安全問題。
(4)Java用接口(Interface)技術(shù)取代C++程序中的多繼承性。接口與多繼承有同樣的功能,但是省卻了多繼承在實現(xiàn)和維護上的復(fù)雜性。
Java和C++各有各的優(yōu)勢,無需爭論那種語言好,哪種語言不好,能夠存在就一定有它的優(yōu)勢,只要你決定了要學(xué)編程就扎實的學(xué)好,編程語言都是相同的,學(xué)會一種,其他的學(xué)起來就很容易了。
加油!
參考文章:http://www.xdy666.com/
總結(jié)
以上是生活随笔為你收集整理的C++和java的区别和联系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: transferwise怎么提现_Tra
- 下一篇: mvc2 mvc_迅捷的MVC