day01【前言、入門程序、常量、變量】
今日內(nèi)容
Java語言的發(fā)展歷史
Java語言開發(fā)環(huán)境搭建
HelloWorld入門程序
注釋和關(guān)鍵字
常量和變量
學(xué)習(xí)目標(biāo)
能夠說出JDK,JRE,JVM各自的作用和關(guān)系
能夠完成HelloWorld案例的編寫及運(yùn)行
能夠使用注釋對程序進(jìn)行說明
能夠知道關(guān)鍵字的特點(diǎn)
能夠知道常量的分類
能夠說出8種基本數(shù)據(jù)類型
能夠完成變量的定義及輸出
第一章? 開發(fā)前言
1.1 Java語言概述
什么是Java語言
Java語言是美國Sun公司(Stanford University Network),在1995年推出的高級的編程語言。所謂編程語言,是計算機(jī)的語言,人們可以使用編程語言對計算機(jī)下達(dá)命令,讓計算機(jī)完成人們需要的功能。
2009年,Sun公司被甲骨文公司收購,所以我們現(xiàn)在訪問oracle官網(wǎng)即可:https://www.oracle.comJava語言共同創(chuàng)始人之一:詹姆斯·高斯林 (James Gosling),被稱為“Java之父”

Java語言發(fā)展歷史
1995年Sun公司推出Java語言
1996年發(fā)布Java 1.0版本
1997年發(fā)布Java 1.1版本
1998年發(fā)布Java 1.2版本
2000年發(fā)布Java 1.3版本
2002年發(fā)布Java 1.4版本
2004年發(fā)布Java 5.0版本
2006年發(fā)布Java 6.0版本
2009年Oracle甲骨文公司收購Sun公司
2011年發(fā)布Java 7.0版本
2014年發(fā)布Java 8.0版本
2017年9月發(fā)布Java 9.0版本
2018年3月發(fā)布Java 10.0版本
2018年9月發(fā)布Java 11.0版本
Java語言能做什么
Java語言主要應(yīng)用在互聯(lián)網(wǎng)程序的開發(fā)領(lǐng)域。常見的互聯(lián)網(wǎng)程序比如天貓、京東、物流系統(tǒng)、網(wǎng)銀系統(tǒng)等,以及服務(wù)器后臺處理大數(shù)據(jù)的存儲、查詢、數(shù)據(jù)挖掘等也有很多應(yīng)用。




1.2 Java語言跨平臺原理
Java虛擬機(jī)——JVM
JVM(Java Virtual Machine ):Java虛擬機(jī),簡稱JVM,是運(yùn)行所有Java程序的假想計算機(jī),是Java程序的運(yùn)行環(huán)境,是Java 最具吸引力的特性之一。我們編寫的Java代碼,都運(yùn)行在JVM 之上。
跨平臺:任何軟件的運(yùn)行,都必須要運(yùn)行在操作系統(tǒng)之上,而我們用Java編寫的軟件可以運(yùn)行在任何的操作系統(tǒng)上,這個特性稱為Java語言的跨平臺特性。該特性是由JVM實(shí)現(xiàn)的,我們編寫的程序運(yùn)行在JVM上,而JVM運(yùn)行在操作系統(tǒng)上。

如圖所示,Java的虛擬機(jī)本身不具備跨平臺功能的,每個操作系統(tǒng)下都有不同版本的虛擬機(jī)。
JRE 和 JDK
JRE (Java Runtime Environment) :是Java程序的運(yùn)行時環(huán)境,包含JVM 和運(yùn)行時所需要的核心類庫 。
JDK? (Java Development Kit):是Java程序開發(fā)工具包,包含JRE 和開發(fā)人員使用的工具。
我們想要運(yùn)行一個已有的Java程序,那么只需安裝JRE 即可。
我們想要開發(fā)一個全新的Java程序,那么必須安裝JDK 。
小貼士:
三者關(guān)系: JDK > JRE > JVM

