天天看點

python的class和java的class差別-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各種庫,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再分析更友善。