01- Java基礎(chǔ)知識

一. 前言

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)境變量的配置

  1. 新建全局環(huán)境變量:變量名為:JAVA_HOME 憎瘸、變量值為:JDK的安裝路徑(bin目錄的上一級即可)

  2. 編輯 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)容,如類名稱锅风、接口酥诽、變量名稱等

  1. 命名規(guī)則(硬性要求)

    • 可包含26個英文字母(包含大小寫)、0 - 9數(shù)字皱埠、$ 和 _(下劃線)

    • 不能以數(shù)字開頭

    • 不能是關(guān)鍵字

  2. 命名規(guī)范(軟性要求)

    • 類名稱:大駝峰式(如:HelloWorld)
    • 變量名:小駝峰式(如:helloWorld)
    • 方法名:同變量名

四. 數(shù)據(jù)類型&常量&變量

1.數(shù)據(jù)類型

  1. 基本數(shù)據(jù)類型:4類8種
  2. 引用數(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ù)

  • 對于floatlong類型時,后綴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ù)溢出

  • byteshort森书、char這三種類型都可以發(fā)生數(shù)學運算靶端,例如加法 “+”

  • byteshort凛膏、char這三種類型都可以發(fā)生數(shù)學運算杨名,在運算時首先都會被提升成int類型,然后再計算猖毫。char類型對應(yīng)的數(shù)值參考ASCII碼表

  • ASCII碼表:48--0台谍、65--A97--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

  • 格式:卸載變量之前或者變量之后:++numnum++

  • 使用方式:

    • 單獨使用:不和其他操作混合 --> 前++和后++沒有任何區(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)

  1. if語句
if(關(guān)系表達式){
    語句體//true則執(zhí)行
}
  1. 標準的if...else語句--可用三元運算符轉(zhuǎn)換
if(關(guān)系表達式) {
   語句體1;//true則執(zhí)行
} else {
   語句體2;//false則執(zhí)行 
}
  1. 復(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)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搏明,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子闪檬,更是在濱河造成了極大的恐慌星著,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粗悯,死亡現(xiàn)場離奇詭異虚循,居然都是意外死亡,警方通過查閱死者的電腦和手機样傍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門横缔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衫哥,你說我怎么就攤上這事茎刚。” “怎么了撤逢?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵膛锭,是天一觀的道長。 經(jīng)常有香客問我蚊荣,道長泉沾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任妇押,我火速辦了婚禮跷究,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘敲霍。我一直安慰自己俊马,他們只是感情好,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布肩杈。 她就那樣靜靜地躺著柴我,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扩然。 梳的紋絲不亂的頭發(fā)上艘儒,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音,去河邊找鬼界睁。 笑死觉增,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的翻斟。 我是一名探鬼主播逾礁,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼访惜!你這毒婦竟也來了嘹履?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤债热,失蹤者是張志新(化名)和其女友劉穎砾嫉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窒篱,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡焕刮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舌剂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡暑椰,死狀恐怖霍转,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情一汽,我是刑警寧澤避消,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站召夹,受9級特大地震影響岩喷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜监憎,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一纱意、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鲸阔,春花似錦偷霉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渔扎,卻和暖如春硫狞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工残吩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留财忽,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓世剖,卻偏偏與公主長得像定罢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子旁瘫,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容