1.3 進(jìn)制
計算機(jī)中的數(shù)據(jù)不同于人們生活中的數(shù)據(jù),人們生活采用十進(jìn)制數(shù),而計算機(jī)中全部采用二進(jìn)制數(shù)表示,它只包含0、1兩個數(shù),逢二進(jìn)一,1+1=10。每一個0或者每一個1,叫做一個bit(比特)。
下面了解一下十進(jìn)制和二進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換計算。
十進(jìn)制數(shù)據(jù)轉(zhuǎn)成二進(jìn)制數(shù)據(jù):使用除以2獲取余數(shù)的方式

二進(jìn)制數(shù)據(jù)轉(zhuǎn)成十進(jìn)制數(shù)據(jù):使用8421編碼的方式

小貼士:
二進(jìn)制數(shù)系統(tǒng)中,每個0或1就是一個位,叫做bit(比特)。
1.4 字節(jié)
字節(jié)是我們常見的計算機(jī)中最小存儲單元。計算機(jī)存儲任何的數(shù)據(jù),都是以字節(jié)的形式存儲,右鍵點(diǎn)擊文件屬性,我們可以查看文件的字節(jié)大小。
8個bit(二進(jìn)制位) 0000-0000表示為1個字節(jié),寫成1 byte或者1 B。
8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB
第二章? Java語言開發(fā)環(huán)境搭建
2.1 JDK11.0下載
通過官方網(wǎng)站獲取JDKhttp://www.oracle.com注意:針對不同的操作系統(tǒng),需要下載對應(yīng)版本的JDK。
2.2JDK11.0安裝




小貼士:
安裝路徑中,不要包含中文和空格。
2.3 JDK的安裝目錄介紹
目錄名稱說明
bin該路徑下存放了JDK的各種工具命令。javac和java就放在這個目錄。
conf該路徑下存放了JDK的相關(guān)配置文件。
include該路徑下存放了一些平臺特定的頭文件。
jmods該路徑下存放了JDK的各種模塊。
legal該路徑下存放了JDK各模塊的授權(quán)文檔
lib該路徑下存放了JDK工具的一些補(bǔ)充JAR包。
2.4 常用DOS命令
Java語言的初學(xué)者,學(xué)習(xí)一些DOS命令,會非常有幫助。DOS是一個早期的操作系統(tǒng),現(xiàn)在已經(jīng)被Windows系統(tǒng)取代,對于我們開發(fā)人員,目前需要在DOS中完成一些事情,因此就需要掌握一些必要的命令。
進(jìn)入DOS操作窗口
按下Windows+R鍵盤,打開運(yùn)行窗口,輸入cmd回車,進(jìn)入到DOS的操作窗口。

打開DOS命令行后,看到一個路徑 c:\user? 就表示我們現(xiàn)在操作的磁盤是c盤。

常用命令
操作說明
盤符名稱:盤符切換。E:回車,表示切換到E盤。
dir查看當(dāng)前路徑下的內(nèi)容。
cd 目錄進(jìn)入單級目錄。cd itheima
cd 目錄1\目錄2...進(jìn)入多級目錄。cd itheima\JavaSE
cd ..回退到上一級目錄。
cd \回退到盤符目錄。
cls清屏。
exit退出命令提示符窗口。
2.5 JAVA_HOME環(huán)境變量的配置
配置環(huán)境變量作用
開發(fā)Java程序,需要使用JDK中提供的工具,工具在JDK11安裝目錄的bin 目錄下。

在DOS命令行下使用這些工具,就要先進(jìn)入到JDK的bin目錄下,這個過程就會非常的麻煩。

不進(jìn)入JDK的bin目錄,這些工具就不能使用,會報錯。

為了開發(fā)方便,我們想在任意的目錄下都可以使用JDK的開發(fā)工具,則必須要配置環(huán)境變量,配置環(huán)境變量的意義在于告訴操作系統(tǒng),我們使用的JDK開發(fā)工具在哪個目錄下。
配置環(huán)境變量步驟
Windows 7,8版本
計算機(jī)鼠標(biāo)右鍵,選擇屬性

選擇高級系統(tǒng)設(shè)置

高級 選項卡,點(diǎn)擊環(huán)境變量

