一. 前言
1. Java發(fā)展史
- Java 8 版本目前使用居多(2014年發(fā)布)
2. 計算機基礎(chǔ)知識
- 二進制:bit(比特丐箩、位)想际;萊布尼茨發(fā)明
- 字節(jié):Byte;計算機中的最小存儲單位;8位為1個字節(jié):1 Byte = 8 bit
- 1024 進制:1 KB = 1024 Byte矢渊;1 MB = 1024 KB
3. 常用命令
MS-Dos (Microsoft Disk Operating System)操作系統(tǒng)在Windows中以命令提示符(cmd
打開)形式存在
- 切換盤符:
C:
、d:
枉证、E:
- 進入文件夾:
cd 文件夾名稱
、cd 文件夾1\文件夾2\文件夾3
- 返回上一級:
cd ..
移必、cd \
- 查看當前目錄內(nèi)容:
dir
- 清空當前屏幕:
cls
- 退出:
exit
- 上/下一個命令:
方向↑/↓鍵
4. 開發(fā)環(huán)境
4.1. 名詞解釋
- JVM:Java 虛擬機(Java Virtual Machine):Java程序是通用的室谚,JVM在每個操作系統(tǒng)中充當翻譯者角色。
Java 的
跨平臺性
主要歸功于JVM崔泵、它本身并不具有跨平臺功能:每個操作系統(tǒng)下都有不同版本的虛擬機
- JRE:Java的運行時環(huán)境(Java Runtime Environment ):包含
JVM
和運行時所需要的核心類庫
想要運行已有的 Java 程序秒赤,只需要安裝 JRE即可
- JDK: Java程序開發(fā)工具包(Java Development Kit);包含JRE和開發(fā)人員使用的工具
想要開發(fā) Java 程序,則必須安裝 JDK
4.2 環(huán)境變量的配置
新建全局環(huán)境變量:變量名為:
JAVA_HOME
憎瘸、變量值為:JDK的安裝路徑(bin目錄的上一級即可)編輯 path 中的值:增加一條
%JAVA_HOME%\bin
的值即可
二. HelloWorld入門程序
Java開發(fā)的三個步驟:編寫入篮、編譯、運行
- 編寫:使用編輯器(高級編輯器)編寫Java程序:
HelloWorld.java
- 編譯:使用javac.exe進行編譯 -> Java字節(jié)碼文件:
javac HelloWorld.java
運行后生成HelloWorld.class
文件 - 運行:使用java.exe運行:
java HelloWorld
【注】: 不要加后綴名
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello,Wolrd !!!");
}
}
注意:類名稱必須與文件名稱一模一樣
三. 關(guān)鍵字與標識符
關(guān)鍵字:被保留的幌甘、具有特殊含義的
- 完全小寫的字母
- 在高級編輯器中潮售,有特殊顏色的
標識符:自定義的內(nèi)容,如類名稱锅风、接口酥诽、變量名稱等
-
命名規(guī)則(硬性要求)
可包含26個英文字母(包含大小寫)、0 - 9數(shù)字皱埠、$ 和 _(下劃線)
不能以數(shù)字開頭
不能是關(guān)鍵字
-
命名規(guī)范(軟性要求)
- 類名稱:大駝峰式(如:HelloWorld)
- 變量名:小駝峰式(如:helloWorld)
- 方法名:同變量名
四. 數(shù)據(jù)類型&常量&變量
1.數(shù)據(jù)類型
- 基本數(shù)據(jù)類型:4類8種
- 引用數(shù)據(jù)類型:如字符串肮帐、數(shù)組、類边器、接口等
基本數(shù)據(jù)類型:
- 整型:byte训枢、short、int(默認)忘巧、long
- 浮點型:float(單精度)恒界、double(默認、雙精度)
- 字符型:char
- 布爾型:boolean
類型 | 字節(jié) | 默認值 | 范圍 |
---|---|---|---|
byte 字節(jié)型 | 1 | 0 | -2^7 ~2^7-1 |
short 短整型 | 2 | 0 | -2^15 ~ 2^15-1 |
int 整型 | 4 | 0 | -2^31 ~ 2^31-1 |
long 長整型 | 8 | 0L | -2^63 ~2^63-1 |
float 單精度浮點型 | 4 | 0.0F | 3.402823E+38 ~ 1.401298E-45 |
double 單精度浮點型 | 8 | 0.0D | .797693E+308~ 4.9000000E-324 |
char 字符型 | 2 | 空格 | |
bool | 1 | false |
2. 常量
程序運行期間袋坑,不改變值的量
- 字符串常量:用雙引號引起來的量
- 整型常量:直接寫上的數(shù)字(沒有小數(shù)點)
- 浮點型常量:直接寫上的小數(shù)(有小數(shù)點)
- 字符常量:單引號引起來的單個字符(單引號之間要有內(nèi)容仗处,沒有則不行)
- 布爾類型:true/false
- 空常量:null(代表沒有任何數(shù)據(jù),當然不能用來直接打印輸出)
3. 變量
程序運行期間枣宫,值發(fā)生改變的量
創(chuàng)建多個變量婆誓,變量名不能重復(fù)
對于
float
和long
類型時,后綴F和L不能丟掉如果使用
byte
也颤、short
類型的變量洋幻,那右側(cè)的數(shù)據(jù)不能超過左邊類型的范圍沒有進行賦值的變量,不能直接使用
不能超過作用域(從定義變量的一行開始翅娶,一直到所屬的大括號結(jié)束為止)的范圍
可以通過一個語句創(chuàng)建多個變量文留,但不推薦
拓展:
- 如果表達式中全為常量好唯,編譯器會直接得到表達式的結(jié)果-->編譯器的常量優(yōu)化
五. 數(shù)據(jù)類型轉(zhuǎn)換
1. 自動類型轉(zhuǎn)換(隱式)
特點:代碼不需要進行特殊處理,自動完成
規(guī)則:數(shù)據(jù)范圍從小到大(等號右邊數(shù)據(jù)范圍小燥翅,左邊范圍大)
2. 強制類型轉(zhuǎn)換(顯式)
特點:代碼需要進行特殊格式處理
格式:范圍小的類型 范圍小的變量名 = (范圍小的類型)原本范圍大的數(shù)據(jù)
3. 數(shù)據(jù)轉(zhuǎn)換注意事項
強制類型轉(zhuǎn)換一般不推薦使用 --> 精度損失骑篙、數(shù)據(jù)溢出
byte
、short
森书、char
這三種類型都可以發(fā)生數(shù)學運算靶端,例如加法 “+”byte
、short
凛膏、char
這三種類型都可以發(fā)生數(shù)學運算杨名,在運算時首先都會被提升成int
類型,然后再計算猖毫。char
類型對應(yīng)的數(shù)值參考ASCII碼表ASCII碼表:
48--0
台谍、65--A
、97--a
boolean類型不能發(fā)生數(shù)據(jù)類型轉(zhuǎn)換(Java中不能當作0/1對待)
對于byte吁断、short趁蕊、char三種類型來說,如果右側(cè)賦值的數(shù)值沒有超過范圍仔役,那么javac編譯器將會自動隱含地為我們補上一個(byte)介衔、(short)、(char)
1. 如果沒有超過左側(cè)的范圍骂因,編譯器補上強轉(zhuǎn)
2. 如果右側(cè)超過了左側(cè)數(shù)據(jù)類型范圍炎咖,編譯器報錯
4. 編碼表
數(shù)字和字符的對照關(guān)系
ASCII碼表:American Standard Code for Information Interchange,美國信息交換標準代碼
Unicode碼表:萬國碼寒波,開頭0-127與ASCII完全一樣乘盼,就連emoji也有數(shù)字與之對應(yīng)
六. 運算符
1. 算數(shù)運算符
+ |
加法運算,字符串連接運算 |
---|---|
- |
減法運算 |
* |
乘法運算 |
/ |
除法運算:結(jié)果是整數(shù)(只看商俄烁,不看余數(shù)) |
% |
取模運算:兩個數(shù)字相除取余數(shù)(只有對于整數(shù)來說绸栅,取模才有意義) |
++ 、--
|
自增页屠、自減運算 |
四則運算中:
一旦運算中有不同類型的數(shù)據(jù)類型粹胯,那么結(jié)果將會是數(shù)據(jù)類型范圍大的那種
任何數(shù)據(jù)類型和字符串進行連接操作的時候,結(jié)果都會變成字符串
自增辰企、自減:
基本含義:讓一個變量加1风纠、減1
格式:卸載變量之前或者變量之后:
++num
、num++
-
使用方式:
單獨使用:不和其他操作混合 --> 前++和后++沒有任何區(qū)別
-
混合使用:如賦值運算牢贸、打印輸出 --> 有重大區(qū)別竹观,但該+/-一定會+/-
如果是【前++】,那么變量【立刻馬上+1】,然后拿著結(jié)果進行使用 --【先+后用】
如果是【后++】臭增,那么首先使用變量本來的數(shù)據(jù)懂酱,然后【再讓變量+1】--【先用后+】
注意事項:只有變量才能使用自增/自減運算
2. 賦值運算符
賦值運算符 | 含義 |
---|---|
= |
等于號 |
+ = |
加等于:a += 1 相當于 a = a+1 |
- = |
減等于:a -= 1 相當于 a = a-1 |
*= |
乘等于 |
/= |
除等于 |
%= |
取模等于 |
注意事項:
只有變量才能使用賦值運算符,常量不能進行賦值
復(fù)合賦值運算符中隱含了一個強制類型轉(zhuǎn)換
3. 比較運算符
比較運算符 | 含義 |
---|---|
== |
比較兩邊數(shù)據(jù)是否相等誊抛,相等結(jié)果為true |
< |
左邊數(shù)據(jù)是否小于右邊數(shù)據(jù)列牺,成立則結(jié)果為true |
> |
|
<= |
|
>= |
|
!= |
如果兩邊數(shù)據(jù)不相等,結(jié)果為true |
注意事項:
結(jié)果是一個boolean值
如果進行多次判斷拗窃,不能連著寫(如:1<2<3)昔园,需要用到邏輯運算符
4. 邏輯運算符
邏輯運算符 | 含義 |
---|---|
與 &&
|
全true則true |
或 ||
|
有true則true |
非 !
|
取反:本來是true,取反變false |
短路:
- 如果根據(jù)左邊已經(jīng)可以判斷得到最終結(jié)果并炮,那么右邊的代碼將不再執(zhí)行,從而節(jié)省一定的性能
注意事項:
- 邏輯運算符只能用于boolean值
5. 三元運算符
一元運算符:只需要一個數(shù)據(jù)就可以進行操作甥郑。如取反逃魄、自增、自減
二元運算符:需要兩個數(shù)據(jù)才能操作的運算符澜搅。如加法伍俘、減法
三元運算符:需要三個數(shù)據(jù)才可以操作的運算符
格式:
數(shù)據(jù)類型 變量名稱 = 條件判斷 ? 表達式A:表達式B
流程:
首先判斷條件是否成立:
如果成立為true勉躺,將表達式A的值賦值給左側(cè)的變量癌瘾;
如果成立為false,將表達式B的值賦值給左側(cè)的變量饵溅;
二者選其一妨退。
注意事項;
必須同時保證表達式A和表達式B都符合左側(cè)數(shù)據(jù)類型的要求
三元運算符的結(jié)果必須被使用(必須賦值或者打印輸出)
七. 流程控制語句
1. 順序結(jié)構(gòu)
按代碼順序執(zhí)行
2. 選擇結(jié)構(gòu)
1. if 結(jié)構(gòu)
- 單
if
語句
if(關(guān)系表達式){
語句體//true則執(zhí)行
}
- 標準的
if...else
語句--可用三元運算符轉(zhuǎn)換
if(關(guān)系表達式) {
語句體1;//true則執(zhí)行
} else {
語句體2;//false則執(zhí)行
}
- 復(fù)合的
if...else
語句:else if
if(關(guān)系表達式1) {
語句體1;
} else if(關(guān)系表達式2) {
語句體2;
}
...
} else if(關(guān)系表達式3){
語句體3;
} else{
語句體4;
}
2. switch 結(jié)構(gòu)
switch(表達式){
case 常量值1;
語句體1;
break;
case 常量值2;
語句體2;
break;
...
default:
語句體n;
break;
}
注意事項;
多個case后面的數(shù)值不能重復(fù)
-
switch后面小括號只能是下列數(shù)據(jù)類型:6種
基本數(shù)據(jù)類型:byte/short/char/int
引用數(shù)據(jù)類型:String字符串、enum枚舉
switch語句很靈活:前后順序可顛倒蜕企、
break可省略(不推薦)-- case穿透停止條件:匹配到哪一個case就從哪一個位置向下執(zhí)行咬荷,直到遇到了break或整體結(jié)束
3. 循環(huán)結(jié)構(gòu)
1. for 循環(huán)
for(初始化表達式;布爾表達式轻掩;步進表達式){
循環(huán)體幸乒;
}
2. while 循環(huán)
表準格式:
while(條件判斷){
循環(huán)體;
}
拓展格式:效果與for循環(huán)一樣
初始化語句;
while(條件判斷){
循環(huán)體唇牧;
步進語句罕扎;
}
3. do...while 循環(huán)
do{
循環(huán)體;
} while (條件判斷)丐重;
4. 三種循環(huán)的區(qū)別
如果條件判斷從來沒有滿足過腔召,那么for循環(huán)和while循環(huán)會執(zhí)行0次,但do...while會執(zhí)行1次
for循環(huán)的變量在小括號內(nèi)定義扮惦,只有循環(huán)內(nèi)部才可以使用宴咧。while和do-while循環(huán)的初始化語句本來就在外面,所以出循環(huán)后還可以繼續(xù)使用
凡是次數(shù)確定場景多用for循環(huán)径缅,否則while循環(huán)
5. 死循環(huán)
無心之過
有意為之
while (true){
循環(huán)體;
}
4. 條件控制語句
-
break
關(guān)鍵字用在switch語句中掺栅,一旦執(zhí)行烙肺,整個switch語句立即結(jié)束
用在循環(huán)語句中,一旦執(zhí)行氧卧,整個循環(huán)語句立刻結(jié)束桃笙,打斷循環(huán)
-
continue
關(guān)鍵字- 一旦執(zhí)行,立刻跳過當前次循環(huán)剩余內(nèi)容沙绝,馬上開始下一次循環(huán)