# 【前言、入門程序、常量】
##### 今日復習指南
~~~
1.入門案例(0.5個小時內完成,多寫幾遍)
HelloWorld.java 編寫,編譯和運行
? ?
2.注釋和關鍵字(0.5個小時內完成,多寫幾遍)
? ?Demo02ZhuShi.java
? ?Demo03GuanJianZi.java
? ?
3.常量及分類(1個小時內完成,演示效果)
? ?Demo04ChangLiang.java
? ?
4.其它知識(簡單一看)
~~~
##### 主要內容
~~~
Java語言的發展歷史【了解】
Java語言開發環境搭建【重點:安裝jdk,配置環境變量,安裝notepad++】
HelloWorld入門程序【重點】
注釋和關鍵字【理解】
常量【重點重點重點重點重點】
進制及轉換【了解】
~~~
### 第一章 開發前言
##### 1.1 Java語言概述【了解】
~~~
Java是一種高級編程語言,而且是面向對象的編程語言。
Java語言是美國Sun公司(Stanford University Network),在1995年推出的高級的編程語言。
Java語言共同創始人之一:詹姆斯·高斯林 (James Gosling),被稱為“Java之父”
Java語言的版本:1.0-1.4,5.0...8.0...13.0
目前我們學習的8.0
~~~
##### 1.2 Java語言能做什么
~~~
Java語言主要應用在互聯網程序的開發領域
網上購物商城
物流
金融
各行各業的門戶網站
~~~
##### 1.3 Java語言的跨平臺實現原理
~~~
平臺: 指的是操作系統,windows,linux,macos
跨平臺: 跨越不同的操作一同,我們所編寫一個程序,可以在多個操作系統上運行
JVM: Java虛擬機,是專門用來運行Java程序的
問題1:
JVM是跨平臺的? 錯誤
不同的操作系統,JVM是不一樣的
?
問題2:
Java程序是跨平臺的? 正確
一次編寫/編譯 到處運行
?
問題3:
Java程序的跨平臺是依賴于JVM的不夸平臺實現的?
正確的
~~~

##### 1.4 JDK\_JRE\_JVM的組成和作用
~~~
JVM: 稱為Java虛擬機,是專門用來運行Java程序的,但是不能獨立安裝
JRE: 稱為Java運行環境,包含JVM和核心類庫
JDK: 稱為Java開發工具,包含JRE和開發工具
?
小貼士:
三者關系: JDK > JRE > JVM
~~~

### 第二章 Java語言開發環境搭建
##### 2.1 JDK安裝
~~~
jdk的下載和安裝
? ?1.注意操作系統是windows,linux,MacOS
? ?2.注意操作系統的位數是32位還是64位
? ?3.安裝java相關軟件的時候: 安裝路徑中不允許出現中文和空格
~~~
##### 2.2 常用DOS命令的使用
~~~
如何進入DOS命令操作窗口?
? ?1.開始/命令提示符
? ?2.開始/搜索程序和文件 輸入cmd
? ?3.windows鍵 + R --> 輸入cmd
4.窗口空白處/按住shift鍵 + 鼠標右鍵單擊/在此處開命令窗口
?
~~~


##### 2.3 環境變量JAVA\_HOME的配置【了解,已經配置了的話,大家不用過多的浪費時間】
~~~
記事本軟件的啟動方式?
? ?1.開始/程序/附件/記事本
? ?2.C:/windows/找到notepad.exe命令,雙擊啟動
? ?3.如果在DOS窗口的命令中:
C:\windows> notepad.exe 回車 運行這個命令
? ? ? ?首先在C:\windows路徑下,尋找是否存在notepad.exe,發現有,直接運行
? ? ? ? ? ?
? ? ? D:\abc> notepad.exe 回車 運行這個命令
? ? ? ?首先:在D:\abc路徑下,尋找是否存在notepad.exe,發現沒有
? ? ? ?其次: 如果發現在當前路徑D:\abc沒有要運行的notepad.exe命令,到系統環境變量path中尋找
? ? ? ?path:... C:\Windows;...,發現path中配置的路徑C:\Windows有該命令,直接運行.如果path中配置的所有的路徑中都沒有要運行的命令,運行報錯了.
? ? ? ?
?
? ? ? ? ? ?
? ? ? ? ? ?
給Java配置環境變量的意義/目的/作用?
? ? ? 讓我們可以在任意路徑下運行java開發的相關工具(javac: 編譯工具,java: 運行工具)
? ? ? ? ? ?
? ? ? ? ? ?
? ?比如jdk的安裝路徑:C:\develop\Java\jdk1.8.0_162
? ?配置步驟:
1.創建名稱為JAVA_HOME的環境變量,取值是 C:\develop\Java\jdk1.8.0_162
? ?2.把步驟1中創建的名稱為JAVA_HOME的環境變量,添加到系統環境變量path中
? ?找到系統環境變量path,在前面添加: %JAVA_HOME%\bin;...
? ? ? ?
? ?3.如果在DOS窗口的命令中:
C:\develop\Java\jdk1.8.0_162\bin> javac.exe 回車 運行這個命令
? ? ? ?首先在C:\develop\Java\jdk1.8.0_162\bin路徑下,尋找是否存在javac.exe,發現有,直接運行
? ? ? ?
? ? ? ?D:\abc> javac.exe 回車 運行這個命令
? ? ? ?首先:在D:\abc路徑下,尋找是否存在javac.exe,發現沒有
? ? ? ?其次: 如果發現在當前路徑D:\abc沒有要運行的javac.exe命令,到系統環境變量path中尋找
? ? ? ?path:... %JAVA_HOME%\bin;...,發現path中配置的名稱為JAVA_HOME的環境變量,對應的路徑C:\develop\Java\jdk1.8.0_162\bin中有要運行的javac.exe命令,直接運行,如果path中配置的所有路徑中,都沒有要運行的javac.exe命令,運行報錯了
? ? ? ? ? ?
? ? ? ?尋找名稱為JAVA_HOME的環境變量,找到后,使用其配置的具體路徑進行替換:
path:... C:\develop\Java\jdk1.8.0_162\bin;...,
替換后的路徑: C:\develop\Java\jdk1.8.0_162\bin中有javac命令,就可以直接運行
?
~~~


### 第三章 HelloWorld入門程序
##### 3.1 程序開發的步驟
~~~
1.編寫源程序
源程序:
程序員編寫的程序
程序員可以看的懂的程序
程序: 字母,數字和其它符號
程序員自己編寫的,程序員可以看得懂的程序,稱為源程序
源程序的本質也是一個文本文件,只是擴展名不是.txt,
而是.java
2.把源程序編譯成字節碼程序
JVM是用來運行Java程序的,但是JVM是一個二貨,只認識0和1,像這種內部
存儲0和1的文件,稱之為字節碼文件/程序,擴展名是.class
如何把源程序/文件轉換成/編譯字節碼程序/文件呢?
使用編譯命令javac,使用格式:
javac 文件名.java
javac HelloWorld.java 生成字節碼文件 HelloWorld.class
3.把字節碼程序/文件 交給 JVM執行
源程序和字節碼程序都存儲在硬盤上,不會直接執行,需要把字節碼程序交給JVM執行
? ?源程序HelloWorld.java 和 字節碼程序HelloWorld.class 都存儲在硬盤上
如何把字節碼程序交給JVM執行呢?
使用運行命令java,使用格式:
java 文件名
java HelloWorld 把字節碼程序HelloWorld交給JVM執行
~~~

##### 3.2 HelloWorld案例的編寫編譯運行
~~~
1.編寫源程序
創建一個HelloWorld.txt的文本文件,把擴展名修改為.java
打開HelloWorld.java文件,輸入以下內容
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
2.把源程序編譯成字節碼程序
使用編譯命令javac
使用格式:
javac 文件名.java
javac HelloWorld.java 把HelloWorld.java源程序/文件編譯生成對應的字節碼程序/文件
? ?注意:
(1)保證在當前路徑下,可以看到要編譯的文件
(2)保證在當前路徑下,javac命令可以使用
(3)javac命令在使用時,后面的文件必須寫擴展名.java
3.把字節碼程序/文件 交給 JVM執行
使用運行命令java
使用格式:
java 文件名
java HelloWorld 把字節碼程序HelloWorld交給JVM執行
注意:
(1)保證在當前路徑下,可以看到要運行的class文件
(2)保證在當前路徑下,java命令可以使用
(3)java命令在使用時,后面的文件一定不能寫擴展名.class
~~~
##### 3.3 HelloWorld案例的常見問題
~~~
非法字符問題。Java中的符號都是英文格式的。
大小寫問題。Java語言對大小寫敏感(區分大小寫)。
在系統中顯示文件的擴展名,避免出現HelloWorld.java.txt文件。
編譯命令后的java文件名需要帶文件后綴.java
運行命令后的class文件名(類名)不帶文件后綴.class
不要把main寫成mian
~~~
##### 3.4 Notepad++軟件的安裝和配置

