今日內容
- 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
- 舉例:我的JDK安裝路徑
- 當提示安裝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: 注意
- 開發軟件的安裝目錄中,儘量不要出現空格與中文
- a: 下載
-
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的取值範圍。
----------------------
哪句是編譯失敗的呢?爲什麼呢?