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

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


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


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

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


一、實話實話,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開發,用Python調用spark再分析更方便。


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


分享到:


相關文章: