Java 第一天(純乾貨)(帶你14天瞭解並掌握Java SE)

今日內容

  • Java概述、開發環境搭建
  • Eclipse的概述、配置及使用
  • 註釋、關鍵字、常量、變量、數據類型、標識符

01. Java語言概述

  • Java語言是誰在哪個公司開發的?
  • Java語言平臺分爲?
總結:
    1.  詹姆斯高斯林,在Sun公司開發,現在被Oracle收購
    2. 
        JavaSE: 是Java語言的基礎語法,可以實現一些桌面應用的開發(坦克大戰)
        JavaME: 用於嵌入式設備的開發(Nokia手機小遊戲)
                    已經退出歷史舞臺了
        JavaEE: 用於web方向網站的開發(京東,淘寶..)

                網站:基於前臺頁面,和後臺邏輯交互配合開發出來的一套系統。
                網頁:就是一套用於顯示數據的頁面,數據基本都是固定的。
  • 什麼是jdk?
    jdk就是Java給我們開發人員提供的一套【工具】包,java.exe javac.exe javadoc.exe
  • 什麼是jre?
    jre當中包含了我們所需要的【核心類庫】,簡單理解就是Java已經寫好的代碼,我們可以直接使用的。

        jre當中包含了JVM(java虛擬機).
  • 什麼是jvm?
    JVM(虛擬機),是我們運行Java程序需要的一個【載體】【平臺】

    換句話來說,如果電腦中沒有安裝JVM,是不能運行Java程序的.
  • 三者之間有什麼關係?
總結: 包含關係
        JDK -> JRE -> JVM.
  • Java語言的強大之處
* Java語言具備跨平臺性(一次編譯,到處運行)

    問題:java是如何實現跨平臺的?

            是因爲在不同的操作系統都安裝了對應版本的Java虛擬機.

    問題:JVM自身是否可以跨平臺?

            不可以!
  • jdk的平臺版本
    * jdk1.5    里程碑
    * jdk7 8    市面上最常見的兩個版本,也是最穩定的兩個版本
    * jdk11     18年最新的版本

02. Java開發環境搭建

  • A:JDK的下載

    • a:官網 http://www.oracle.com
    • b:演示下載流程
  • B:JDK的安裝

    • a:傻瓜式安裝
    • 雙擊安裝程序,然後一路next即可(但是不建議)
    • b:安裝的推薦方式
    • 安裝路徑不要有中文或者特殊符號如空格等。
    • 所有和開發相關的軟件最好安裝目錄統一。
      • 舉例:我的JDK安裝路徑
        • D:\develop\Java\jdk1.7.0_72
    • 當提示安裝JRE時,可以選擇不安裝。
    • c:演示安裝流程
    • 可以先在d盤建立一個文件夾develop
    • 然後演示安裝過程
  • C:驗證安裝是否成功

    • a:通過DOS命令,切換到JDK安裝的bin目錄下。
    • D:\develop\Java\jdk1.7.0_72\bin
    • b:然後分別輸入javac和java,如果正常顯示一些內容,說明安裝成功
  • D:爲什麼要配置path環境變量

    • 就是爲了在任意盤符下都能訪問到bin目錄中的工具.
    • 兩種配置方式

總結:

1: 無腦配置(不建議)

        直接複製絕對路徑到path當中

            弊端:這種配置方式,在就業班學習tomcat服務器的時候,配合會出現衝突問題。

2: JAVA_HOME(建議)

        1. 打開電腦 -> 右鍵 -> 屬性 -> 高級 -> 環境變量
        2. 在系統變量當中,新建一個JAVA_HOME,內部存放jdk的安裝目錄,不要進入到bin當中
        3. 找到path -> 編輯 ->  %JAVA_HOME%\bin;
  • 10分鐘時間安裝jdk並配置環境變量

03. Eclipse的概述

  • A: Eclipse的下載安裝
    • a: 下載
      • http://www.eclipse.org
    • b: 安裝
      • 只需要解壓後就能使用
        • 純綠色版
    • c: 卸載
      • 只需要將文件夾刪除就可以了
    • d: 注意
      • 開發軟件的安裝目錄中,儘量不要出現空格與中文
  • B: Eclipse的特點

    • a: 免費
    • b: 純Java語言編寫
    • c: 免安裝
    • d: 擴展性強
  • IDE(集成開發工具)

    • eclipse(基礎班)
    • myeclipse
    • IDEA(就業班)

04. Eclipse的基本使用(HelloWorld案例)

  • 基本使用(工作空間&新建工程&編譯運行)
  • A: Eclipse的工作空間和新建工程
* a: 工作空間
    *  其實就是我們寫的源代碼所在的目錄                     
* b: 創建工程(項目)
    * 右鍵/Package Explore 空白區/new /Project/Java Project/輸入項目名稱如day01/    
