java 學(xué)習(xí)

JAVA 第一天

1. 認(rèn)識(shí) 計(jì)算機(jī)語(yǔ)言

機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言


高級(jí)語(yǔ)言執(zhí)行方式: 解釋執(zhí)行 ?編譯后執(zhí)行

2. 關(guān)于Java

Java簡(jiǎn)史

1991 開(kāi)始 ?SUN 公司 ?Oak ?詹姆斯.高斯林


Java的三個(gè)版本

老的名稱: j2se ?j2ee ?j2me

javaSE :基礎(chǔ)版 桌面應(yīng)用 (單機(jī)的)

javaEE :企業(yè)級(jí) web應(yīng)用

javaME :微型版 移動(dòng)端


java的特點(diǎn)

1. 跨平臺(tái)性

2. 面向?qū)ο?/p>

3. 安全性

4. 多線程

5. 簡(jiǎn)單易用


3. Java程序的運(yùn)行原理 (先編譯 后執(zhí)行)

1) 源文件 用來(lái)編寫(xiě)代碼,后綴名是 *.java

2) 編譯 源文件 生成字節(jié)碼文件 *.class ,編譯的命令是javac

3) 需要通過(guò)jvm的類加載器加載 程序 ,java 執(zhí)行命令

4) jvm 通過(guò) 字節(jié)碼文件來(lái) 生成 對(duì)應(yīng)系統(tǒng)的 機(jī)器碼

5) 操作系統(tǒng) 執(zhí)行機(jī)器碼 最終反映到硬件平臺(tái)上


4. Java程序的跨平臺(tái)原理 (一次編譯 到處執(zhí)行)

這里的平臺(tái)指的就是操作系統(tǒng)

jvm Java虛擬機(jī)是完成Java程序跨平臺(tái)的重要組件。

java程序可以跨平臺(tái) jvm不是跨平臺(tái)的

也就是說(shuō)不同的操作系統(tǒng)是需要安裝不同的虛擬機(jī)的


5. Java語(yǔ)言環(huán)境的搭建


關(guān)于環(huán)境

JDK : Java 開(kāi)發(fā)工具包


JRE :Java 運(yùn)行時(shí)環(huán)境


JVM :Java 虛擬機(jī)


JDK中是包含 JRE ?JRE中包含JVM


關(guān)于環(huán)境的安裝和配置

1. 獲得安裝程序 途徑 oracle官網(wǎng)下載

jdk-8u144-windows-x64.exe


2. 安裝 jdk 和 jre

看圖按


3. 配置環(huán)境變量

JAVA_HOME :

新建的 值 jdk的安裝路徑


path :

修改 在變量值得尾部添加

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin


classpath :

新建的 值

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

4. 驗(yàn)證是否配置成功

dos命令

驗(yàn)證三個(gè)命令

java ??執(zhí)行名

javac ?編譯命令

Java -version ?查看版本信息


6. 編寫(xiě)執(zhí)行 第一個(gè) java程序

1) 新建一個(gè)文本文檔

文件名稱的首字母 大寫(xiě)

更改后綴名為 *.java

這個(gè)文件叫做 源文件 用來(lái)編寫(xiě)程序的


2) 打開(kāi)文件書(shū)寫(xiě)程序

public class MingRui{

public static void main(String[] args){

System.out.println("明瑞教育,世界第一!");

}

}

書(shū)寫(xiě)完成 注意保存


3) 需要先將 源文件 編譯成 字節(jié)碼文件 *.class

當(dāng)前文件夾 打開(kāi) dos命令窗口

使用 javac 文件名.java

執(zhí)行完命令之后 文件夾中會(huì)生成 文件名.class文件


4) 執(zhí)行程序

需要命令 ?java 文件名

第二

1. dos 命令

關(guān)于電腦的操作

1. 可視化界面操作方式 ?簡(jiǎn)單

2. 命令行操作方式 ?dos命令

windos中 代開(kāi) 命令行

1) 搜索 cmd ?打開(kāi)的是用戶的文件夾

2) windows+r 打開(kāi)的是用戶的文件夾

3) 文件夾 地址欄 輸入 cmd ?打開(kāi)的是當(dāng)前文件夾

3. 命令

dir :查看子目錄

md : 新建目錄

rd : 刪除目錄

cd : 打開(kāi)某一個(gè)文件夾

.. 表示上一層目錄

. 表示當(dāng)前目錄

