Java并不僅僅是C++語言的一個(gè)變種,它們?cè)谀承┍举|(zhì)問題上有根本的不同:
(1)Java比C++程序可靠性更高。有人曾估計(jì)每50行C++程序中至少有一個(gè)BUG胎撇。姑且不去討論這個(gè)數(shù)字是否夸張介粘,但是任何一個(gè)C++程序員都不得不承認(rèn)C++語言在提供強(qiáng)大的功能的同時(shí)也提高了程序含BUG的可能性。Java語言通過改變語言的特性大大提高了程序的可靠性晚树。
(2)Java語言不需要程序?qū)?nèi)存進(jìn)行分配和回收姻采。Java丟棄了C++ 中很少使用的、很難理解的爵憎、令人迷惑的那些特性慨亲,如操作符重載、多繼承宝鼓、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換刑棵。特別地,Java語言不使用指針愚铡,并提供了自動(dòng)的廢料收集蛉签,在Java語言中,內(nèi)存的分配和回收都是自動(dòng)進(jìn)行的沥寥,程序員無須考慮內(nèi)存碎片的問題碍舍。
(3)Java語言中沒有指針的概念,引入了真正的數(shù)組邑雅。不同于C++中利用指針實(shí)現(xiàn)的“偽數(shù)組”片橡,Java引入了真正的數(shù)組,同時(shí)將容易造成麻煩的指針從語言中去掉淮野,這將有利于防止在c++程序中常見的因?yàn)閿?shù)組操作越界等指針操作而對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行非法讀寫帶來的不安全問題捧书。
(4)Java用接口(Interface)技術(shù)取代C++程序中的多繼承性。接口與多繼承有同樣的功能骤星,但是省卻了多繼承在實(shí)現(xiàn)和維護(hù)上的復(fù)雜性经瓷。
Java和C++各有各的優(yōu)勢(shì),無需爭論那種語言好洞难,哪種語言不好舆吮,能夠存在就一定有它的優(yōu)勢(shì),只要你決定了要學(xué)編程就扎實(shí)的學(xué)好廊营,編程語言都是相同的歪泳,學(xué)會(huì)一種萝勤,其他的學(xué)起來就很容易了露筒。
歡迎加群496038649,一起交流學(xué)習(xí)敌卓,驗(yàn)證澆水慎式。