點(diǎn)擊新建 ,創(chuàng)建新的環(huán)境變量

變量名輸入JAVA_HOME,變量值輸入JDK11的安裝目錄 D:\developtools\Java\jdk-11

選中Path 環(huán)境變量,雙擊或者點(diǎn)擊編輯

在變量值的最前面,鍵入%JAVA_HOME%\bin;? 分號必須要寫,必須是英文格式。

環(huán)境變量配置完成,重新開啟DOS命令行,在任意目錄下輸入javac 命令,運(yùn)行成功。

Windows 10 版本
文件資源管理器 --> 此電腦鼠標(biāo)右鍵 --> 選擇屬性

選擇高級系統(tǒng)設(shè)置? --> 選擇? 環(huán)境變量

點(diǎn)擊下方系統(tǒng)變量的 新建 ,創(chuàng)建新的環(huán)境變量,變量名輸入JAVA_HOME,變量值輸入JDK11的安裝目錄 D:\developtools\Java\jdk-11

選中Path 環(huán)境變量,雙擊或者點(diǎn)擊編輯

點(diǎn)擊新建,鍵入%JAVA_HOME%\bin ,必須是英文格式。選中該行,上移到最上方,點(diǎn)擊確定。

環(huán)境變量配置完成,重新開啟DOS命令行,在任意目錄下輸入javac 命令。

2.6 Notepad++軟件的安裝和配置
什么要使用Notepad++軟件
Notepad++功能比windows中的自帶記事本功能強(qiáng)大,除了可以用來制作一般的純文字說明文件,也十分適合編寫計算機(jī)程序代碼。Notepad++有行號,能夠快速定位問題位置,還有語法高亮度顯示、代碼折疊等功能。而且它是免費(fèi)的。
Notepad++軟件安裝
安裝:傻瓜式安裝,一直下一步即可。建議也安裝到統(tǒng)一的開發(fā)軟件目錄下,比如D:\developtools。
Notepad++軟件配置
安裝完畢之后,為了使用方便,做一個簡單的配置:修改默認(rèn)語言和編碼。

第三章 HelloWorld入門程序
3.1 程序開發(fā)步驟說明
開發(fā)環(huán)境已經(jīng)搭建完畢,可以開發(fā)我們第一個Java程序了。
HelloWorld案例是指在計算機(jī)屏幕上輸出“HelloWorld”這行文字。各種計算機(jī)語言都習(xí)慣使用該案例作為第一個演示案例。
Java程序開發(fā)三步驟:編寫、編譯、運(yùn)行。

3.2 編寫Java源程序
在d:\day01 目錄下新建文本文件,完整的文件名修改為HelloWorld.java,其中文件名為HelloWorld,后綴名必須為.java 。
用記事本打開
使用notepad++記事本軟件。
在文件中鍵入文本并保存,代碼如下:
publicclassHelloWorld{
? publicstaticvoidmain(String[]args) {
? ? System.out.println("Hello World!");
? }
}
文件名必須是HelloWorld ,保證文件名和類的名字是一致的,注意大小寫。
每個字母和符號必須與示例代碼一模一樣。
第一個HelloWord 源程序就編寫完成了,但是這個文件是程序員編寫的,JVM是看不懂的,也就不能運(yùn)行,因此我們必須將編寫好的Java源文件 編譯成JVM可以看懂的字節(jié)碼文件 。
3.3 編譯Java源文件
在DOS命令行中,進(jìn)入Java源文件的目錄,使用javac 命令進(jìn)行編譯。
命令:
javacJava源文件名.后綴名
舉例:
javac HelloWorld.java

編譯成功后,命令行沒有任何提示。打開d:\day01目錄,發(fā)現(xiàn)產(chǎn)生了一個新的文件 HelloWorld.class,該文件就是編譯后的文件,是Java的可運(yùn)行文件,稱為字節(jié)碼文件,有了字節(jié)碼文件,就可以運(yùn)行程序了。
Java源文件的編譯工具javac.exe,在JDK安裝目錄的bin目錄下。但是由于配置了環(huán)境變量,可以再任意目錄下使用。
3.4 運(yùn)行Java程序
在DOS命令行中,進(jìn)入Java源文件的目錄,使用java 命令進(jìn)行運(yùn)行。
命令:
java文件名字
舉例:
java HelloWorld
java HelloWord? 不要寫 不要寫 不要寫 .class

