1.開(kāi)源
這兩者都是開(kāi)源語(yǔ)言,換言之你可以隨意的使用這兩門(mén)語(yǔ)言而不需要付費(fèi),你也可以閱讀他們的源代碼學(xué)習(xí),并且對(duì)它們做一些改動(dòng)。在這一點(diǎn)上,兩者是不分上下的,的差別可能就是Java的體量要大很多,中文版本的代碼也要多很多,而Python反之,所以學(xué)習(xí)Python相應(yīng)的資料要少一些而且大部分都是英文的,這就要求了學(xué)習(xí)者有一定的英語(yǔ)功底。
2.面向?qū)ο?/span>
Java的面向?qū)ο篌w現(xiàn)在動(dòng)態(tài)的接口模型以及非常簡(jiǎn)單的類(lèi)機(jī)制,他在對(duì)象中封裝了父類(lèi)的變量以及方法,實(shí)現(xiàn)了模塊化和信息隱藏,而類(lèi)則提供了類(lèi)對(duì)象的原型,我們通過(guò)繼承機(jī)制可以在子類(lèi)中使用父類(lèi)的方法,從而實(shí)現(xiàn)代碼的復(fù)用。
而Python則以更加簡(jiǎn)單粗暴的方式實(shí)現(xiàn)面向?qū)ο螅瑢?duì)于Python來(lái)說(shuō)既支持面向過(guò)程的函數(shù)式編程也支持面向?qū)ο蟮某橄缶幊獭?/span>
3.可移植性
無(wú)論是Java還是Python都是跨平臺(tái)的語(yǔ)言,但是他們的跨平臺(tái)并不完全相同,Java可以跨平臺(tái)是因?yàn)镴ava運(yùn)行于JVM虛擬機(jī)中,但是JVM虛擬機(jī)各個(gè)平臺(tái)的實(shí)現(xiàn)是不同的,所以他的跨平臺(tái)并不徹底;而Python的跨平臺(tái)是語(yǔ)言本身的特性所決定的,在不同的平臺(tái)上寫(xiě)的Python代碼都可以隨便運(yùn)行,可惜的是并不是完美的支持所有平臺(tái)的跨平臺(tái),所以從這一點(diǎn)上來(lái)看兩門(mén)語(yǔ)言都不是徹底的跨平臺(tái),半斤八兩吧。
4.類(lèi)庫(kù)
我們知道Java之所以是一門(mén)強(qiáng)大的語(yǔ)言是他擁有大量的類(lèi)庫(kù)的關(guān)系,在眾多的語(yǔ)言中這一點(diǎn)Java無(wú)出其右,我們只需要一些簡(jiǎn)單的基礎(chǔ)語(yǔ)法的調(diào)用就能解決大部分的問(wèn)題。
5.應(yīng)用領(lǐng)域
A、Python的應(yīng)用領(lǐng)域主要在游戲開(kāi)發(fā)、搜索引擎、圖形圖像處理、腳本開(kāi)發(fā)等。
B、Java的應(yīng)用領(lǐng)域主要是服務(wù)器開(kāi)發(fā),web開(kāi)發(fā)和安卓開(kāi)發(fā)等。
C、Python和Java都各有優(yōu)點(diǎn),應(yīng)用的領(lǐng)域也不同