目錄名 打開(kāi)指定的目錄

盤符: 表示切換根目錄


cls :清除屏幕


ping : 嘗試是否能鏈接到指定的地址

127.0.0.1 ?代表本機(jī)地址


ipconfig: 查看計(jì)算機(jī)當(dāng)前的ip地址


help 查看能使用的dos命令

help + 命令




2.分析Java代碼

1) 關(guān)于類


關(guān)鍵字 class 用來(lái)定義一個(gè)類


語(yǔ)法 : class 類名 { 類體 }


類是Java程序 編譯和執(zhí)行的基本單位 ,

所有的Java程序都應(yīng)該是在類中書(shū)寫(xiě)的

一個(gè)Java文件中是可以有多個(gè)類


關(guān)于公共類

公共類就是用 public修飾的類

語(yǔ)法 :public class 類名 {類體}

一個(gè)Java文件中只能有一個(gè)公共類

公共類的類名必須和文件名一致


2) 主函數(shù)/主方法 /入口函數(shù)/入口方法

固定的書(shū)寫(xiě)格式 (寫(xiě)錯(cuò)了的話 編譯不會(huì)報(bào)錯(cuò) 執(zhí)行才報(bào)錯(cuò))

public static void main(String[] args){ 方法體 }


功能: 1. 程序執(zhí)行的入口

2. 如果一個(gè)類 沒(méi)有主函數(shù) 是不能單獨(dú)執(zhí)行的

3. 每一個(gè)類中只能有一個(gè)主函數(shù)

4. 主函數(shù)的方法體中 書(shū)寫(xiě)的就是我們要執(zhí)行的代碼


3) 兩種打印方式

System.out.println("文字內(nèi)容"); 打印后換行

System.out.print("文字內(nèi)容"); 打印后不換行

分號(hào) ; 代表一行代碼的結(jié)束 。


4) 代碼格式

每次發(fā)生 {} 的嵌套 {}中的內(nèi)容 需要向后縮進(jìn) 一個(gè)制表位


5) 命名規(guī)范

a. 標(biāo)識(shí)符命名規(guī)則

1.標(biāo)識(shí)符只能由數(shù)字,字母,下劃線_,$美元符號(hào)組成。

2.不能是java關(guān)鍵字

3.不能已數(shù)字開(kāi)始

4. 嚴(yán)格區(qū)分大小寫(xiě)

5. 在程序中盡量使用有意義的單詞進(jìn)行命名

b. 類名規(guī)范:所有類的名稱 首字母都必須大寫(xiě)。

c. 駝峰命名規(guī)范: 當(dāng)標(biāo)識(shí)符由多個(gè)單詞組成時(shí) 從第二個(gè)單詞開(kāi)始首字母大寫(xiě)。


6)注釋

單行注釋 // 從這的開(kāi)始后的一行都被注釋掉了

塊注釋 /* ?*/ ?從 /* 開(kāi)始 到 */ 結(jié)束都被注釋掉了

文檔注釋 /** ??*/ 注釋范圍和 塊注釋相同

功能 :通過(guò) javadoc命令可以生成 ?類的說(shuō)明書(shū) 幫助手冊(cè)



3. 數(shù)據(jù)類型與變量

1) java是一門強(qiáng)數(shù)據(jù)類型的編程語(yǔ)言。

Java的數(shù)據(jù)分類

基本數(shù)據(jù)類型

數(shù)值

整數(shù)

byte ?字節(jié)型 ?1字節(jié) ?取值-128 ~ 127

short 短整型 ?2字節(jié)

int 整型 ?4字節(jié)

long ?長(zhǎng)整型 ?8字節(jié)

小數(shù) (浮點(diǎn)類型)

double ?雙精度小數(shù) 8字節(jié)

float ??單精度小數(shù) 4字節(jié)



字符 char 2字節(jié) ?代表一個(gè)字符 中文或者英文


布爾 boolean ?1字節(jié) 只能代表真和假

true 代表真

false 代表假


引用數(shù)據(jù)類型(通過(guò)基本數(shù)據(jù)類型組合而成的)

數(shù)組 Array

類 class

接口 interface

注解 annotation


2)進(jìn)制和字節(jié)

進(jìn)制: 記數(shù)方式

十進(jìn)制 :0 1 2 3 4 5 6 7 8 9 10 11

八進(jìn)制 :0 1 2 3 4 5 6 7 10