搜狗輸入法的設置: 中文狀態使用英文標點符號



### 第四章 注釋和關鍵字
##### 4.1 注釋
~~~
1.概念: 是對程序中的內容進行解釋說明的一些文字,不參與編譯,也不參與運行,不會影響程序的運行效率
2.分類:
(1)單行注釋: // 只能寫一行內容
(2)多行注釋: /* 可以寫多行內容 */
(3)文檔注釋: /** 可以寫多行內容 */ 基本不用
//這里是定義一個類,class后面的名字必須和文件名保存一致
//public class 是固定寫法
public class Demo02ZhuShi {
/*
這里是定義一個方法,名字叫做main,
main方法是程序的入口
public static void 是固定寫法
*/
public static void main(String[] args) {
/*
這是輸出語句,會把小括號()中雙引號""中的內容,
原樣輸出到控制臺
*/
System.out.println("zhushi...");
}
}
~~~
##### 4.2 關鍵字
~~~
郵箱:@前面: 用戶名 @后面: 用的哪家的郵箱
zhangsan@163.com 正確的
nigulasi_zhangsan@163.com 正確的
nigulasi@zhangsan@163.com ? 錯誤的
@符號: 在我們郵箱中有特殊含義,不能隨便使用,可以理解為郵箱中的關鍵字
?
1.概念: 是指在程序中,Java已經定義好的單詞,具有特殊含義。
?
2.注意:
至于說哪些單詞是關鍵字,以及每個關鍵字的特殊含義和用法是什么,今天不作講解
3.特點:
(1)單詞每個字母都是小寫的
(2)在高級編輯器中彩色顯示
4.以下代碼中有哪些關鍵字?
public class static void
public class Demo03GuanJianZi {
public static void main(String[] args){
System.out.println("guanjianzi...");
}
}
~~~
### 第五章 常量
##### 5.1 常量的概念和分類
~~~
數學中:
y = x + 8;//數字8是一個整數常數,其值不可以發生改變
b = a + 8.8;//數字8.8是一個小數常數,其值不可以發生改變
?
數學中的常數對應到java中叫做常量
數學中的常數是有分類的,對應到java中的常量,也有分類,而且java中常量的分類是非常豐富的
?
1.概念: 在程序執行的過程中,其值不會發生改變的量
2.分類:
(1)整數常量: 100,-200
? (2)小數常量: 8.8,-8.8
? (3)字符常量:
java中規定,字符常量必須使用單引號引起來,
而且單引號中必須只能有一個(不能沒有,也不能有兩個及以上)字符
舉例:ACE
A: 'a' 正確的
? ? ? ? ? ?B: '' ''中沒有東西 錯誤的 不能沒有字符
? ? ? ? ? ?C: ' ' ? ? ''有一個空格 正確的
? ? ? ? ? ?D: 'ab' 錯誤的 不能有兩個字符
? ? ? ? ? ?E: '好' ? ?正確的
? ? ? ? ? ?F: '女子' ? 錯誤的 不能有兩個字符
? (4)字符串常量:
java中規定,字符串常量必須使用雙引號引起來,
而且雙引號中可以有多個(0個,1個,2個,3個...)字符
舉例:ABCDEF
A: "a"
? ? ? ? ? ?B: ""
? ? ? ? ? ?C: " "
? ? ? ? ? ?D: "hello"
? ? ? ? ? ?E: "好"
? ? ? ? ? ?F: ?"女子"
? (5)布爾常量: 只有兩個值,外面沒有單引號或者雙引號
? true: 表示對的,正確的,成立的,肯定的
false: ?表示不對的,錯正確的,不成立的,否定的
(6)空常量:
null 不能直接打印空常量null
3.注意:
System.out.println(xxx)的作用:
是把()中的內容輸出到控制臺后,并換行但是()中不同類型的數據,書寫格式要求不一樣
System.out.print(xxx)的作用:
是把()中的內容輸出到控制臺后,不換行但是()中不同類型的數據,書寫格式要求不一樣
~~~
##### 5.2 打印不同類型的常量
~~~
/*
打印不同類型的常量
快速復制一行: ctrl + d
*/
public class Demo04ChangLiang {
public static void main(String[] args){
//1.輸出整數常量
System.out.println(100);
System.out.println(-200);
System.out.println("--------------------");
//2.小數常量
System.out.println(8.8);
System.out.println(-8.8);
System.out.println("--------------------");
//3.字符常量
System.out.println('a');
//System.out.println('');//錯誤: ''中不能沒有字符
System.out.println(' ');//正確的: ''中只有一個空格
//System.out.println('ab');//錯誤: ''中不能有2個及以上的字符
System.out.println('好');//正確的:
//System.out.println('女子');//錯誤: ''中不能有2個及以上的字符
System.out.println("--------------------");
//4.字符串常量
System.out.println("a");
System.out.println("");
System.out.println(" ");
System.out.println("abcd");
System.out.println("好");
System.out.println("女子");
System.out.println("中國好強大");
System.out.println("--------------------");
//5.布爾常量
System.out.println(true);
System.out.println(false);
System.out.println("--------------------");
//6.空常量
//System.out.println(null);//錯誤: 不能直接打印空常量
}
}
?
~~~
### 第六章 計算機中的進制與字節【了解了解】
##### 6.1 進制及轉換
* 進制
~~~
進制的概念:逢幾進一,就是幾進制
進制的分類:
? 十進制: 逢十進一,每位上的數字0-9
? 二進制: 逢二進一,每位上的數字0-1
? 八進制: 逢八進一,每位上的數字0-7
? 十六進制: 逢十六進一,每位上的數字0-9,10(A/a),11(B/b),12(C/c),13(D/d),14(E/e),15(F/f)
? ? ?
~~~
* 轉換
~~~
1.十進制轉十進制
(十進制數字從右向左,每位數字上隱藏了一個10的多少次方,第一位10的0次方,第二位10的一次方...):
? ?十進制數字1234(x^y: x的y次方):
1234 = 1000 + 200 + 30 + 4
? ? ? ? = 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0
? ? ? ?
2.二進制轉十進制(8421編碼):
(二進制數字從右向左,每位數字上隱藏了一個2的多少次方,第一位2的0次方,第二位2的一次方...):
1101 = 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0
= 1*8 + 1*4 + 0*2 + 1*1
? ? ? ? = 8 + 4 + 0 + 1
? ? ? ? = 13
? ?11111 = ?1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
? ?= ?16 + 8 + 4 + 2 + 1
? ? ? ? ?= 31
?
3.十進制轉二進制(除以2去余數,倒過來寫):
? ?十進制的13轉換成二進制:1101
十進制的75轉換成二進制:1001011
~~~
##### 十進制轉二進制圖解:

