回覆列表
  • 1 # IT職業思考與自媒體

    我的感覺是大資料用java,人工智慧用python。但是程式語言選擇不是很重要,效能或許有點不同。語言自身的效能常常是我們在開發複雜架構時決定到底使用哪種語言的一個關鍵因素,而且這一因素常常被過度誇大。實際上真正重要的是我們如何使用一種語言,正如Linus Torvalds所說,“低水平的程式設計師總在關心程式碼,而高水平的程式設計師則關注資料結構及其關係。”

    我的標準是最早系統實現用什麼語言,就用什麼程式語言學習。

    想一想Hadoop MapReduce,它最早用Java編寫。HDFS呢?也用Java來編寫。連Storm、Kafka和Spark都可以在JVM上執行(使用Clojure和Scala),這意味著Java是這些專案中的“一等公民”。另外還有像Google Cloud Dataflow(現在是Apache Beam)這些新技術,直到最近它們還只支援Java。

    使用Java讓你可以訪問一個龐大的生態系統(包括分析器、偵錯程式、監控工具以及確保企業安全和互操作性的庫),以及除此之外的更多內容,大多數內容在過去二十年已久經考驗(很遺憾,Java今年迎來21歲,我們都老矣)。

    當然現在支援其他語言包的API都有,但是從歷史沿革的角度看,我覺得是bigdata用java,AI用python。

  • 2 # IT少女

    實際上,Java本來就是從C++衍生出來的, 而且Java語言的物件模型幾乎就是C++物件模型的簡化版。然而,C++和Java之間仍存在一些顯著的差異。

    java語言另闢蹊徑,充分考慮程式設計師們為了應對複雜多變的應用開發,降低開發成本,提高程式碼複用,選擇了程式設計效率優先這條路。java語言的設計者希望語言可以做到跨平臺(write once,run anywhere)。那麼如何做到跨平臺呢,java的解決方案是:在作業系統和應用程式間加入一層虛擬機器,虛擬機器負責遮蔽平臺差異,而應用程式編譯後生成的是位元組碼(bytecode),虛擬機器透過載入位元組碼執行,這樣就能夠滿足一份程式在不同平臺都生成相同規範的位元組碼從而做到跨平臺,此外各大商業公司、開源社群提供了功能強大的庫供java程式設計師使用,效率能不高嗎? 為了消除記憶體分配和記憶體回收工作量,虛擬機器還需要負責記憶體的分配和回收。

    Java是一種優秀的程式設計語言,相對而言,Java更容易學習,並且程式設計環境更為簡單。

    1.Java為純面向物件的語言,能夠直接反應現實生活中的物件,容易理解,程式設計更容易。

    2.跨平臺,java是解釋性語言,編譯器會把java程式碼變成中間程式碼,然後在JVM上解釋執行,由於中間程式碼和平臺無關因此,java語言可以跨平臺執行,具有很好的移植性。

    3.Java提供了很多內建的類庫,簡化了開發人員的程式設計工作,縮短了專案的開發時間。例如,Java語言提供了對多執行緒的支援,提供了對網路通訊的支援,最重要的是提供了垃圾回收器,這使得開發人員從對記憶體的管理中解脫出來。

    4.去除了C++語言中難以理解、容易混淆的特性,例如標頭檔案、指標、結構、單元、運算子過載、虛擬基礎類、多重繼承等,使得程式更加嚴謹、簡潔。

    Java 是純粹的面嚮物件語言,它因統一的位元組碼檔案和差異化的 JDK 而具有平臺無關的特性。

    Java 內建豐富的類庫,使開發者效率大為提升。它支援 web,廣泛應用於各大網際網路企業的網站後臺,像阿里美團都在使用。

    Java 的安全性也很出眾,透過沙箱安全模型保證其安全性,能夠有效防止程式碼攻擊。

    Java 也具備很強的健壯性,比如它是強型別的,支援自動化的垃圾回收器,有完善的異常處理機制和安全檢查機制。

    一般學大資料首先學的就是java基礎,java很多時候雖然複雜,或者是執行有些慢,但是很穩定。

    總結:

    Java其實也是由C++發展而來,保留了C++的大部分內容,其程式設計方式類似於C++,但是摒棄了C++的諸多不合理之處,從根本上解決了C++的固有缺陷。使得Java句法更清晰,規模更小,更易學,同時更趨於健壯性,安全性和平臺無關性。

  • 中秋節和大豐收的關聯?
  • 為什麼說腎病患者更容易患心血管疾病?