java

一、介紹

介紹-----java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承指針

             等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作爲靜態面向對象編程語言的代表,

             極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

特性----Java具有簡單性、面向對象、分佈式健壯性安全性、平臺獨立與可移植性、多線程、動態性等特點。Java

             可以編寫桌面應用程序Web應用程序分佈式系統嵌入式系統應用程序等  

本質----java是一個平臺(jvm+api),將java源碼編譯文件可以在已經安裝jvm的任何硬件上運行。java獨立於平臺,會

            比本地代碼稍慢,但是編譯和虛擬機技術可以降低這種影響。

            jvm:虛擬機,編譯文件基於虛擬機在硬件上運行。

            api:是現有軟件元素的集合,能提供許多有用的特性,被劃分爲許多相關類和接口的庫,這些庫就是包。

作用---- java可以完成以下功能。    

            1.開發工具
                       涉及編譯(javac),運行(java),監視,調試和文檔生成(javadoc)

            2.編程接口 API
                       提供 Java 編程語言的核心功能

             3.部署
                       JDK 按標準機制,將應用展現給終端用戶
                       如:ava Web Start 和 Java Plug-In

             4.用戶接口工具集
                       藉助 JavaFX,Swing 和 Java 2D,Java 能夠創建複雜的圖形用戶接口

             5. 集成庫
                       通過Java RMI-IIOP Technology協議,集成庫,如 Java IDL API, JDBC API, JNDI API

                       Java RMI, Java Remote Method Invocation,能夠訪問數據庫,並操縱遠程對象。

 java組成

        

         jdk(java development kit):指開發工具,一般jdk包含對應版本的基礎jar包以及一些開發開發當中可能

                                                     需要用到的工具;jre

         jre(Java Runtime Environment):指java運行環境,包含lib類庫(jvm運行class文件之前需要調用該類庫進

                                                            行文件解釋);jvm,即運行通過jvm來實現

         jvm(java virtuak machine):指虛擬機,執行經過編譯的class文件。

         一般下載一個版本解壓之後包含兩個子文件夾:

                  1.jdk文件夾:jdk和jre( java 開發環境時會優先去這裏找對應的jre)  

                  2.jre文件夾:jre(只運行java程序,不具備開發功能,在命令行中只能執行java指令,不能運行javac指令)

                  以上兩者也可單獨下載與安裝。

      2.下載

         2.1.版本介紹

             從應用上類型上分爲三個版本:

             java SE:是做電腦上運行的軟件

             java EE:是用來做網站的(我們常見的jsp技術)

             java SM:是用來做手機上運行的軟件

          作爲開發者學習和開發中用的一般都是java se後面的介紹都是以這個版本爲主。對於這個版本目前已經更新

          到1.9版 本,個版本介紹如下:

          1.5版本之前:略

          1.5新特性:

                1.自動裝箱與拆箱:原始類型與對應的包裝類不用顯式轉換  

ArrayList list=new ArrayList()----------->ArrayList<Integer>list=new ArrayList<Integer>();

                2.靜態導入:通過使用 import static,就可以不用指定 Constants 類名而直接使用靜態成員,包括靜態方法。

Math.sqrt();----------->sqrt();

                3.For-Each循環:For-Each循環得加入簡化了集合的遍歷。

for(i=0;i<a.length;i++){......}----------->for(int i:a){......}

                 4.泛型:可以指定集合的元素類型。     

ArrayList list=new ArrayList()----------->ArrayList<Integer>list=new ArrayList<Integer>();

                 5.變長參數:有任意個參數,看作數組。

int sum(int ...intlist)

      1.6新特性:

                1.使用Compiler API

                2.輕量級Http Server API

      1.7新特性

                1.switch中可以使用字符串

String s = ... 
         switch(s) { 
         case "quux": 
              processQuux(s); 
     // fall-through 
         case "foo": 
   case "bar": 
              processFooOrBar(s); 
     break; 
         case "baz": 
        processBaz(s); 
              // fall-through 
   default: 
              processDefault(s); 
            break; 
} 

               2.對集合類的語言支持:Java將包含對創建集合類的第一類語言支持。這意味着集合類的創建可以像Ruby和Perl那樣了
               (下面的這些集合是不可變的)

之前版本: 
         List<String> list = new ArrayList<String>(); 
         list.add("item"); 
         String item = list.get(0); 
   
         Set<String> set = new HashSet<String>(); 
         set.add("item"); 
         Map<String, Integer> map = new HashMap<String, Integer>(); 
         map.put("key", 1); 
         int value = map.get("key"); 
現在版本: 
         List<String> list = ["item"]; 
         String item = list[0]; 
         
         Set<String> set = {"item"}; 
         
         Map<String, Integer> map = {"key" : 1}; 
         int value = map["key"]; 

         1.8新特性:

                1.HashMap中的紅黑樹:HashMap中鏈長度大於8時採取紅黑樹的結構存儲。

                   紅黑樹除了添加情況之外,其他時候的效率高於鏈表結構

                2.ConcurrentHashMap:底層採用node數組+鏈表+紅黑樹的存儲結構,通過CAS算法(樂觀鎖機制)+synchronized

                   來保證併發安全的實現。

put()方法過程:
1) 根據key的hash值數組中相應位置的Node還未初始化,則通過CAS插入相應的數據;
2) 如果相應位置的Node不爲空,且當前該節點不處於移動狀態,則對該節點加synchronized鎖,如果該節點的hash不小於0,則遍歷鏈表更新節點或插入新節點;
3) 如果該節點是TreeBin類型的節點,說明是紅黑樹結構,則通過putTreeVal方法往紅黑樹中插入節點;

                3.接口中可以有默認方法與靜態方法,也就是接口中可以有實現方法

                   默認方法中的default不可省略,子類重寫時候,必須去掉default修飾符

                4.Lambda表達式:lambda表達式的使用簡化了代碼。

          1.9新特性:

               暫略

          1.10新特性:

               暫略

      2.2 下載

             進入oracle官網進行下載:https://www.oracle.com/index.html(官網上已經不對外開發下載1.7版本)

            下載步驟:

            第一步:按如圖紅色方框找到java overview並點擊進入

                         

            第二步:滑到頁面底部點擊如框所示部分

                         

            第三步:選擇自己需要的版本,這裏以選1.8爲例

                         

           第四步:選擇與電腦適配的版本進行下載

                        

3.安裝

      4.環境變量配置

      5.常用開發工具中的配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章