天天看點

JAVA 基礎學習第一天擴充資料

01-Java概述

  • Java語言背景介紹

    • 語言:人與人交流溝通的表達方式
    • 計算機語言:人與計算機之間進行資訊交流溝通的一種特殊語言
    • Java語言是美國Sun公司(Stanford University Network)在 1995 年推出的計算機語言 Sun公司與Java更多資料
    • 公認的Java之父:詹姆斯·高斯林(James Gosling)
    • Java語言的三個版本
      • SE(J2SE),standard edition,标準版,用于桌面應用的開發,是其他兩個版本的基礎,從JDK5.0開

        始,改名為Java SE

      • EE(J2EE),enterprise edition,企業版,多用于Web方向的網站開發,從JDK5.0開始,改名為Java EE
      • ME(J2ME),micro edition,用于移動裝置、嵌入式裝置上的java應用程式,從JDK5.0開始,改名為

        Java ME

  • Java跨平台原理

    • 平台:指的是作業系統,常見的系統有
      • Windows
      • Mac
      • Linux
    • 跨平台:Java 程式可以在任意作業系統上運作
    • 總結Java跨平台原理:在需要運作 Java 應用程式的作業系統上,安裝一個與作業系統對應的Java虛拟機

      (JVM Java Virtual Machine)即可

    • 注意:JVM 虛拟機本身不允許跨平台,允許跨平台的是 Java 程式
  • JRE和JDK

    • 開發 Java 程式的三個步驟
      • 編寫代碼:書寫正确的代碼
      • 編譯代碼:找到該檔案位置 -> 使用javac進行編譯 -> 編譯成功産生一個.class檔案
      • 運作代碼:使用java密碼運作 - > 不帶檔案字尾
    • JRE、JDK、JVM的作用
      • JDK:JDK(Java Development Kit):java開發工具包,針對開發人員使用
        • 編譯代碼的過程中,需要使用 JDK 中的翻譯工具 javac
        • 運作代碼的過程中,需要使用 JDK 中的運作工具 java
      • JRE(Java Runtime Environment):是運作基于Java語言編寫的程式所不可缺少的運作環境
        • 編寫代碼的過程中,需要=使用 JRE 中 Java 已經寫好的代碼
      • JVM(Java Virtual Machine):就是我們常說的java虛拟機,它是整個java實作跨平台的最核心的部

        分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛拟機上執行

        • 代碼需要運作在 JVM 當中
    • JDK、JRE 和 JVM 的關系:JDK包含JRE包含JVM

      JDK、JRE、JVM及三個版本更多資料

  • JDK下載下傳和安裝

    • 下載下傳:類似于JDK這種安裝包,以後都要儲存起來,安裝包是一個程式員必備的工具,硬碟就是工具箱
    • 安裝:修改安裝目錄,安裝在develop檔案夾下即可