十六 ??:0 1 2 3 4 5 6 7 8 9 a b c d e f 10

二進(jìn)制 :0 1 10 11


計(jì)算機(jī)是使用 二進(jìn)制進(jìn)行 存儲(chǔ)的


數(shù)據(jù)單位

bit 位 ?只能存放一個(gè)二進(jìn)制的數(shù)字

8個(gè) bit位 = 1B 字節(jié)


4. 變量與常量

1)常量 constant: 常量是在程序運(yùn)行期間不會(huì)發(fā)生改變的值。 固定的值

整數(shù)的 二進(jìn)制 8進(jìn)制和 16的表示

字符 常量 必須 '' 單引號(hào)包裹 只能有一個(gè)字符

轉(zhuǎn)義字符 \t \r ... ...


字符串常量 ?必須使用 "" 包裹


2)變量 variable:

變量本質(zhì)上就是內(nèi)存中一塊被命名的存儲(chǔ)空間,

空間內(nèi)可以存儲(chǔ)不同的常量值。


變量的定義

1.定義變量時(shí)直接賦值

類型 ?變量名 = 值;


2. 先定義 后賦值

類型 ?變量名;

變量名 = 值;


3. 同時(shí)定義多個(gè)變量

類型 ?變量名= 值,變量名 ... ...;


變量的組成

1.類型:可以是Java中的任意數(shù)據(jù)類型

2.變量名:必須是一個(gè)合法標(biāo)識(shí)符 遵守駝峰命名法

3.值:變量中真正存儲(chǔ)的數(shù)據(jù)

4.存儲(chǔ)單元:內(nèi)存中的空間 大小由數(shù)據(jù)類型決定



3) 類型之間的轉(zhuǎn)換

注意: boolean類型不能和任何類型轉(zhuǎn)換



默認(rèn)轉(zhuǎn)換/隱式轉(zhuǎn)換:

從小的數(shù)據(jù)類型或精度 轉(zhuǎn)換為 大的數(shù)據(jù)類型或精度

不需要任何操作 自動(dòng)完成


強(qiáng)制轉(zhuǎn)換/顯示轉(zhuǎn)換:

從大的數(shù)據(jù)類型或精度 轉(zhuǎn)換為 小的數(shù)據(jù)類型或精度

需要顯示的聲明

格式 : 目標(biāo)類型 變量 = (目標(biāo)類型) 值;



4) 成員變量 與 局部變量


成員變量:定義在類內(nèi) 方法外

有初始值 ?不賦值也可以使用


局部變量:定義在方法 內(nèi)的

沒(méi)有初始值 不賦值不能使用


5) 變量的作用域和生命周期

作用域:在程序中變量生效的范圍

生命周期:在程序運(yùn)行的期間 變量存活的有效期時(shí)間

第三

1.運(yùn)算符號(hào): 可以理解為在程序中擁有不同功能的特殊符號(hào)。

表達(dá)式: 可以理解為由運(yùn)算符參與,

并且最終能計(jì)算出結(jié)果的算式。

當(dāng)我們輸出一個(gè)表達(dá)式的時(shí)候,

輸出的是這個(gè)表達(dá)式的計(jì)算結(jié)果。


1) 數(shù)學(xué)運(yùn)算符號(hào)

+ ??- ??* ??/ ??%(模) ?++(遞增) ?--(遞減)

注意: 1.所有的數(shù)學(xué)運(yùn)算結(jié)果的類型,

都以參與運(yùn)算的最大的數(shù)據(jù)類型和精度為準(zhǔn)。


2. 如果計(jì)算中想獲得小數(shù)

那么參與計(jì)算的 數(shù)據(jù)類型 至少有一個(gè)是小數(shù)


3. % 代表的是 取得余數(shù)


4. 遞增和遞減

在變量前++(--) 和后++(--)的區(qū)別

1) 單獨(dú)使用沒(méi)有區(qū)別

2) 和其他功能一起使用時(shí)

++ 在前 先+1 在使用

++ 在后 先使用 在+1

5. 表達(dá)式類型的自動(dòng)提升

所有的byte型. short型和char型將被提升到int型

例外:final修飾的short,char變量相加后不會(huì)被自動(dòng)提升


2) 賦值運(yùn)算符號(hào)

= ?+= ??-= ??*= ??/= ??%=

賦值: 把符號(hào)后的 值 給符號(hào)前的變量


