Python和Java到底有什麼區別?這12點告訴你答案

Python和Java到底有什麼區別?這12點告訴你答案

好多初學編程的小夥伴在問:“Python和Java到底有什麼區別?到底是學Python還是Java。“

一副惆悵的樣子,難以下手。

今天,給大家總結了關於兩者的十二點區別。

一、實話實話,Python虛擬機沒有java強,java虛擬機是java的核心

Python的核心是可以很方便地使用c語言函數或c++庫。


二、Python是全動態性的

可以在運行時自己修改自己的代碼,java只能通過變通方法實現。

Python的變量是動態的,而java的變量是靜態的,需要事先聲明,所以java ide的代碼提示功能優於Python ide。

三、設計思想

Python的產生幾十年了,幾十年前面向過程是主流,所以用Python有好多程序用的是面向過程設計方法,很多概念從c語言過來的,class在Python中是後加入的,而java是為了實現沒有指針的c++(當年com組件用的引用記數,java用的虛擬機),主要採用面向對象的設計方法,很多概念是oop的概念。

面向過程,相對簡潔直觀,但容易設計出麵條程序,面向對象,相對抽象優雅,但容易過度抽象。


四、在實際使用的Python入門簡單

但要學會用Python幹活,需要再學習Python各種庫,Python的強大在於庫,為什麼Python的庫強大,原因是python的庫可以用python,c語言,c++等設計,再提供給python使用。

所以無論gpu運行,神經網絡,智能算法,數據分析,圖像處理,科學計算,各式各樣的庫在等著你用。

而java沒有Python那麼多的開源庫,很多庫是商業公司內部使用,或發佈出來只是一個jar包,看不到原始代碼。

Python虛擬機因為編譯性沒有java的支持的好(或者說故意這麼設計的),一般直接使用源碼(linux),或源碼簡單打個包(如pyexe)。


五、Python有很多虛擬機實現

如cython,Pyston,pypy,jython, IronPython等等,適合用於業務語言,或插件語言,或面向領域語言,而java因為虛擬機巨大,很少用於插件語言,發佈也不方便。


六、java主要用於商業邏輯強的領域

如商城系統,erp,oa,金融,保險等傳統數據庫事務領域,通過類似ssh框架事務代碼,對商業數據庫,如oralce,db2,sql server等支持較好,軟件工程理念較強,適合軟件工程師的多人開發模式。

Python主要用於web數據分析,科學計算,金融分析,信號分析,圖像算法,數學計算,統計分析,算法建模,服務器運維,自動化操作,快速開發理念強,適合快速開發團隊或個人敏捷模式。


七、java的商業化公司支持多

如sap,oracle,ibm等,有商業化的容器,中間件,企業框架ejb。python的開源組織支持多,如qt,linux,google,很多開源程序都支持python, 如pyqt,redis,spark等。


八、Python用途最多的是腳本,java用途最多的是web

Python是膠水,可以把各類不相關的東西粘在一起用,java是基佬,可以通過軟件工程組成幾百個人的團隊和你pk,商業化氣息重。

不過我認為還是Python強大,因為可以方便調用c或c++的庫,但軟件工程和商業化運作沒有java好,適合快捷開發。


九、關於錢

如果你想寫程序賣軟件用java,可用上ibm服務器,上oracle數據庫,上EMC存儲,價格高,商業採購公司喜歡這種高大上。

如果你要直接用程序生成金錢用Python,Python可以實現寬客金融,數據回測,炒股,炒期權,炒黃金,炒比特幣,對沖套利,統計套利,有很多開源庫,數據分析庫,機器學習庫可以參考。


十、java和Python,都可以運行於linux操作系統

但很多linux可以原生支持Python,java需要自行安裝。

Java和Python強於c#的原因大於支持linux,支持osx,支持unix,支持arm。java和python比c++受歡迎的原因在於不需要指針。


十一、對於移動互聯網

Python只能通過運行庫運行於安卓或ios,java原生支持安卓開發,但不能用ios中。


十二、對於大數據

Hadoop用Java開發的, Spark用Scala開發,Scala基於JVM,Flink也是基於Java.大數據開發選Java,Python主要用於大數據分析。


關注小咖編程Gzhong號,領取Python資料


分享到:


相關文章: