1. 程式人生 > 其它 >Java的第一天學習

Java的第一天學習

1.Java概述

  • 計算機語言的概述

    • 計算機語言是人與計算機之間傳遞資訊的媒介,我們想要計算機去執行我們的命令就要使用計算機可以看明白的語言去操作計算機。

  • Java語言發展歷史

    • Java語言之父

      • 詹姆斯·高斯林 James·Gosling

    • Java語言的雛形

      • 1991年,Gosling所在的團隊啟動了一個叫做Green Project的專案,這個專案的為了可以遠端控制傢俱家電(類似於現在的天貓精靈可以控制電飯煲,窗簾等),Gosling剛開始使用的C++語言進行專案的開發,但是後來發現C++不足以滿足這個專案的要求,所以自己開始在C++的基礎上設計了一門新的語言,由於當初他辦公室窗戶旁邊有一顆橡樹,於是這門語言的便叫做Oak也就是橡樹的意思,這就是最早Java語言的雛形。

      • 後來由於已經有一門其他的語言叫做Oak了,於是Gosling請市場部門的人找來了一個命名顧問,召開了命名徵集會,按照大家所選的名稱次序排成表上交給了命名顧問,第一個名字是Silk(絲綢)但是Gosling本人堅決反對,Gosling本人喜歡的名稱叫做Lyric(抒情詩)但是由於當時法律限制沒辦法通過這個名字,就選擇了大家都可以接受的並且符合當時法律的Java作為了新語言的名稱。

      • Java這個提議是由馬克·奧玻曼提出的,當時他在和咖啡館和同事喝咖啡,印度尼西亞的爪哇島因為生產咖啡而聞名,所以Java的圖示是一個咖啡杯的樣式一直沿用至今。

  • Java語言的版本程序

    • 1996年1月 Java 1.0面世到2002年2月 Java 1.4釋出。

    • 2004年 Java 1.5釋出,這是一個里程碑式的版本,所以之後更名為Java 5.0來表示其重要性,代號老虎(Tiger)

    • 2011年 Java 7釋出,代號海豚(Dolphin).

    • 2014年 Java 8釋出,代表蜘蛛(Spider).

    • 2018年8月 Java 11釋出,這是Java大版本週期變化後第一個長期支援版本,會更新到2026年9月.

  • Java語言跨平臺原理

    • 我們直接寫完的Java程式並不是直接在Windows或者Linux這樣的作業系統中執行的,而是會通過Java編譯器將這個Java程式編譯為.class位元組碼檔案(也就是將我們寫的Java程式翻譯成計算機可以識別的程式),然後由JVM虛擬機器對位元組碼檔案進行執行,最終我們程式是由JVM進行執行的而非Windows或者Linux,Unix作業系統執行,所以我們只需要安裝對應作業系統版本的JVM虛擬機器即可實現Java程式的跨平臺實現。

    • Java語言可以跨系統執行,JVM虛擬機器不可以跨系統執行,每個作業系統都有自己的JVM虛擬機器。

  • JER和JDK以及JVM

    • JVM(Java Virtual Machine):執行Java程式的載體,Java虛擬機器。

    • JRE(Java Runtime Environment):Java執行環境,其中JRE包含了JVM以及Java的核心類庫(Java API)

    • JDK(Java Development Kit):Java開發工具,包含了JRE以及我們開發Java程式時候需要的一些工具。

      我們作為Java開發人員,只需要安裝JDK即可編寫Java程式並執行除錯。

  • JDK的下載與安裝

    • ORACLE官方網站

    • 注意:

      • 針對不同的版本需要現在的JDK版也不同,Windows系統請下載Windows x64版本,OSX系統請下載Max OS X版本.

      • JDK的安裝路徑不要帶有中文和空格以及特殊符號,否則後期可能會出現錯誤.

  • JDK的目錄

    目錄名稱說明
    bin 該路徑下存放了JDK的各種工具命令。javac和java就放在這個目錄。
    conf 該路徑下存放了JDK的相關配置檔案。
    include 該路徑下存放了一些平臺特定的標頭檔案。
    jmods 該路徑下存放了JDK的各種模組。
    legal 該路徑下存放了JDK各模組的授權文件。
    lib 該路徑下存放了JDK工具的一些補充JAR包。