例子 y+=100; ??// y = y+100;




3) 比較運(yùn)算符號(hào)

> ?>= ??< ??<= ??== ??!=


注意: 所有 比較運(yùn)算 結(jié)果都是 boolean


==比較 兩邊的值是否相等 兩邊相等 返回 true

!=比較 兩邊的值是否不相等 兩邊不相等 返回 true


一個(gè)=是賦值 兩個(gè)== 是比較


4) 布爾運(yùn)算符號(hào)/邏輯運(yùn)算符號(hào)

&與 ?&&短路與 ??|或 ?||短路或 ??!非 ???^ (異或)


注意 :計(jì)算boolean類型的值 結(jié)果也是 boolean類型


運(yùn)算規(guī)則

1.與(& 和&&) :兩邊都真才是真,一邊為假就是假。

2.或(|和||):兩邊都假才是假,一邊為真就是真。

3.非(!):非真即為假,非假即為真,取反。

4.異或(^):兩邊相同就為假,兩邊不同就是真。


短路 : 兩個(gè)的會(huì)短路

什么是短路:當(dāng)表達(dá)式前半段的值已經(jīng)確定了整個(gè)表達(dá)式的結(jié)果

后半段不執(zhí)行

&& 前邊為 false 假的時(shí)候 ?會(huì)短路

|| 前邊為 true 真的時(shí)候 ?會(huì)短路



5) 字符串鏈接符號(hào)

+

當(dāng)+出現(xiàn)在 字符串值得兩邊時(shí) 就是字符串連接符

任何數(shù)據(jù)類型 鏈接上字符串 都會(huì)變成 字符串類型


字符串的常量 是需要使用 "" 包裹的

字符串在Java中的類型 String

String name = "張曉明";




6) 條件運(yùn)算符號(hào)/三元運(yùn)算符號(hào)/三目運(yùn)算符號(hào)

? :


布爾類型的結(jié)果? 選項(xiàng)1:選項(xiàng)2;


當(dāng)?前的結(jié)果是 true 就選擇 : 前的選項(xiàng)1

當(dāng)?前的結(jié)果是 false 就選擇 : 后的選項(xiàng)2


變量 g1

變量 g2

如果 g1>g2 ? 我就選擇 g1 :我就選擇 g2



7) 位運(yùn)算符號(hào)/二進(jìn)制運(yùn)算符號(hào)

& ??| ??~ ??^ ??<< ??>> ??>>>


左移 << : 左移一位 相當(dāng)于 *2

右移 >> : 右移 一位 相當(dāng)于 /2


8) 其他運(yùn)算符號(hào)

引用數(shù)據(jù)類型時(shí) 使用

new 實(shí)例化

instanceof 判斷一個(gè)對(duì)象是否屬于某一個(gè)類

控制語(yǔ)句中的

if 語(yǔ)句

第四

流程控制語(yǔ)句

注意: 程序默認(rèn)是自上而下執(zhí)行的

控制語(yǔ)句 : 控制代碼 執(zhí)行或者不執(zhí)行 ?以及 反復(fù)執(zhí)行


判斷語(yǔ)句 關(guān)鍵字 if 如果 else 否則

1) if語(yǔ)句 (單分支判斷)

if語(yǔ)句是指如果滿足某種條件,就進(jìn)行某種處理


語(yǔ)法:

if(條件表達(dá)式){

代碼塊;

… …

}


執(zhí)行順序:

if后 ()內(nèi)的 表達(dá)式的結(jié)果只能是 boolean值

如果 if 的條件是 true 就執(zhí)行 {}內(nèi)的代碼塊

如果 if 的條件是 false 就不執(zhí)行 {}內(nèi)的代碼塊


2) if else語(yǔ)句 (雙分支判斷)

語(yǔ)法:

if(條件表達(dá)式){

執(zhí)行語(yǔ)句;

… …

} else {

執(zhí)行語(yǔ)句;

… …

}


執(zhí)行順序:

if后 ()內(nèi)的 表達(dá)式的結(jié)果只能是 boolean值

如果 if 的條件是 true 就執(zhí)行 if后{}內(nèi)的代碼塊

如果 if 的條件是 false 就執(zhí)行 else后{}內(nèi)的代碼塊


3) else if 語(yǔ)句 (多分枝判斷)

if(條件1){

執(zhí)行語(yǔ)句1;

… …

} else if(條件2){

執(zhí)行語(yǔ)句2;

… …

} else if(條件3){

執(zhí)行語(yǔ)句3;

… …

} ... ...

else if(條件n){

執(zhí)行語(yǔ)句n;

… …

} else{

最后的語(yǔ)句塊

}


執(zhí)行順序:

從上至下 判斷條件

某一個(gè)條件為true就執(zhí)行它后邊{}內(nèi)的語(yǔ)句塊

如果所有條件都是 false 就執(zhí)行

最后一個(gè)else后{}內(nèi)的語(yǔ)句塊

不管語(yǔ)句塊有多少 都只執(zhí)行 一個(gè)


選擇語(yǔ)句 關(guān)鍵字 ?switch選擇 case事件 ?default默認(rèn) ?break中斷


選擇題1:以下 Java運(yùn)行環(huán)境 的單詞是(B)

A: jdk

B:jre

C: jvm


switch(值){

case 常量值1:語(yǔ)句塊;break;

case 常量值2:語(yǔ)句塊;break;

case 常量值3:語(yǔ)句塊;break;

case 常量值4:語(yǔ)句塊;break;

... ...

default:語(yǔ)句塊;break;

}


switch后的值得類型都能是什么?

需要注意的是switch后的表達(dá)式的值只能是

byte ,short ,int ,char類型,

從jdk1.7開(kāi)始可以是String字符串類型的

值還可以是enum(枚舉)



執(zhí)行順序

使用 switch后()內(nèi)的 值和

case后的值 進(jìn)行比較

如果相等就執(zhí)行 case后的語(yǔ)句

如果都不相等就執(zhí)行 default后的語(yǔ)句塊


關(guān)于break 中斷

在switch語(yǔ)句塊中 碰到了break表示執(zhí)行結(jié)束

如果一直碰不到 break 就繼續(xù)向下執(zhí)行

直到所有的 語(yǔ)句塊都運(yùn)行完 或碰到下一個(gè)break





循環(huán)語(yǔ)句 關(guān)鍵字 ?while ?do ?for 循環(huán) ???break中斷 ?continue繼續(xù)


1) while 循環(huán)

語(yǔ)法

定義初始值變量;

while(循環(huán)條件){

循環(huán)體;

步長(zhǎng);

}


執(zhí)行順序

先執(zhí)行初始值變量 (只執(zhí)行一次)

判斷條件

條件為 true ?向下執(zhí)行 --->循環(huán)體 和 步長(zhǎng) --->判斷條件


條件為 false ---->結(jié)束循環(huán)


循環(huán)的4個(gè)要素

1. 初始值:定義了一個(gè)變量賦值,代表循環(huán)從幾開(kāi)始

記錄循環(huán)的次數(shù)

2. 循環(huán)條件: 為真開(kāi)始循環(huán) 為假結(jié)束循環(huán)

3. 循環(huán)體: 重復(fù)的代碼塊

4. 步長(zhǎng): 改變初始值 使條件從真到假 從而結(jié)束循環(huán)




2) do while 循環(huán)

語(yǔ)法

初始值;

do{

循環(huán)體;

步長(zhǎng);

}while(條件);


while 和 do while的不同

1.書(shū)寫(xiě)上

while 是先書(shū)寫(xiě)條件

do while 最后書(shū)寫(xiě)條件

2. 執(zhí)行順序

while 是先判斷條件 然后執(zhí)行循環(huán)體

do while 是先執(zhí)行循環(huán)體 然后判斷條件

3. 結(jié)果的不同

如果初始條件為 true時(shí) 結(jié)果沒(méi)有不同

如果初始條件為 false時(shí)

while循環(huán)不執(zhí)行

如果初始條件為 false時(shí)

do while循環(huán)至少執(zhí)行一次



3) for循環(huán)

for(初始值;條件;步長(zhǎng)){

循環(huán)體 代碼塊

}


執(zhí)行順序和 while循環(huán)的相同 初始值也只執(zhí)行一次


for循環(huán)的初始值變量 作用域和生命周期只在for循環(huán)的{}內(nèi)生效

所以在for循環(huán)的初始值可以重復(fù)使用




break和continue 的使用

break 中斷 : 如果在循環(huán)中碰到了break 表示 循環(huán)結(jié)束了

continue 繼續(xù) :跳過(guò)本次循環(huán)開(kāi)始下一次循環(huán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容