##### 6.2 計算機中的存儲單位(2的10次方就是1024 2^9:512 2^10:1024 2^11: 2048)
~~~
位(bit): 計算機中存儲1個二進制數字0或者1占用的空間 簡寫為b
字節(byte): 8個位就是一個字節 簡寫為B -------重要-------- ?1KM = 1000M
字節是我們常見的計算機中最小存儲單元。 1KM = 1000M
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
//...
~~~
##### 總結
~~~
能夠說出JDK,JRE,JVM各自的作用和關系 ? ? ?
JVM: Java虛擬機,專門用來運行java程序的,不能獨立安裝
JRE: Java運行環境,包含JVM和核心類庫
JDK: Java開發工具,包含JRE和開發工具
能夠完成HelloWorld案例的編寫及運行
1.編寫HelloWorld.java源文件
public class HelloWorld {
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
2.把HelloWorld.java源程序,編譯生成字節碼程序
javac HelloWorld.java
? ?3.把HelloWorld.class字節碼程序交給JVM執行
? java HelloWorld
?
能夠使用注釋對程序進行說明
注釋: 對程序中的內容進行解釋說明的
分類:
單行注釋: //
多行注釋: /* */
文檔注釋: /** */
?
能夠知道關鍵字的特點
關鍵字: 具有特殊含義和使用格式的英文單詞
特點:
(1)所有字母都是小寫
(2)高級編輯器中彩色顯示
public class static void
能夠知道常量的分類
1.整數: 100,-200
? ?2.小數: 6.6,-8.8
? ?3.字符:
必須使用''引起來,而且''中間必須只能有一個字符
4.字符串
必須使用""引起來,而且""中間可以有多個(0個,1個,2個...)字符
5.布爾常量: true,false
? ?6.空常量: null 不能直接打印
~~~