2.第一個Java程式

  • 常用的DOS命令

    • 為什麼要使用DOS命令

      • 在接觸整合式開發環境之前,我們想要執行一個Java程式,就必須使用命令列視窗對寫好的Java程式進行編譯並且執行,所以需要知道一些常用的DOS命令用來對計算機進行操作。

    • 開啟命令列視窗的方式

      • 使用快捷鍵Windows+R開啟執行視窗

      • 在執行視窗中輸入cmd並且回車即可開啟執行視窗

    • 常用的DOS命令

    操作說明
    碟符名稱: 碟符切換。E:回車,表示切換到E盤。
    dir 檢視當前路徑下的內容。
    cd 目錄名稱 進入單級目錄。cd itheima
    cd .. 回退到上一級目錄。
    cd 目錄1名稱\目錄2名稱... 進入多級目錄。cd itheima\JavaSE
    cd \ 回退到碟符目錄。
    cls 清屏。
    exit 退出命令提示符視窗。
  • Path環境變數的配置

    • 為什麼要配置Path環境變數

      • Path變數是告訴作業系統的可執行檔案所在的路徑的,可以理解為當我們想要執行某個exe檔案時,作業系統預設開始從當前目錄查詢這個命令,如果查詢不到,作業系統就會去Path中所設定的路徑去尋找其中的目錄並且搜尋目錄下是否該命令,如果有有該命令則執行,沒有該命令則顯示無法執行。

    • 如何配置Path環境環境變數(Windows10)

      • 右鍵點選“此電腦”,選擇“屬性”,在屬性介面選擇“高階系統設定”,然後選擇“高階”選項卡中的“環境變數”.

      • 在系統變數中,新建系統變數,變數名:JAVA_HOME,變數值:JDK的安裝目錄(到bin目錄的上一層).

      • 編輯Path變數,新增:"%JAVA_HOME%\bin,並將其上移到第一行.

      • 重新開啟DOS視窗,輸入java命令,驗證是否配置成功.

      Windows7系統請注意最好先把Path變數複製出來,然後在txt檔案中對其進行操作,然後再貼上回去。

  • HelloWorld案例

    • HelloWorld案例是當我們學習每一門語言的時候最開始學習的案例,主要目的是為了讓我們在控制檯顯示"HelloWorld"這句話。

    • HelloWorld案例的編寫

      • 右鍵新建文字文件,建立名稱為HelloWorld.java

      • 用記事本開啟HelloWorld.java檔案,書寫程式內容。

      • public class HelloWorld{
        public static void main(String[] args){
        System.out.println("Hello World");
        }
        }
    • HelloWorld案例的編譯與執行

      • 開啟DOS命令列視窗,通過命令進入到HelloWorld.java檔案所在的資料夾.

      • 使用javac HelloWorld.java對檔案進行編譯,如果生成了HelloWorld.class位元組碼檔案,代表我們成功編譯了該檔案.

      • 使用java HelloWorld執行Java程式,如果控制檯輸出了Hello World,代表我們成功運行了該檔案.

    • javac命令和java命令

      • 之前講過我們並不是直接在作業系統中執行Java檔案,而是先要將Java檔案編譯為位元組碼檔案然後在JVM虛擬機器中進行執行,所以我們需要學習兩個命令.

      • javac:編譯命令,負責將.java檔案編譯為.class位元組碼檔案,當編譯成功之後,會在當前目錄生成同名的.class檔案.

        • 格式: javac 檔名.java

        • 例子: javac HelloWorld.java

      • java:執行命令,負責在JVM虛擬機器中執行.class位元組碼檔案.

        • 格式: java 檔名

        • 例子: java HelloWorld

      • 注意

        • 使用java命令時,後面只加檔名即可,不需要加.class.

        • 正確:java HelloWorld

        • 錯誤:java HelloWorld.class

  • HelloWorld案例的常見問題

    • 什麼是BUG

      • 在電腦系統或者程式中,隱藏著一些未被發現的缺陷或問題統稱為bug(漏洞/錯誤).

    • 遇見BUG如何處理

      • 具備識別BUG的能力:多看.

      • 具備分析BUG的能力:多思考,多查資料.

      • 具備解決BUG的能力:多嘗試,多總結.

    • HelloWorld案例常見問題

      • 非法字元問題,Java中的字元都是英文格式的,有些輸入法預設是中文格式導致輸入了中文符號.

      • 大小寫問題,Java對於大小寫敏感,需要嚴格區分大小寫.

      • 在系統中未顯示拓展名問題,請在系統設定中開啟檔案字尾名選項,要不然可能會出現HelloWorld.java.txt的問題.

      • 使用javac命令編譯的java檔案需要加.java字尾.

      • 使用java命令執行的class檔案不需要加.class字尾.

      • Java中類名和檔名不一致問題,可能會導致編譯之後無法執行.

  • NotePad++軟體的安裝與使用

    • NotePad++軟體的配置

      • 因為NotePad++支援多種計算機語言編碼,但是我們學習是Java語言,所以新建檔案的時候,我們需要設定成使用Java語言模板進行建立並且更改對應的編碼字元.

      • 1.開啟選單欄的設定按鈕,在左邊選單欄選擇新建選項.

      • 2.預設語言更改為Java,編碼使用ANSI編碼.