02-第一個Java程式

  • 常用DOS指令

    • 學習目的:為了能夠使用JDK的bin目錄中的(javac.exe)編譯和(java.exe)運作工具
    • 注意:JDK 提供的編譯和運作工具,并不是輕按兩下運作去使用的,正确使用方式:在 DOS 中通過指令去運作
    • 如何打開DOS視窗:按下 Win + R ,在運作輸入框中,輸入cmd,敲回車
    • 常用指令:盤符:、cd 目錄、dir、cd …、cls、exit
    • 快速在DOS打開某目錄:打開目标檔案夾,在最上面路徑單擊,全選,直接輸入cmd回車
  • Path環境變量的配置

    • 為什麼配置:能夠在任意目錄(檔案夾路徑)下, 都能通路到bin目錄中的javac和java工具
    • 配置位置:Win鍵+E,找到計算機右鍵屬性,進階系統設定,環境變量,在系統變量中配置
      • 建立系統變量 變量名為JAVA_HOME,變量值為jdk檔案夾全路徑
      • 輕按兩下Path,建立變量%JAVA_HOME%\bin
      • 三個确定都要點
      • 在DOS中直接輸入java或者javac檢測是否配置成功,如果出現一堆堆指令行,則為配置成功;如果顯示"不是内部或者外部指令…"則為配置失敗,回頭檢查上述幾個步驟
  • HelloWorld案例編寫和執行

    • HelloWorld中文意思是[你好世界,該程式的效果就是在控制台列印一段文字,内容為 HelloWorld,程

      序員在學習任何一門程式設計語言,第一個入門案例,都是 HelloWorld

    • 回顧開發Java程式的三個步驟:編寫代碼,編譯代碼,運作代碼
    • 操作流程:
      • 建立文本文檔檔案,修改名稱為HelloWorld,檔案字尾為java,彈框點确定
      • 用記事本打開HelloWorld.java檔案,輸寫正确代碼,Ctrl+S儲存
      • 打開DOS視窗,進入到HelloWorld.java所在的目錄,輸入指令編譯和執行
        • 編譯:javac 檔案名.java

          範例:javac HelloWorld.java

          執行:java 類名

          範例:java HelloWorld

      • 正确效果:在控制台成功列印HelloWorld
      • 報錯:檢視報錯提示,檢查對應的代碼,修改錯誤并儲存,重新編譯運作(寫代碼報錯是很常見的,

        不要害怕報錯)

  • HelloWorld案例常見問題

    • Bug是一個英文單詞,中文意思是指[昆蟲、小蟲、損壞、缺陷等意思],現在一般是指在程式中,出現的

      缺陷或問題,簡稱程式漏洞 bug的由來

    • 入門案例常見錯誤:
      • 檔案名與類名不一緻
      • 單詞拼寫錯誤:String、System首字母是大寫;public、class、static、void都是純小寫
      • 使用了中文标點:我們編碼過程中,必須使用英文小寫标點符号
      • 括号丢失:所有類型的括号,都是成雙成對出現的
  • Notepad軟體的使用

    • 安裝:修改安裝目錄,安裝在develop檔案夾下即可
    • 初始配置:設定 - 首選項 - 左邊單擊建立 - 預設語言選擇Java - 編碼選擇ANSI(避免中文亂碼)- 關閉
    • 進階記事本進階在哪?
    • 使用小技巧

03-基礎文法

  • 注釋

    • 概念:注釋是在程式指定位置添加的說明性資訊, 簡單了解,就是對代碼的一種解釋說明
    • 分類:
      • 單行注釋 //注釋資訊
      • 多行注釋
      • 文檔注釋 就業班使用
    • 注釋内容不參與編譯與運作,也是說計算機不識别注釋資訊
    • 注意:多行注釋不能嵌套使用
  • 關鍵字

    • 概念:被Java賦予了特殊含義的單詞
    • 特點:小寫高亮
    • 我們使用過的關鍵字:
      • public:權限修飾符,公共的意思,就業班會學到
      • class:代表這是一個類
      • static:靜态的意思,就業班會學到
      • void:void這個位置,是main方法的傳回值類型,代表傳回值為空,方法會學到
    • 其他單詞擴充:
      • main不是關鍵字,main是方法名,是Java開發人員起的
      • String不是關鍵字,是字元串,基礎班後面就會學到
      • args這個位置是參數清單,args是參數名,也是Java開發人員起的,改變不影響程式運作,但是不允

        許改變,并沒有意義

      • System是一個類,就業班會學到
      • println是列印的意思,列印并且換行,還可以寫為print,是列印不行換的意思(一行列印)
  • 常量

    • 概念:在程式的執行過程中,其值不會發生改變的量(資料)
    • 常量分類:
      • 字元串常量:用雙引号括起來的内容,例如 “HelloWorld”,“黑馬程式員”
      • 整數常量:不帶小數的數字,例如 150,-250
      • 小數常量:帶小數的數字,例如 3.14,-8848.43
      • 字元常量:用單引号括起來的單個内容,例如 ‘A’,‘6’,‘錢’
      • 布爾常量:布爾值,表示真假 隻有兩個值:true,false
      • 空常量:一個特殊的值,空值 值是:null,空常量不能直接列印
  • 變量介紹

    • 概念:變量就是記憶體中的存儲空間,空間中存儲着經常發生改變的量(資料)
    • 常量本質:記憶體中的一片可變區域
    • 變量定義格式:資料類型 變量名 = 資料值; 例如 int num = 10;
    • 計算機存儲單元:
      • 計算機儲存設備的最小資訊單元叫:位(bit),也稱為"比特位",用小寫的字母”b”表示
      • 計算機中最小的存儲單元叫:位元組(byte),用大寫字母"B"表示,1個位元組是由連續的8個位組成
      • 其他常用的存儲機關:
        • 1B(位元組) = 8bit

          1KB = 1024B

          1MB = 1024KB

          1GB = 1024MB

          1TB = 1024GB

          1PB = 1024TB

          ……

  • 資料類型

    • Java是一門強類型語言,對于每一種資料都給出了明确的資料類型,不同的資料類型也配置設定了不同的記憶體

      空間,是以它們表示的"資料大小"也是不一樣的

    • 分類:
      • 1.基本資料類型(四類八種)
        • 整數 byte、short、int(預設)、long
        • 浮點數 double(預設) float
        • 字元 char
        • 布爾 boolean
      • 2.引用資料類型
        • 類 class
        • 接口 interface
        • 數組 []
    • 資料類型記憶體占用和取值範圍(不需要死記硬背,真需要用到了查就行)
      • byte,占用1位元組,範圍:-128~127
      • short,占用2位元組,範圍:-32768~32767
      • int,占用4位元組,範圍:-2的31次方到2的31次方-1
      • long,占用8位元組,範圍:-2的63次方到2的63次方-1
      • float,占用4位元組,範圍:1.401298e-45到3.402823e+38
      • double,占用8位元組,範圍:4.9000000e-324 到1.797693e+308
      • char,占用2位元組,範圍:0-65535
      • boolean,占用1位元組,範圍:true,false
        • 說明:e+38表示是乘以10的38次方,e-45表示乘以10的負45次方
        • 為什麼要規定資料的範圍
  • 變量的定義和使用

    • 定義:資料類型 變量名 = 資料值;
      • int num = 10;
      • double d = 3.5;
      • char c = ‘a’;
      • boolean flag = true;
    • 使用:使用變量名即可
      • int num = 10; 修改值:num = 20;
      • double d = 3.5; 列印值:System.out.println(d);
    • 使用注意:
      • 變量名不允許重複定義

        一條語句可以定義多個變量(不建議)

        變量在使用之前一定要進行指派

        定義float結尾加F、long結尾加L

        變量的作用域範圍

  • 鍵盤錄入

    • 為什麼使用鍵盤錄入:為了讓我們操作的資料,變得更加靈活,更能模拟真實
    • 使用步驟(文本文檔編碼)-> 死記硬背
      • 導包:import java.util.Scanner; //導包的動作必須出現在類定義的上邊
      • 建立對象:Scanner sc = new Scanner(System.in); //寫在main方法中,目前背過這一句
      • 控制台提示:System.out.println(“提示資訊:”); //如果不給提示,使用者體驗很差,不知道該怎麼做
      • 接收資料:int i = sc.nextInt(); //使用鍵盤對象名sc,調用了一個方法nextInt();拿到輸入的值指派給i
    • 面向對象的思想就是,隻關注對象能做什麼,而不關心它是怎麼做的。這裡我們隻關心sc的nextInt()方法

      能幫我們擷取使用者,在鍵盤錄入的整數即可,不用關心它怎麼完成這件事的,等有一定基礎了再去翻源碼

  • 辨別符

    • 概述:是給類,方法,變量等起名字的符号
    • 辨別符定義規則:
      • 由數字、字母、下劃線(_)和美元符($)組成

        不能以數字開頭

        不能是關鍵字

        區分大小寫

    • 辨別符命名約定:
      • 小駝峰命名法

        約定1:辨別符是一個單詞的時候,首字母小寫

        範例1:name

        約定2:辨別符由多個單詞組成的時候,第一個單詞首字母小寫,其他單詞首字母大寫

        範例2:firstName

      • 大駝峰命名法

        約定1:辨別符是一個單詞的時候,首字母大寫

        範例1: Student

        約定2:辨別符由多個單詞組成的時候,每個單詞的首字母大寫

        範例2: GoodStudent

  • 類型轉換

    • 前提:了解資料範圍,我們的基本類型除了boolean,都有自己的範圍,有大有小
    • 範圍小到大:byte -> short(char) -> int -> long -> float -> double
    • 注意:
      • 這裡char用的是ASCLL碼表中對應的十進制的int類型資料參與
      • byte、short、char參與運算,會先提升為int類型再進行計算
    • 隐式轉換:也叫自動轉換,計算機自動完成
      • 小範圍類型資料 -> 指派給 -> 大範圍類型資料
      • 小杯水倒入大桶,是可以的沒有問題的
    • 強制轉換:需要手動轉
      • 大範圍類型資料 -> 指派給 -> 小範圍類型資料
      • 大桶水倒入小杯,肯定是要溢出的(精度丢失)
      • 格式:資料類型 變量名 = (目标類型)變量值;
    • 常量優化機制:
      • byte d = 3 + 4; //3+4結果為int的7,指派給byte不報錯麼?
      • 在編譯時(javac),就會将3和4計算出一個7的結果,并且會自動判斷該結果是否在byte取值範圍内,

        在則編譯通過,不在則編譯失敗

一個良好的開端是成功的一半,加油同學們

擴充資料

Sun公司與Java更多資料

​ Sun公司成立于1982年

​ 1990年年末,Sun公司預料嵌入式系統将在未來家用電器領域大顯身手。于是Sun公司成立了一個由詹姆斯·高斯林(James Gosling 公認的java之父)上司的“Green計劃”,準備為下一代智能家電(電視機、微波爐、電話)編寫一個通用控制系統

​ Sun 公司開發 Java 的想法是:在網際網路的時代,提供一種和機器無關,和作業系統也無關,可以運作在任何平台上的語言

​ 這種語言如果成為軟體開發事實上的标準的話,那麼軟體的開發就會變得非常高效,因為大家再也不需要為特定的硬體和作業系統專門開發軟體了

​ 于是Oak誕生了

​ 到了1992年的夏天,Green計劃已經完成了新平台的部分功能,包括Green作業系統。Oak的程式設計語言、類庫等。同年11月,Green計劃被轉化成"FirstPerson有限公司",一個Sun公司的全資子公司

​ 但是後來由于商業等等的原因,Green項目幾乎接近夭折,Green項目的一半成員也被調到了其他的項目組

​ 1994年夏天,網際網路和浏覽器的出現不僅給廣大網際網路的使用者帶來了福音,也給Oak語言帶來了新的生機Gosling立即意識到,這是一個機會

​ 于是對Oak進行了小規模的改造,到了1994年秋,他們完成了第一個Java語言的網頁浏覽器:WebRunner

​ 當時的Oak這個商品已經被注冊,于是隻得将Oak更名為Java,于1995年正式推出

​ JAVA這個名稱的由來:開發者在爪哇島喝過一種好喝的咖啡,于是音譯過來起名JAVA,圖示是我們熟悉的一杯熱咖啡,自此之後程式員與咖啡就分不開了。爪哇島是印度尼西亞的島嶼,位于赤道南方,面積13.88萬平方公裡,人口1.45億,島嶼西部有首都—雅加達

​ 其中三個島:爪哇、蘇門答臘、蘇拉維西出産全球重要的咖啡,17世紀中期,荷蘭人就把咖啡樹帶到了當時的錫蘭(斯裡蘭卡)和印尼的爪哇

​ 18世紀,印尼已經成為咖啡的主要生産地,所産的優質阿拉比卡咖啡幾乎全部供應給歐洲,但到了19世紀,1869早出現于錫蘭的咖啡鏽蝕病也禍及印尼。到了1877年,印尼諸島上的大部分咖啡田都被鏽蝕病損毀,荷蘭人不得不從非洲引進其他的咖啡品種,也就是羅姆斯達咖啡。它比較能抗病蟲害,但品質要遜色一些,印尼咖啡90%左右是羅姆斯達豆,每年大約680萬袋,隻有不到10%的豆子為阿拉比卡咖啡,印尼出品的咖啡一般不冠"印尼"的名字,而直接冠以島名,如爪哇、蘇門答臘等

​ 從2000年開始,java在程式設計開發文法中,幾乎壟斷了第一名的寶座

​ 在最近一次 2008 年的經濟危機中,Sun公司沒有撐下去破産了,最後于 2009 年 4 月被 Oracle 收購了

​ Sun的崛起與衰落: https://blog.csdn.net/sdjadycsdn/article/details/106468527

​ Java語言發展簡史:https://blog.csdn.net/wxb141001yxx/article/details/80786680

JDK、JRE、JVM及三個版本更多資料
  1. JDK(Java Development Kit):java開發工具包,針對開發人員使用;它是整個java的核心,包含了JRE一堆Java工具(javac/java/jdb等)和Java基礎的類庫(即Java API 包括rt.jar)
  2. JRE(Java Runtime Environment):是運作基于Java語言編寫的程式所不可缺少的運作環境。也是通過它,Java的開發者才得以将自己開發的程式釋出到使用者手中,讓使用者使用

    JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是運作Java程式的必要元件

    與大家熟知的JDK不同,JRE是Java運作環境,并不是一個開發環境,是以沒有包含任何開發工具(如編譯器和調試器),隻是針對于使用Java程式的使用者。

  3. JVM(Java Virtual Machine):就是我們常說的java虛拟機,它是整個java實作跨平台的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛拟機上執行。

    也就是說class并不直接與機器的作業系統相對應,而是經過虛拟機(相當于中間層)間接與作業系統互動,由虛拟機将程式解釋給本地系統執行

    隻有JVM還不能成class的執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib,而jre包含lib類庫。JVM屏蔽了與具體作業系統平台相關的資訊,使得Java程式隻需生成在Java虛拟機上運作的目标代碼(位元組碼),就可以在多種平台上不加修改地運作。

    所有的程式隻要有java虛拟機的支援,那麼就可以實作程式的執行,并且不同的作業系統上會有不同版本的jvm。

  4. SE(J2SE),standard edition,标準版,是我們通常用的一個版本,從JDK5.0開始,改名為Java SE

    EE(J2EE),enterprise edition,企業版,使用這種JDK開發J2EE應用程式,從JDK5.0開始,改名為Java EE

    ME(J2ME),micro edition,用于移動裝置、嵌入式裝置上的java應用程式,從JDK5.0開始,改名為Java ME

bug的由來

​ bug:在電腦系統或程式中,隐藏着的一些未被發現的缺陷或問題統稱為bug(漏洞)

​ 該詞語的創始人,是世界上第一台計算機mark 1的第三名程式員格蕾絲赫伯

​ 1945年mark 1已經更新為mark 2了,有一天格蕾絲敲代碼的時候,電腦突然當機了

​ 當時的計算機很大,于是他們排查龐大的處理器群,發現一隻蟲子受到光和熱的吸引而導緻的

​ 蟲子當然也跪了,格蕾絲将它取下來粘在了記事本上,标注了"第一個出現bug的執行個體"

​ 後來有捉蟲子意思的"debug",就成為了處理、修複漏洞的意思

為什麼要規定資料的範圍

​ 早在計算機還不發達的時候,計算機記憶體非常小,是以對于定義的資料,有嚴格的規定,不能浪費

​ 但是目前來說,記憶體已經不是天花闆了,是以這個規定沒有以前嚴格

​ 但是在開發中,對于以數值計算為主的應用,提升性能有很大好處

​ java有基本類型和引用類型(對象),如果使用對象,需要建立對象執行個體,這時記憶體的開銷遠遠大于

​ 直接使用的基礎資料類型,除此之外還有gc的一些操作,用來回收對象,都是開銷

​ 經過大量的測試,明确肯定使用基本類型時的處理效率,明顯大于使用引用類型(4倍或更多)

​ java為什麼要保留基本類型:https://www.cnblogs.com/lbhym/p/11122716.html

day01 每日重點

  • 說出Java跨平台原理
    • 平台包含Windows、mac、Linux
      通過JVM完成跨平台,但是JVM本身不跨平台
      不同平台廠商提供對應的JVM虛拟機,去翻譯相同的位元組碼檔案
                 
  • 說出JDK、JRE和JVM的作用及關系
    • JDK:java開發工具包
      JRE:java運作環境
      JVM:java虛拟機
      JDK包含JRE包含JVM(8以後我們安裝JDK就擁有了所有)
                 
  • 運用JDK的下載下傳與安裝
    • 官網下載下傳,或者使用老師提供的安裝包(往後各類軟體安裝包儲存在自己的U盤)
      安裝在develop檔案夾下,保留Java檔案夾(可能會裝多版本,便于管理)
                 
  • 配置JDK的環境變量
    • 首先需要安裝JDK(以JDK11/12為例)
      我的電腦 - 屬性 - 進階系統設定 - 環境變量
      	1. 建立變量名JAVA_HOME值為JDK的安裝路徑
      	2. 在原有變量Path中,建立變量%JAVA_HOME%\bin
      	*. 在原有變量Path中,配置bin檔案夾的絕對路徑
                 
  • 會使用注釋、關鍵字、常量
    • 注釋:對代碼進行解釋說明的文字資訊
      分類:單行//、多行/* */、文檔 /** */
      	
      關鍵字:被java賦予了特殊含義的英文單詞
      特點:小寫、高亮
      
      常量:在程式運作過程中,其值不發生改變的量
      分類:
      	整數常量
      	小數常量
      	字元常量
      	字元串常量
      	布爾常量
      	空常量(不能直接列印)
                 
  • 會使用變量進行程式設計
    • 變量:本質是記憶體中用于存儲經常改變的量的一塊可變區域
      定義:資料類型 變量名 = 變量值; 
      使用:直接使用"變量名"即可
                 
  • 知道資料類型的分類,能寫出八種基本資料類型
    • Java中的資料類型分為:
      	一、基本資料類型:今天關心
      	二、引用資料類型:String、[]、接口
      
      	基本資料類型分為:四類八種
      		整數 byte short int(預設) long 
      		浮點數 float double(預設)
      		字元 char
      		布爾 boolean
      				
                 
  • 鍵盤錄入對象Scanner
    • 使用步驟:
      	1.導包 improt java.util.Scanner;
      	2.建立對象 Scanner sc = new Scanner(System.in);
      	3.控制台提示 System.out.println("提示");
      	4.調用方法,接收資料 int i = sc.nextInt(); //拿到i以後,有後續操作
                 
  • 會使用辨別符
    • 辨別符:用來給常量、變量、類等,起名字的符号
      
      組成規則:
      	1.由字母、數字、_、$組成
      	2.不能是Java的關鍵字
      	3.不能以數字開頭    
      	4.嚴格區分大小寫
      		命名約定:
      			大駝峰命名法:用于類 
      			小駝峰命名法:用于變量、方法
                 
/*
	重點案例:一個三遍(必須)
	
        1.HelloWorld入門案例

        2.常量練習:在輸出語句中,列印自我介紹資訊,姓名(String)、性别(char)、年齡(int)、體重(double)、愛好(String)
			
        3.變量和鍵盤錄入:使用鍵盤對象,提示使用者輸入姓名(String)、年齡(int)、成績(double),接收并列印該使用者資訊,格式自拟     
       
       String name = sc.next();
       int name = sc.nextInt();
       double score = sc.nextDouble();
*/