* c: 創建包
    * 打開上面建立的day02項目/右鍵/new/package/
        在彈出的對話框的name中輸入包名,如:"com.itheima.tests"/finish
* d: 創建類
    * 創建一個java類:右擊包名/new/class/在對話框的name中輸入類名/finish
  • B: 編譯與執行
* a: 編譯
    * 自動編譯,當java代碼保存的時候,自動 編譯class文件
* b: 運行
    * 方式1:點擊菜單工具欄中的 綠色帶有三角形的 run按鈕 運行
    * 方式2:點擊菜單欄中Run, 點擊Run 運行  快捷鍵是 ctrl+F11
    * 方式3:選中要運行的java文件,或者在編寫代碼的空白區域,右鍵選擇 Run As --> 運行java程序
  • 5分鐘時間練習, 創建一個Java類並運行

05. Eclipse工作空間的基本配置

  • A:行號的顯示和隱藏

    • 顯示:在代碼區域的最左邊的空白區域,右鍵 -- Show Line Numbers即可。
    • 隱藏:把上面的動作再做一次。
  • B:字體大小及顏色

    • a:Java代碼區域的字體大小和顏色: window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font
    • b:控制檯 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
    • c:其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font ** 只需要配置此處即可 **
  • C:窗體給弄亂了,怎麼辦?

    • window -- Perspective -- Reset Perspective
    • window -- Perspective -- save Perspective
  • D:控制檯找不到了,怎麼辦?

    • Window--Show View—Console
  • 5分鐘時間完成Eclipse的基本配置

06. Eclipse中項目的刪除和導入

  • A:刪除項目
    • 選中項目 – 右鍵 – 刪除
      • 從項目區域中刪除 從硬盤上刪除 --> 選項勾上
  • B:導入項目

    • 在項目區域右鍵找到import
    • 找到General,展開,並找到
    • Existing Projects into Workspace
    • 點擊next,然後選擇你要導入的項目
    • 注意:這裏選擇的是項目名稱

    • 熟練完成JDK的卸載和安裝

    • 熟練配置Path環境變量
    • 能夠在eclipse上,熟練的創建工程、包、類
    • 能夠在eclipse上完成HelloWorld案例的編寫,並可以看得懂,加入註釋說明。

07. 註釋的概述和分類

  • 什麼是註釋?
  • 註釋分爲哪些?
  • 分別如何編寫?
  • 註釋的注意事項?
總結:

    1: 註釋就是對代碼的一種解釋,方便我們程序員更好的去閱讀代碼
    2: 
        A. 單行註釋
        B. 多行註釋
        C. 文檔註釋 (TODO:後續課程講解)
    3:
        單行註釋 : //
        多行註釋: /* */
        文檔註釋: /** */
    4:

        註釋當中,只有是單行註釋允許嵌套

HelloWorld詳解: (必掌握!!!!!)

    // 這是通過class定義了一個類,類名叫HelloWorld  
    public class HelloWrold {
        // 這是程序的入口點
        public static void main(String[] args) {
            // 這是打印了一句話
            System.out.println("HelloWorld");
        }
    }

08. 關鍵字的概述和特點

  • 什麼是關鍵字?
  • 關鍵字有什麼特點?
總結:
    1: 被java賦予特殊含義的單詞 
    2: 所有字母全部小寫, 高級編輯器當中, 有顏色的高亮顯示.
  • 內容輔助鍵
>* 輔助鍵
    * alt + /
        * 生成main方法
        * syso輸出語句

>* 快捷鍵
    * 單行註釋
        * Ctrl + /   --> 取消的話, 重複操作即可
    * 多行註釋  
        * Ctrl + Shift + / -> 取消的操作, Ctrl + Shift + \
    * 格式化快捷鍵    
        * Ctrl + Shift + F

09. 常量的概述和分類

  • 什麼是常量?
  • 常量的分類?
總結:
    1: 在程序的執行過程中,其值不可以發生改變的數據
    2: 
        整數常量:所有整數
        小數常量:所有小數

        布爾常量:true  false
        字符串常量:被雙引號括起來的內容
        字符常量:被單引號括起來的內容,內部只能存儲一個字

        -------------------------------------
        空常量:    今天暫不講解,數組部分講解 null

10. 變量的概述和定義格式

  • 什麼是變量?
  • 變量的作用是什麼?
總結:
    1: 在程序的執行過程中,其值在【某個範圍內】可以發生改變的數據

    2: 就是在程序中創建了一塊內存空間(小盒子),用來記錄不斷髮生改變的常量
  • 變量的定義格式
數據類型 變量名 = 初始化值;

byte abc = 10;

11. 數據類型概述和分類

  • 爲什麼要有數據類型?
  • (基本)數據類型的分類爲?