3.Java基礎語法

  • 註釋

    • 什麼是註釋

      • 註釋就是對程式碼的解釋和說明,其目的是讓人們能夠更加輕鬆地瞭解程式碼。可以讓檢視程式碼的人直觀的理解當前的程式碼的作用和目的。

    • 註釋的分類

      • 單行註釋

        • 格式 //註釋內容

          class HelloWorld{
          public static void main(String[] args){
          //這是單行註釋
          System.out.println("Hello,World");
          }
          }
        • 作用 從//開始到本行結尾的內容都是註釋內容.

      • 多行註釋

        • 格式 /* 註釋內容 */

        class HelloWorld{
        public static void main(String[] args){
        /*
        這是多行註釋.
        這是多行註釋.
        這是多行註釋.
        */
        System.out.println("Hello,World");
        }
        }
        • 作用 使用/* 和 */將一段較長的註釋括起來.

      • 文件註釋

        • 格式 /** 註釋內容 */

        • 作用 在IDE呼叫方法的時候可以看到對於方法的解釋,之後會講.

  • 關鍵字

    • 什麼是關鍵字

      • 關鍵字是Java語言中裡事先定義的,有特別意義的識別符號.

    • 關鍵字的特點

      • 關鍵字的字母都是小寫.

      • 常用的程式碼編輯器對於關鍵字都會有高亮顯示,比如public,class,static等.

      • 不建議使用關鍵字對之後的變數進行命名,否則會造成系統無法識別.

  • 常量

    • 什麼是常量

      • 在程式執行的過程中,其值不可以發生改變的量.

    • Java中常量的分類

      • 字串常量

        • 格式:用雙引號""括起來的資料,雙引號可以不寫資料,也可以寫多個數據.

        • //列印字串型別的常量
          System.out.println("死亡如風,常伴吾身.");
      • 整數常量

        • 格式:整數型數字(正整數和負整數都屬於整數常量)

        • //列印整數型別的常量
          System.out.println(1212);
          System.out.println(-1314);
      • 小數常量

        • 格式:小數型數字(正小數和負小數都屬於小數常量)

        • //列印小數型別的常量
          System.out.println(25.3);
          System.out.println(-3.1415);
      • 字元常量

        • 格式:用單引號括起來的一個字元,單引號中必須寫資料,而且只可以寫一個數據.

        • //列印字元型別的常量
          System.out.println('A');
          System.out.println('9');
          System.out.println('$');
      • 布林常量

        • 格式:布林值,表示真和假,真用true表示,假用false表示,布林值只有真和假,沒有第三個資料.

        • //列印布林型別的常量
          System.out.println(true);
          System.out.println(false);
      • 空常量

        • 格式:一個特殊的值,代表空,用null表示.

        • null值是一個特殊值,不可以列印.

  • 資料型別

    • 計算機中的儲存單元

      • 計算機中可以儲存資料,包括硬碟,記憶體,行動硬碟等都可以存放大量資料,那麼不管是硬碟還是記憶體,都屬於計算機儲存裝置,那麼計算機儲存裝置中儲存的最小資訊單元叫做"位(bit)",也稱為位元位,通常用小寫字母"b"表示。

      • 由於bit這個概念太過於的小,我們一般使用位元組來表示檔案的大小,計算機中最基本的儲存單元叫做"位元組(byte)",通過用大寫字母"B"表示.

      • 一個位元組是由連續的八個位組成的.

    • 計算機中的常用的儲存單位換算

      • 1B = 8bit -> 1位元組等於8位元位.

      • 1KB = 1024B -> 1千位元組等於1024位元組.

      • 1MB = 1024KB -> 1兆等於1024千位元組.

      • 1GB = 1024MB -> 1吉等於1024兆.

      • 1TB = 1024GB -> 1太等於1024吉.

      • 還有拍位元組PB,艾位元組EB,澤位元組ZB,堯位元組YB與之前的單位換算都是1024,但是那些單位太過於龐大,我們暫時不接觸.

    • Java中的資料型別

      • Java是一個強型別語言,Java中的資料必須明確資料型別.

      • Java中的資料型別分為兩種 基本資料型別和引用資料型別.

      • Java中的基本資料型別->四類八種

        • 整數型別

          • byte -> 記憶體佔用1位元組 取值範圍是:-128-127

          • short -> 記憶體佔用2位元組 取值範圍是:-32768~32767

          • int(預設) -> 記憶體佔用4位元組 取值範圍是:-2的31次方到2的31次方-1

          • long -> 記憶體佔用8位元組 取值範圍是:-2的63次方到2的63次方-1

        • 浮點型別

          • float -> 記憶體佔用4位元組 取值範圍:負數:-3.402823E+38到-1.401298E-45

            正數:1.401298E-45到3.402823E+38

          • double(預設) -> 記憶體佔用8位元組 取值範圍:負數:-1.797693E+308到-4.9000000E-324

            正數:4.9000000E-324到1.797693E+308

        • 字元型別

          • char -> 記憶體佔用2位元組 取值範圍:0-65535

        • 布林型別

          • boolean -> 記憶體佔用1位元組 只有兩個值true false

      • 在Java中整數預設是int型別,浮點數預設是double型別.

  • 變數

    • 什麼是變數

      • 在程式執行過程中,其值可以發生改變的量就是變數。

      • 從本質上講變數就是記憶體中的一塊空間,其值可以在一定範圍內變化.

    • 變數的定義

      • 資料型別 變數名 = 初始化值; (宣告變數並賦值)

      • 資料型別 變數名;

        變數名 = 初始化值;

      • 我們還可以在一行程式碼中定義多個同一種資料型別的變數,中間使用逗號隔開,但是不建議使用這種方式,降低程式的可讀性.

    • 變數如何使用

      • 通過變數名稱進行訪問

    • 使用變數時的注意事項

      • 在同一對花括號中,變數名不可以重複.

      • 變數在使用之前,必須賦值.

      • 定義long型別變數時,需要在正數的後面加L(大小寫均可,但是為了可讀性推薦使用大寫L),因為整數預設是int型別,整數太大可能超過int範圍.

      • 定義float型別變數時,需要在小數的後面加F(大小寫均可,但是為了可讀性推薦使用大寫F),因為浮點數的預設型別是double,double的取值範圍是大於float的,兩者型別不相容.

      • 變數值在當前的大括號中有效,大括號外面訪問不到裡面定義的變數.

  • 識別符號

    • 什麼是識別符號

      • 識別符號是使用者程式設計時使用的名字,用於給類/方法/變數/常量等命名。

    • Java中識別符號的組成規則

      • Java中的識別符號是由字母,數字,下劃線_,美元符號$組成.

      • Java中的識別符號不可以使用Java中的關鍵字.

      • 識別符號對大小寫敏感(區分大小寫).

    • Java中識別符號的命名約定

      • 小駝峰命名

        • 首字母小寫,從第二個單詞開始的每個單詞的首字母大寫.

        • 小駝峰命名一般用在變數名,方法名.

      • 大駝峰命名

        • 每個單詞的首字母都大寫.

        • 大駝峰命名一般用於類名.

      • 對於識別符號命名要做到見名知意.

4.鍵盤錄入

Scanner類的基本使用步驟

  • 導包

    • 導包需要在public class 類名的上面進行匯入.

    • import java.util.Scanner;

  • 建立Scanner輸入物件

    • Scanner sc = new Scanner(System.in);

  • 接收資料

    • int x = sc.nextInt();