◆貼近硬件,運行極快,效率極高。
◆操做系統,編譯器,數據庫,網絡系統等
◆指針和內存管理java
◆面向對象
◆兼容C
◆圖形領域、遊戲等web
20世紀90年代,硬件領域出現了單片式計算機系統。爲了搶佔市場Sun公司在1991年成立了一個稱爲Green的項目小組,其目的是開拓消費類電子產品市場。因爲C++的優點,考慮採用C++編寫程序。但對於硬件資源極其匱乏的單片式系統來講,C++程序過於複雜和龐大,另外因爲消費電子產品所採用的嵌入式處理器芯片的種類繁雜,如何讓編寫的程序跨平臺運行也是個難題。所以,對易於移植到各類設備上的平臺需求呼聲很高數據庫
到了1994年下半年,正當Green小組遭受挫折的時候,互聯網(internet)的迅猛發展促進了Java語言研製的進展,Sun公司意識到了Java的技術潛能,推出了徹底用Java編寫的新型瀏覽器HotJava,使得Java逐漸成爲互聯網上受歡迎的開發與編程語言。編程
Java 2標準版(J2SE): 去佔領桌面
Java 2移動版(J2ME): 去佔領手機
Java 2企業版(J2EE): 去佔領服務器瀏覽器
基於Java開發了巨多的平臺,系統,工具
◆構建工具: Ant, Maven, Jekins
◆應用服務器: Tomcat, Jetty, Jboss, Websphere, weblogic
◆Web開發: Struts ,Spring,Hibernate, myBatis
◆開發工具: Eclipse, Netbean,intellij idea, Jbuilder
◆2006 : Hadoop (大數據領域)
◆2008 : Android (手機端)安全
高可用,高性能,高併發服務器
採用C語言語法並去掉一些複雜概念網絡
Java編譯器生成了與體系結構無關的字節碼文件,任何種類的計算機,只有在其處理器和操做系統上有Java運行環境,字節碼文件就能夠在該計算機上運行多線程
分佈式語言,跨平臺高併發,高性能,互聯網架構不二選擇架構
Java的動態性是其面向對象設計的擴展. 它提供運行時刻的擴展性, 即在後期才創建各模塊間的互連. 各個庫能夠自由地增長新的方法和實例(instance)變量. 這意味着現有的應用程序能夠增長功能, 只須連接新類封裝有所需的方法.
C++是多重繼承(multiple inheritance)的, 若某個超類(superclass) 改變了某個方法或變量, 其子類(subclass)必須從新編譯. Java則用接口(interface)來實現多級繼承, 使用起來比C++的多重繼承更靈活.
Java語言的動態性使它可以勝任分佈式系統環境下的應用, 位於各地的類能夠自由地升級, 而不影響原Java應用程序的運行.
反射,註解,動態代理,類加載機制
多線程能夠使應用程序同時進行不一樣的操做
JDK : Java Development Kit
JRE : Java Runtime Environment
JVM : JAVA Virtual Machine