Java程序.class文件 的運(yùn)行工具java.exe ,在JDK安裝目錄的bin目錄下。但是由于配置了環(huán)境變量,可以再任意目錄下使用。
3.5 入門程序說明
編譯和運(yùn)行是兩回事
編譯:是指將我們編寫的Java源文件翻譯成JVM認(rèn)識的class文件,在這個過程中,javac 編譯器會檢查我們所寫的程序是否有錯誤,有錯誤就會提示出來,如果沒有錯誤就會編譯成功。
運(yùn)行:是指將class文件 交給JVM去運(yùn)行,此時JVM就會去執(zhí)行我們編寫的程序了。
關(guān)于main方法
main方法:稱為主方法。寫法是固定格式不可以更改。main方法是程序的入口點(diǎn)或起始點(diǎn),無論我們編寫多少程序,JVM在運(yùn)行的時候,都會從main方法這里開始執(zhí)行。
HelloWorld案例常見問題
非法字符問題。Java中的符號都是英文格式的。
大小寫問題。Java語言對大小寫敏感(區(qū)分大小寫)。
在系統(tǒng)中顯示文件的擴(kuò)展名,避免出現(xiàn)HelloWorld.java.txt文件。
編譯命令后的java文件名需要帶文件后綴.java
運(yùn)行命令后的class文件名(類名)不帶文件后綴.class
第四章 注釋和關(guān)鍵字
4.1 添加注釋comment
注釋:就是對代碼的解釋和說明。其目的是讓人們能夠更加輕松地了解代碼。為代碼添加注釋,是十分必須要的,它不影響程序的編譯和運(yùn)行。
Java中有單行注釋和多行注釋
單行注釋以 //開頭 換行結(jié)束
多行注釋以 /*開頭? 以*/結(jié)束
4.2 關(guān)鍵字keywords
關(guān)鍵字:是指在程序中,Java已經(jīng)定義好的單詞,具有特殊含義。
HelloWorld案例中,出現(xiàn)的關(guān)鍵字有 public 、class 、 static 、? void? 等,這些單詞已經(jīng)被Java定義好,全部都是小寫字母,notepad++中顏色特殊。
關(guān)鍵字比較多,不能死記硬背,學(xué)到哪里記到哪里即可。
第五章 常量
5.1 概述
常量:是指在Java程序中固定不變的數(shù)據(jù)。
5.2 分類
類型含義數(shù)據(jù)舉例
整數(shù)常量所有的整數(shù)0,1,? 567,? -9
小數(shù)常量所有的小數(shù)0.0,? -0.1,? 2.55
字符常量單引號引起來,只能寫一個字符,必須有內(nèi)容'a' , ' ',? '好'
字符串常量雙引號引起來,可以寫多個字符,也可以不寫"A" ,"Hello" ,"你好" ,""
布爾常量只有兩個值(流程控制中講解)true ,? false
空常量只有一個值(引用數(shù)據(jù)類型中講解)null
5.3 練習(xí)
需求:輸出各種類型的常量。
publicclassConstantDemo{
? ? publicstaticvoidmain(String[]args){
//輸出整數(shù)常量
System.out.println(123);
//輸出小數(shù)常量
System.out.println(0.125);
//輸出字符常量
System.out.println('A');
//輸出布爾常量
System.out.println(true);
//輸出字符串常量
System.out.println("歡迎來到黑馬程序員");
? }
}
第六章 變量和數(shù)據(jù)類型
6.1 變量概述
變量:常量是固定不變的數(shù)據(jù),那么在程序中可以變化的量稱為變量。
數(shù)學(xué)中,可以使用字母代替數(shù)字運(yùn)算,例如 y=x+5 或者 6=x+5。
程序中,可以使用字母保存數(shù)字的方式進(jìn)行運(yùn)算,提高計算能力,可以解決更多的問題。比如x保存5,x也可以保存6,這樣x保存的數(shù)據(jù)是可以改變的,也就是我們所講解的變量。
Java中要求一個變量每次只能保存一個數(shù)據(jù),必須要明確保存的數(shù)據(jù)類型。
6.2 數(shù)據(jù)類型
數(shù)據(jù)類型分類
Java的數(shù)據(jù)類型分為兩大類:
基本數(shù)據(jù)類型:包括 整數(shù)、浮點(diǎn)數(shù)、字符、布爾。
引用數(shù)據(jù)類型:包括 類、數(shù)組、接口。
基本數(shù)據(jù)類型
四類八種基本數(shù)據(jù)類型:
數(shù)據(jù)類型關(guān)鍵字內(nèi)存占用取值范圍
字節(jié)型byte1個字節(jié)-128 至 127
短整型short2個字節(jié)-32768 至 32767
整型int(默認(rèn))4個字節(jié)-2^31^ 至 2^31^-1
長整型long8個字節(jié)-2^63^ 至 2^63^-1? 19位數(shù)字
單精度浮點(diǎn)數(shù)float4個字節(jié)1.4013E-45 至 3.4028E+38
雙精度浮點(diǎn)數(shù)double(默認(rèn))8個字節(jié)4.9E-324 至 1.7977E+308
字符型char2個字節(jié)0 至 2^16^-1
布爾類型boolean1個字節(jié)true,false
Java中的默認(rèn)類型:整數(shù)類型是int 、浮點(diǎn)類型是double 。
e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負(fù)45次方。
6.3 變量的定義
變量定義的格式包括三個要素:數(shù)據(jù)類型 、 變量名 、 數(shù)據(jù)值 。
格式
// 聲明變量并賦值
數(shù)據(jù)類型變量名=數(shù)據(jù)值;
或者
// 先聲明,后賦值(使用前賦值即可)
數(shù)據(jù)類型變量名;
變量名=初始化值;
練習(xí)
定義所有基本數(shù)據(jù)類型的變量,代碼如下:
publicclassVariable{
? ? publicstaticvoidmain(String[]args){
//定義字節(jié)型變量
byteb=100;
System.out.println(b);
//定義短整型變量
shorts=1000;
System.out.println(s);
//定義整型變量
inti=123456;
System.out.println(i);
//定義長整型變量
longl=12345678900L;
System.out.println(l);
//定義單精度浮點(diǎn)型變量
floatf=5.5F;
System.out.println(f);
//定義雙精度浮點(diǎn)型變量
doubled=8.5;
System.out.println(d);
//定義布爾型變量
booleanbool=false;
System.out.println(bool);
//定義字符型變量
charc='A';
System.out.println(c);
? ? }
}
long類型:建議數(shù)據(jù)后加L表示。
float類型:建議數(shù)據(jù)后加F表示。
6.4 注意事項
變量名稱:在同一個大括號范圍內(nèi),變量的名字不可以相同。
變量賦值:定義的變量,不賦值不能使用。
6.5 標(biāo)識符
標(biāo)識符:是指在程序中,我們自己定義內(nèi)容。比如類的名字、方法的名字和變量的名字等等,都是標(biāo)識符。
HelloWorld案例中,出現(xiàn)的標(biāo)識符有類名字HelloWorld 。
命名規(guī)則:硬性要求
標(biāo)識符可以包含英文字母26個(區(qū)分大小寫)、0-9數(shù)字 、$(美元符號)和_(下劃線)。int a1 = 10
標(biāo)識符不能以數(shù)字開頭。? int 1i = 10;
標(biāo)識符不能是關(guān)鍵字。int static? = 10;
命名規(guī)范:軟性建議
類名規(guī)范:首字母大寫,后面每個單詞首字母大寫(大駝峰式)。
方法名規(guī)范: 首字母小寫,后面每個單詞首字母大寫(小駝峰式)。? methodTestDemo
變量名規(guī)范:首字母小寫,后面每個單詞首字母大寫(小駝峰式)。int varDemo =10