Java
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進行復雜的編程。
Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應用程序等。
C++
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設計,還可以進行以繼承和多態(tài)為特點的面向?qū)ο蟮某绦蛟O計。C++擅長面向?qū)ο蟪绦蛟O計的同時,還可以進行基于過程的程序設計,因而C++就適應的問題規(guī)模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特征,同時還致力于提高大規(guī)模程序的編程質(zhì)量與程序設計語言的問題描述能力。
C++與Java的區(qū)別
Java要理解抽象的定義,把側重點應該放到類組織方式,類職責的管理層級等設計問題上來
C++要充分理解C語言,除了上面提到的,也更應該注重內(nèi)存問題的思考和判斷上。
1、面向?qū)ο?/span>
對于C++而言,談面向?qū)ο蟮臅r候,是面向?qū)ο笤O計
對于Java而言,談面向?qū)ο蟮臅r候,是面向?qū)ο笏枷?/p>
不要小看這兩者之間的區(qū)別,C++說到底還是C語言的衍生版,通看《C++編程思想》其實,對于類設計,繼承,重載這些并沒有看作面向?qū)ο筇匦詠砼袛?,只是提供了一種代碼服用的表現(xiàn)形式以及“晚捆綁”在C++編譯器中相對于C語言編譯器的區(qū)別和有事。但是在《Java編程思想》當中,則是把類,繼承,重載,多態(tài)等作為很重要的面向?qū)ο笏枷雭砜创摹?/p>
舉一個例子,static修飾符
在C++當中,存在類內(nèi)靜態(tài)成員變量的問題和Java其實是一致的,但是C++仍抱有C語言特性,static生命仍具有全局概念。Java當中已經(jīng)不存在所謂的全局概念了,更準確的說是通過類邊界,將全局概念隱藏了。作用雖然一致,但是Java在于static提供類共享的時候,可能并沒有C++來做的判斷合適
2、代碼
這個也很多人忽略,語言只是工具,只要按照算法做就是了,但是工具可是各有各的特點,往往也被忽略掉了。
舉一個例子:空指針判斷,數(shù)組越界,異常,斷言
可能上面說的,在于C++而言要完全控制的,如果不控制就會出大問題,直接對應到內(nèi)存的異常??墒荍ava而言,由于是純面向?qū)ο笳Z言,加上完整的基于虛擬機的異??刂?,使得數(shù)組越界而言可能并不是什么大問題,throws一個Exception和內(nèi)存異常比較起來反而小的多??梢奐ava對于內(nèi)存的隱藏優(yōu)勢
3、組織
看C++代碼,給我一個很深刻的印象就是,我能很準確的看懂他的組織形式和功能。然而Java我需要充分理解類之間的層次結構和邊界問題,往往搭建庫的時候映射到上層,很難通透的看出整個的形式和功能,只能基于類的調(diào)用來梳理。
由此也可以看出C++還是遺傳了C語言的特性,是一個基于文檔目錄結構來做代碼組織的。雖然有了面向?qū)ο筇匦?,但是就面向?qū)ο笾皇墙oC++一種代碼服用以及設計時邏輯區(qū)分。然而對于Java而言,面向?qū)ο罂墒秦瀼厥冀K的。
舉一個例子:C++頭文件的引入
很多人不太習慣為什么我寫一個類,還要引入頭文件,和Java類似寫到一個文件里面不行嗎?!其實C++,這是嚴格遵守了先聲明后使用的邏輯。所以對于頭文件引入的混亂的管理可以通過這個出發(fā)點,達成一定的一致的。
4、庫函數(shù)區(qū)別
初看之下,覺得C++的庫函數(shù)能做的,Java也都做了。但是其實還是有一些細微的區(qū)分的。
舉一個例子:sort()函數(shù)
C++當中對于vector的排序,是通過sort(vec.begin,vec.end,_compare)來進行的
Java當中呢,則是要復寫需要比較類的Compare方法的。
這樣你還會覺得C++是個面向?qū)ο蟮恼Z言嘛?明明是一個類和另一個類比較,這個比較是一個類行為,為什么還要在sort中放一個比較,這種跳出呢?
GDCA一直以“構建網(wǎng)絡信任體系,服務現(xiàn)代數(shù)字生活”的宗旨,致力于提供全球化的數(shù)字證書認證服務。其自主品牌——信鑒易®TrustAUTH® SSL證書系列,為涉足互聯(lián)網(wǎng)的企業(yè)打造更安全的生態(tài)環(huán)境,建立更具公信力的企業(yè)網(wǎng)站形象。