總結:
    1:  Java是強類型語言,對於每一種數據都明確了具體的類型,並分配了不同大小的內存空間.
    2:  
        整數類型:(使用最多的是int)
            byte        1個字節        -128~127
            short       2個字節        
            int         4個字節        
            long        8個字節
        (浮點)小數類型:
            float(單精度)      4個字節
            double(雙精度)     8個字節
        布爾類型:
            boolean     1個字節    true false
                            回答:理論上來說,八分之一個字節就能表示他的大小,但是計算機當中最小的存儲單位是字節,所以它應該佔1個字節。
        字符類型:
            char        2個字節    0~65535

            // a = 97
            // A = 65
            // 0 = 48
            char c1 = ‘a’;
            char c2 = 65;
            char c3 = 48;

注意:
    所有整數默認都是int類型       
    所有小數默認都是double          
    定義float類型變量應該加F的標識
    定義Long類型變量應該加L的標識,建議使用大寫.

12. 標識符的組成和注意事項

  • 什麼是標識符?
  • 標識符的組成規則爲?
  • 標識符的注意事項?
總結:
    1: 就是自己給類,方法,變量...起的名字
            大白話:自己起的名字
    2:
        26個英文字母,大小寫
        數字0-9
        _ $ 

    3:
        A. 關鍵字不能最爲標識符
        B. 數字不能開頭
        C. 中間不能以空格隔開

13. 變量的定義和使用

  • 案例演示: 定義8種類型的變量並打印
  • 創建類, 創建包的快捷鍵
* byte,short,int,long,float,double

    * 問題:爲什麼float佔4個字節,long佔8個字節,float卻比long要大呢?

        * 因爲整數和小數,底層的二進制存儲結構不同.

            System.out.println(Float.MAX_VALUE - Long.MAX_VALUE);

* char,boolean

14. 變量定義的注意事項

總結:
     1. 變量名不允許重複
     2. 變量[使用之前]必須完成初始化
     3. 一條語句可以定義n個變量,但是中間需要通過逗號隔開

15. 類型轉換之隱式轉換

  • 什麼是數據類型的隱式轉換?
總結:
    1: 將小的數據,給大的數據類型賦值,可以直接賦值。

    2. 當小的數據類型和大的數類型做運算的時候,會先將小的,提升爲大的之後,再做運算。

舉例:
    1:  

        int i = 10; // 4個字節
        System.out.println(i);


        double d = i; // 8個字節
        System.out.println(d);

    2:
        byte a = 100;
        int b = 100;
        int c = a + b;

16. 類型轉換之強制轉換

  • 什麼是數據類型的強制轉換?
總結:
    1: 將大的數據類型,給小的數據類型賦值,不能直接賦值,需要強轉符號。
舉例:
    1:

        int i = 100;
        byte b = (byte)i;
        System.out.println(b);

格式:
    (要強轉的類型)將要轉換的值;

注意:
    如果強轉的值, 超過了數據類型的取值範圍, 那麼結果可能會跟我們期望的結果不同(損失精度)

    byte b = (byte)130;     -->  127
                            -->  -126

    爲什麼?? 以下內容
    ----------------------------------------------------------

    二進制,八進制,十進制,十六進制    


    二進制到十進制的轉換:
        圖解.
        注意: 如果想要書寫2進制數據的話, 需要以0b開頭  --> 0b100  --> 4
        8421碼

    二進制中的原碼,反碼,補碼:
        * 原碼
            * 就是二進制定點表示法,即最高位爲符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。
            * 通過一個字節,也就是8個二進制位表示+7和-7
            * 0(符號位)  0000111               
            * 1(符號位)    0000111
        * 反碼
            * 正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外
            * 1(符號位)    0000111
            * 1         1111000
        * 補碼
            * 正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。 
            * 11111001


        130的補碼:

        ‭00000000 00000000 00000000 10000010

        強轉後:

        補碼: 100000010
        反碼: 100000001
        原碼: 11111110

            計算:  1      1       1       1       1       1       1       0
                            64      32      16      8       4       2       1
  • 面試題
    byte b1=3,b2=4,b;

    ----------------------
    b=b1+b2;

    1. 因爲所有整數默認都是int類型,b1和b2兩個byte類型在做運算之前,會先各自提升爲int類型,然後再做運算
         兩個變量都提升爲int類型了,兩個int相加,結果還是int,將int數據賦值給byte,不能直接賦值,應該加入強轉。

    2. 因爲b1和b2是兩個變量,變量內部所記錄的值是不可控的,有可能相加之後的結果就超出了byte的取值範圍      
    ----------------------

    ----------------------      
    b=3+4;
    因爲3和4是兩個常量,Java有常量優化機制,在編譯的時候就會將3和4進行相加,然後看相加的結果是否在byte的取值範圍。
    ----------------------


    哪句是編譯失敗的呢?爲什麼呢?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章