更新時間:2018-07-20 來源:黑馬程序員JavaEE培訓學院 瀏覽量:
第1章 Java概述
1.1 Java語言發展史和平臺概述
A:Java語言發展史
詹姆斯·高斯林(James Gosling)1977年獲得了加拿大卡爾加里大學計算機科學學士學位,1983年獲得了美國卡內基梅隆大學計算機科學博士學位,畢業后到IBM工作,設計IBM第一代工作站NeWS系統,但不受重視。后來轉至Sun公司,1990年,與Patrick,Naughton和Mike Sheridan等人合作“綠色計劃”,后來發展一套語言叫做“Oak”,后改名為Java。
B:Java語言版本
*JDK 1.1.4 Sparkler 寶石 1997-09-12
*JDK 1.1.5 Pumpkin 南瓜 1997-12-13
*JDK 1.1.6 Abigail 阿比蓋爾--女子名 1998-04-24
*JDK 1.1.7 Brutus 布魯圖--古羅馬政治家和將軍 1998-09-28
*JDK 1.1.8 Chelsea 切爾西--城市名 1999-04-08
*J2SE 1.2 Playground 運動場 1998-12-04
*J2SE 1.2.1 none 無 1999-03-30
*J2SE 1.2.2 Cricket 蟋蟀 1999-07-08
*J2SE 1.3 Kestrel 美洲紅隼(sǔn) 2000-05-08
*J2SE 1.3.1 Ladybird 瓢蟲 2001-05-17
*J2SE 1.4.0 Merlin 灰背隼 2002-02-13
*J2SE 1.4.1 grasshopper 蚱蜢 2002-09-16
*J2SE 1.4.2 Mantis 螳螂 2003-06-26
*JAVASE 5.0 (1.5.0) Tiger 老虎
*JAVASE 5.1 (1.5.1) Dragonfly 蜻蜓
*JAVASE 6.0 (1.6.0) Mustang 野馬
*JAVASE 7.0 (1.7.0) Dolphin 海豚
1.2 JVM,JRE,JDK的概述
1.2.1 什么是跨平臺?
平臺:指的是操作系統(Windows,Linux,Mac)
跨平臺:Java程序可以在任意操作系統上運行,一次編寫到處運行
原理:實現跨平臺需要依賴Java的虛擬機 JVM (Java Virtual Machine)
1.2.2 JVM JRE JDK說明
A:什么是JVM
JVM是java虛擬機(JVM Java Virtual Machine),java程序需要運行在虛擬機上,不同平臺有自己的虛擬機,因此java語言可以跨平臺
B:什么是JRE
包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等如果想要運行一個開發好的Java程序,計算機中只需要安裝JRE即可。
JRE:JVM+類庫。
C:什么是JDK
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。
其中的開發工具:編譯工具(javac.exe) 打包工具(jar.exe)等
JDK:JRE+JAVA的開發工具。
D:為什么JDK中包含一個JRE
為什么JDK中包含一個JRE呢?
開發完的程序,需要運行一下看看效果。
E:JDK,JRE,JVM的作用和關系
JDK包含JRE 和開發工具包
JRE 包含 核心類庫和JVM
1.3 常用dos命令
1.3.1 打開控制臺
win + R,然后cmd回車
1.3.2 常用命令
d: 回車 盤符切換
dir(directory):列出當前目錄下的文件以及文件夾
cd (change directory)改變指定目錄(進入指定目錄)
進入 cd 目錄;cd 多級目錄
回退 cd.. ;cd\
cls : (clear screen)清屏
exit : 退出dos命令行
1.4 下載安裝JDK
請參考《JDK下載安裝文檔.doc》安裝步驟
1.5 helloworld案例
1.5.1 執行流程
1.5.2 編寫代碼步驟
首先定義一個類
public class 類名
在類定義后加上一對大括號
{}
在大括號中間添加一個主(main)方法/函數
public static void main(String[] args){ }
在主方法的大括號中間添加一行輸出語句
System.out.println(“HelloWorld”);
1.5.3 案例代碼一
public class HelloWorld {
public static void main(String[]args) {
System.out.println("HelloWorld");
}
}
運行代碼步驟:
? 在命令行模式中,輸入javac命令對源代碼進行編譯,生成字節碼文件
– javac源文件名.java
? 編譯完成后,如果沒有報錯信息,輸入java命令對class字節碼文件進行解釋運行,執行時不需要添加.class擴展名
– javaHelloWorld
1.5.4 HelloWorld案例常見問題
A:找不到文件(都演示一下,讓學生看看出現的都是什么問題)
a:文件擴展名隱藏導致編譯失敗
b:文件名寫錯了
B:單詞拼寫問題(都演示一下,讓學生看看出現的都是什么問題)
a:class寫成Class
b:String寫成string
c:System寫成system
d:main寫成mian
C:括號匹配問題(都演示一下,讓學生看看出現的都是什么問題)
a:把類體的那對大括號弄掉一個
b:把方法體的那對大括號弄掉一個
c:把輸出語句的那對小括號弄掉一個
D:中英文問題(都演示一下,讓學生看看出現的都是什么問題)
a:提示信息:錯誤: 非法字符:\????的格式
注意:java編程中需要的基本上都是英文字符
第2章 環境配置
2.1 工具安裝
2.1.1 Notepad軟件的安裝和配置
為了讓我們寫的程序錯誤看起來更直接,我們安裝一款高級記事本軟件。
Notepad軟件的安裝和配置
設置 – 首選項 – 新建 – 默認語言和編碼
2.2 環境變量配置
2.2.1 案例說明
為什么要配置
程序的編譯和執行需要使用到javac和java命令,所以只能在bin目錄下寫程序
實際開發中,不可能把程序寫到bin目錄下,所以我們必須讓javac和java命令在任意目錄下能夠訪問
如何配置
創建新的變量名稱:JAVA_HOME
計算機-右鍵屬性-高級系統設置-高級-環境變量-系統變量
為JAVA_HOME添加變量值:JDK安裝目錄
在path環境變量最前面添加如下內容
%JAVA_HOME%\bin;
2.3 注釋
2.3.1 注釋概述
A: 什么是注釋
用于解釋說明程序的文字
B: Java中注釋分類
單行注釋
格式: //注釋文字
多行注釋
格式: /* 注釋文字 */
文檔注釋
格式:/**注釋文字 */
C: 注釋的作用
解釋說明程序,幫助我們調試錯誤
2.3.2 案例代碼
/*
注釋:用于解釋說明程序的文字
分類:
單行
多行
作用:解釋說明程序,提高程序的閱讀性
*/
//這是我的HelloWorld案例
public class HelloWorld {
/*
這是main方法
main是程序的入口方法
所有代碼的執行都是從main方法開始的
*/
public static void main(String[] args) {
//這是輸出語句
System.out.println("HelloWorld");
}
}
2.4 關鍵字
2.4.1 關鍵字概述
被Java語言賦予特定含義的單詞
2.4.2 關鍵字特點
組成關鍵字的字母全部小寫
常用的代碼編輯器,針對關鍵字有特殊的顏色標記,非常直觀,所以我們不需要去死記硬背,在今后的學習中重要的關鍵字也會不斷的出來。
2.4.3 案例代碼三:
/*
關鍵字:被Java語言賦予特定含義的單詞
特點:
A:組成關鍵字的字母全部小寫
B:常見的代碼編輯器,針對關鍵字有特殊的顏色標記
*/
public class HelloWorld {
public static void main(String[]args) {
System.out.println("HelloWorld");
}
}
第3章 語法格式
3.1 常量
3.1.1 常量概述
在程序執行的過程中,其值不可以發生改變的量
3.1.2 常量分類
字符串常量 用雙引號括起來的內容(“HelloWorld”)
整數常量 所有整數(12,-23)
小數常量 所有小數(12.34)
字符常量 用單引號括起來的內容(‘a’,’A’,’0’)
布爾常量 較為特有,只有true和false
空常量 null(數組部分講解)
3.1.3 案例代碼四:
/*
常量:在程序執行的過程中,其值不可以發生改變的量
常量分類:
A:字符串常量 "HelloWorld"
B:整數常量 12,-23
C:小數常量 12.34
D:字符常量 'a','0'
E:布爾常量 true,false
F:空常量 null(后面講解)
*/
public class ChangLiang {
public static void main(String[]args) {
//字符串常量
System.out.println("HelloWorld");
//整數常量
System.out.println(12);
System.out.println(-23);
//小數常量
System.out.println(12.34);
//字符常量
System.out.println('a');
System.out.println('0');
//布爾常量
System.out.println(true);
System.out.println(false);
}
}
3.2 變量
3.2.1 變量概述
在程序執行的過程中,在某個范圍內其值可以發生改變的量
從本質上講,變量其實是內存中的一小塊區域
3.2.2 變量定義格式
數據類型變量名 = 初始化值;
注意:格式是固定的,記住格式,以不變應萬變
3.2.3 變量圖解
3.3 數據類型
3.3.1 計算機存儲單元
變量是內存中的小容器,用來存儲數據。那么計算機內存是怎么存儲數據的呢?無論是內存還是硬盤,計算機存儲設備的最小信息單元叫“位(bit)”,我們又稱之為“比特位”,通常用小寫的字母b表示。而計算機最小的存儲單元叫“字節(byte)”,通常用大寫字母B表示,字節是由連續的8個位組成。
除了字節外還有一些常用的存儲單位,大家可能比較熟悉,我們一起來看看:
– 1B(字節) = 8bit
– 1KB= 1024B
– 1MB= 1024KB
– 1GB= 1024MB
– 1TB= 1024GB
3.3.2 數據類型概述和分類
A:為什么有數據類型
Java語言是強類型語言,對于每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間
B:Java中數據類型的分類
基本數據類型、引用數據類型
3.4 標識符
3.4.1 標識符概述
A 作用
給包,類,方法,變量等起名字
B 組成規則
由字符,下劃線_,美元符$組成
這里的字符采用的是unicode字符集,所以包括英文大小寫字母,中文字符,數字字符等。
注意事項
不能以數字開頭
不能是Java中的關鍵字
C : 命名原則:見名知意
a包
最好是域名倒過來,要求所有的字母小寫
b類或者接口
如果是一個單詞首字母大寫
如果是多個單詞每個單詞首字母大寫(駝峰標識)
c方法或者變量
如果是一個單詞全部小寫
如果是多個單詞,從第二個單詞首字母大寫
d常量
如果是一個單詞,所有字母大寫
如果是多個單詞,所有的單詞大寫,用下劃線區分每個單詞
3.4.2 案例代碼五
/* 標識符:
就是給包,類,方法,變量起名字的符號。
組成規則:
A:unicode字符
數字字符,英文大小寫,漢字(不建議使用漢字)
B:下劃線_
C:美元符$
注意事項
A:不能以數字開頭
B:不能是java中的關鍵字
常見命名規則:
A:基本要求
見名知意
B:常見的命名
a:包(其實就是文件夾,用于對類進行管理)
全部小寫,多級包用.隔開
舉例:com,com.itheima
b:類
一個單詞首字母大寫
舉例:Student,Car
多個單詞每個單詞的首字母大寫
舉例:HelloWorld
c:方法和變量
一個單詞首字母小寫
舉例:age,show()
多個單詞從第二個單詞開始每個單詞的首字母大寫
舉例:maxAge,getAge()
*/
public class BiaoZhiFu {
publicstatic void main(String[] args) {
//定義變量
//數據類型 變量名 = 初始化值;
inta = 10;
//正確
intb2 = 20;
//錯誤
//int2b = 30;
//不能是java中的關鍵字
//錯誤
//intpublic = 40;
}
}
3.5 定義變量
3.5.1 基本數據類型變量的定義和使用
變量的定義格式:
數據類型 變量名 = 初始化值;
基本數據類型:
byte,short,int,long,float,double,char,boolean
注意:
整數默認是int類型,定義long類型的數據時,要在數據后面加L。
浮點數默認是double類型,定義float類型的數據時,要在數據后面加F。
3.5.2 案例代碼六
public class VariableDemo {
publicstatic void main(String[] args) {
//定義byte類型的變量
byteb = 10;
System.out.println(10);
System.out.println(b);
//定義short類型的變量
shorts = 100;
System.out.println(s);
//定義int類型的變量
inti = 10000;
System.out.println(i);
//定義long類型的變量
long l =1000000000000000L;
System.out.println(l);
//定義float類型的變量
floatf = 12.34F;
System.out.println(f);
//定義double類型的變量
doubled = 12.34;
System.out.println(d);
//定義char類型的變量
charc = 'a';
System.out.println(c);
//定義boolean類型的變量
booleanbb = false;
System.out.println(bb);
}
}
3.5.3 變量定義的注意事項
變量未賦值,不能直接使用
引出變量的第二種使用格式
變量只在它所屬的范圍內有效。
變量在哪對大括號內,變量就屬于哪對大括號
一行上可以定義多個變量,但是不建議
3.5.4 案例代碼七
/*
變量定義注意事項:
1:變量未賦值,不能直接使用
2:變量只在它所屬的范圍內有效
變量屬于它所在的那對大括號
3:一行上可以定義多個變量,但是不建議
*/
public class VariableDemo2 {
public static voidmain(String[] args) {
//定義變量
int a = 10;
System.out.println(a);
int b;
b = 20; //變量在使用前賦值都是可以的
System.out.println(b);
{
int c = 100;
System.out.println(c);
}
//System.out.println(c);
/*
int aa,bb,cc;
aa = 10;
bb = 20;
cc = 30;
*/
/*
int aa = 10;
int bb = 20;
int cc = 30;
*/
int aa=10,bb=20,cc=30;
}
}
3.6 數據類型轉換
3.6.1 隱式數據類型轉換
取值范圍小的數據類型與取值范圍大的數據類型進行運算,會先將小的數據類型提升為大的,再運算
3.6.2 案例代碼八
/*
+:是一個運算符,做加法運算的。
我們在做運算的時候,一般要求參與運算的數據類型必須一致。
類型轉換:
隱式轉換
強制轉換
隱式轉換
byte,short,char-- int -- long -- float -- double
*/
public class TypeCastDemo {
publicstatic void main(String[] args) {
//直接輸出了運算的結果
System.out.println(3+ 4);
//定義兩個int類型的變量
int a = 3;
intb = 4;
intc = a + b;
System.out.println(c);
//定義一個byte類型,定義一個int類型
bytebb = 2;
intcc = 5;
System.out.println(bb+ cc);
//我能不能不直接輸出,用一個變量接受呢?
//用變量接受,這個變量應該有類型
//可能損失精度
//bytedd = bb + cc;
intdd = bb + cc;
System.out.println(dd);
}
}
3.6.3 強制類型數據轉換
強制轉換的格式
*b = (byte)(a + b);
強制轉換的注意事項
*如果超出了被賦值的數據類型的取值范圍得到的結果會與你期望的結果不同
3.6.4 案例代碼九
/*
強制轉換:
目標類型 變量名 = (目標類型) (被轉換的數據);
不建議強制轉換,因為會有精度的損失。
*/
public class TypeCastDemo2 {
public static void main(String[] args) {
inta = 3;
byteb = 4;
intc = a + b;
//byted = a + b;
byted = (byte) (a + b);
}
}
本文版權歸黑馬程序員JavaEE學院所有,歡迎轉載,轉載請注明作者出處。謝謝!