1. 程式人生 > >對比java和python對比

對比java和python對比

區別
一、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各種庫,pyhton的強大在於庫,為什麼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,pyhotn是膠水,可以把各類不相關的東西粘在一起用,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再分析更方便