標(biāo)識(shí)符
定義
- 給包,類(lèi),方法,變量起名字的符號(hào)。
組成規(guī)則
- 標(biāo)識(shí)符由字母工禾、數(shù)字总棵、下劃線鳍寂、美元符號(hào)組成。
命名原則:見(jiàn)名知意
- 包名:全部小寫(xiě),多級(jí)包用.隔開(kāi)情龄。
舉例:com.jourwon - 類(lèi)迄汛、接口:一個(gè)單詞首字母大寫(xiě),多個(gè)單詞每個(gè)單詞的首字母大寫(xiě)刃唤。
舉例:Student,Car,HelloWorld - 方法和變量:一個(gè)單詞首字母小寫(xiě)隔心,多個(gè)單詞從第二個(gè)單詞開(kāi)始每個(gè)單詞的首字母大寫(xiě)。
舉例:age,maxAge,show(),getAge() - 常量:如果是一個(gè)單詞,所有字母大寫(xiě)尚胞,如果是多個(gè)單詞,所有的單詞大寫(xiě),用下劃線區(qū)分每個(gè)單詞硬霍。
舉例:DATE,MAX_AGE - 項(xiàng)目名:全部用小寫(xiě)字母,多個(gè)單詞之間用橫桿-分割笼裳。
舉例:demo唯卖,spring-boot
注意事項(xiàng)
- 不能以數(shù)字開(kāi)頭
- 不能是Java中的關(guān)鍵字
- Java標(biāo)識(shí)符大小寫(xiě)敏感,長(zhǎng)度無(wú)限制
- 標(biāo)識(shí)符不能包含空格
關(guān)鍵字
定義
- 被Java語(yǔ)言賦予了特殊含義躬柬,用作專(zhuān)門(mén)用途的字符串(單詞)拜轨,這些關(guān)鍵字不能用于常量、變量允青、和任何標(biāo)識(shí)符的名稱(chēng)橄碾。
Java關(guān)鍵字(Java 8版本)
Java關(guān)鍵字(Java 8 以后版本)
注意事項(xiàng)
- true,false和颠锉,null看起來(lái)像關(guān)鍵字法牲,但它們實(shí)際上是文字; 您不能在程序中將它們用作標(biāo)識(shí)符。
注釋
定義
- 用于解釋說(shuō)明程序的文字
分類(lèi)
- 單行注釋
格式: // 注釋文字 - 多行注釋
格式: /* 注釋文字 */ - 文檔注釋
格式:/** 注釋文字 */
作用
- 在程序中琼掠,尤其是復(fù)雜的程序中拒垃,適當(dāng)?shù)丶尤胱⑨尶梢栽黾映绦虻目勺x性,有利于程序的修改瓷蛙、調(diào)試和交流悼瓮。注釋的內(nèi)容在程序編譯的時(shí)候會(huì)被忽視,不會(huì)產(chǎn)生目標(biāo)代碼艰猬,注釋的部分不會(huì)對(duì)程序的執(zhí)行結(jié)果產(chǎn)生任何影響横堡。
注意事項(xiàng)
- 多行和文檔注釋都不能嵌套使用。
訪問(wèn)修飾符
定義
- Java中姥宝,可以使用訪問(wèn)修飾符來(lái)保護(hù)對(duì)類(lèi)翅萤、變量、方法和構(gòu)造方法的訪問(wèn)。Java 支持 4 種不同的訪問(wèn)權(quán)限套么。
分類(lèi)
- private : 在同一類(lèi)內(nèi)可見(jiàn)培己。使用對(duì)象:變量、方法胚泌。 注意:不能修飾類(lèi)(外部類(lèi))
- default (即缺省省咨,什么也不寫(xiě),不使用任何關(guān)鍵字): 在同一包內(nèi)可見(jiàn)玷室,不使用任何修飾符零蓉。使用對(duì)象:類(lèi)、接口穷缤、變量、方法章喉。
- protected : 對(duì)同一包內(nèi)的類(lèi)和所有子類(lèi)可見(jiàn)身坐。使用對(duì)象:變量、方法摊唇。 注意:不能修飾類(lèi)(外部類(lèi))。
- public : 對(duì)所有類(lèi)可見(jiàn)涯鲁。使用對(duì)象:類(lèi)抹腿、接口幢踏、變量许师、方法
訪問(wèn)修飾符圖
分隔符
定義
- 空格搭幻、逗號(hào)檀蹋、分號(hào)以及行結(jié)束符都被稱(chēng)為分隔符俯逾,規(guī)定任意兩個(gè)相鄰標(biāo)識(shí)符皇筛、數(shù)字坠七、保留字或語(yǔ)句之間必須至少有一個(gè)分隔符彪置,以便程序編譯時(shí)能夠識(shí)別拳魁。
分類(lèi)
- ; 分號(hào) 用來(lái)終止一個(gè)語(yǔ)句
- {} 花括號(hào)耀盗、大括號(hào) 用來(lái)包括自動(dòng)初始化的數(shù)組的值叛拷,也用來(lái)定義程序塊忿薇、類(lèi)署浩、方法以及局部范圍
- [] 方括號(hào)、中括號(hào) 用來(lái)聲明數(shù)組的類(lèi)型弊攘,也用來(lái)表示撤消對(duì)數(shù)組值的引用
- , 逗號(hào) 在變量聲明中襟交,區(qū)分變量說(shuō)明的各個(gè)變量。在for控制語(yǔ)句中焕梅,用來(lái)將圓括號(hào)內(nèi)的語(yǔ)句連接起來(lái)
- . 原點(diǎn) 用來(lái)將軟件包的名字與它的子包或類(lèi)分隔丘侠。也用來(lái)將引用變量與變量或方法分隔
- () 圓括號(hào) 在定義和調(diào)用方法時(shí)用來(lái)容納參數(shù)表蜗字。在控制語(yǔ)句或強(qiáng)制類(lèi)型轉(zhuǎn)換組成的表達(dá)式中用來(lái)表示執(zhí)行或計(jì)算的優(yōu)先權(quán)
注意事項(xiàng)
- 必須都是半角下的英文符號(hào)粗梭。
轉(zhuǎn)義字符
定義
- 轉(zhuǎn)義字符是一種特殊的字符常量断医。轉(zhuǎn)義字符以反斜線""開(kāi)頭,后跟一個(gè)或幾個(gè)字符醉锅。轉(zhuǎn)義字符具有特定的含義硬耍,不同于字符原有的意義,故稱(chēng)“轉(zhuǎn)義”字符坯认。
常見(jiàn)轉(zhuǎn)義字符表
Java中需要轉(zhuǎn)義的字符
- 在Java中,不管是String.split(),還是正則表達(dá)式赴背,有一些特殊字符需要轉(zhuǎn)義凰荚,這些字符是
( [ { / ^ - $ | } ] ) ? * + .
轉(zhuǎn)義方法為字符前面加上"\"缆毁,這樣在split脊框、replaceAll時(shí)就不會(huì)報(bào)錯(cuò)。不過(guò)要注意昭灵,String.contains()方法不需要轉(zhuǎn)義烂完。
空行
空白行,或者有注釋的行柱徙,Java編譯器都會(huì)忽略掉
進(jìn)制
定義
- 進(jìn)制也就是進(jìn)位計(jì)數(shù)制护侮,是人為定義的帶進(jìn)位的計(jì)數(shù)方法。
十進(jìn)制是逢十進(jìn)一长赞,十六進(jìn)制是逢十六進(jìn)一,二進(jìn)制就是逢二進(jìn)一贩据,以此類(lèi)推饱亮,x進(jìn)制就是逢x進(jìn)位剔宪。
常用進(jìn)制類(lèi)型
-
二進(jìn)制
計(jì)算機(jī)底層都是使用二進(jìn)制進(jìn)行存儲(chǔ)以及運(yùn)算
0b****;(以0b或者0B開(kāi)始葱绒,*表示0或1)比如:010101
-
原碼、反碼骚秦、補(bǔ)碼
-
原碼
- 原碼:將一個(gè)整數(shù)轉(zhuǎn)換成二進(jìn)制表示
以 int 類(lèi)型為例,int類(lèi)型占4個(gè)字節(jié)胞得、共32位。
例如:
2 的原碼為:00000000 00000000 00000000 00000010
-2的原碼為:10000000 00000000 00000000 00000010
- 原碼:將一個(gè)整數(shù)轉(zhuǎn)換成二進(jìn)制表示
-
反碼
- 反碼
正數(shù)的反碼:與原碼相同
負(fù)數(shù)的反碼:原碼的符號(hào)位不變牧愁,其他位取反
例如,-2 的反碼為:11111111 11111111 11111111 11111101
- 反碼
-
補(bǔ)碼
- 補(bǔ)碼
正數(shù)的補(bǔ)碼:與原碼相同
負(fù)數(shù)的補(bǔ)碼:反碼+1
例如磨确,-2 的補(bǔ)碼為:01111111 11111111 11111111 11111110
- 補(bǔ)碼
-
注意事項(xiàng)
- 二進(jìn)制的最高位是符號(hào)位(“0”代表正數(shù),“1”代表負(fù)數(shù))邓了;
- Java中沒(méi)有無(wú)符號(hào)數(shù)驶悟;
- 計(jì)算機(jī)以整數(shù)的補(bǔ)碼進(jìn)行運(yùn)算痕鳍;
-
-
八進(jìn)制
- 0****;(以數(shù)字0開(kāi)始诗赌,*表示0到7任意數(shù)字 比如:012345)
-
十進(jìn)制
- 0~9組成 比如:100
-
十六進(jìn)制
- 0x****;(以0x或者0X開(kāi)始叼屠,*表示09或者af組成 比如:0x12c)
進(jìn)制轉(zhuǎn)換
-
十進(jìn)制轉(zhuǎn)二進(jìn)制
方法為:十進(jìn)制數(shù)除2取余法,即十進(jìn)制數(shù)除2荚坞,余數(shù)為權(quán)位上的數(shù),得到的商值繼續(xù)除2瞭空,依此步驟繼續(xù)向下運(yùn)算直到商為0為止。- 150十進(jìn)制轉(zhuǎn)二進(jìn)制
- 150十進(jìn)制轉(zhuǎn)二進(jìn)制
-
二進(jìn)制轉(zhuǎn)十進(jìn)制
方法為:把二進(jìn)制數(shù)按權(quán)展開(kāi)旧找、相加即得十進(jìn)制數(shù)鞭缭。- 150二進(jìn)制轉(zhuǎn)十進(jìn)制
- 150二進(jìn)制轉(zhuǎn)十進(jìn)制
流程控制語(yǔ)句
定義
流程是指程序運(yùn)行時(shí),各語(yǔ)句的執(zhí)行順序。流程控制語(yǔ)句就是用來(lái)控制程序中各語(yǔ)句執(zhí)行的順序偷遗。
分類(lèi)
順序結(jié)構(gòu)
定義
順序結(jié)構(gòu)是程序中最簡(jiǎn)單最基本的流程控制,沒(méi)有特定的語(yǔ)法結(jié)構(gòu)泵喘,按照代碼的先后順序,依次執(zhí)行霹陡,程序中大多數(shù)的代碼都是這樣執(zhí)行的
舉例
/*
* 順序結(jié)構(gòu):從上往下,依次執(zhí)行
*/
public class OrderDemo {
public static void main(String[] args) {
System.out.println("開(kāi)始");
System.out.println("語(yǔ)句A");
System.out.println("語(yǔ)句B");
System.out.println("語(yǔ)句C");
System.out.println("結(jié)束");
}
}
分支結(jié)構(gòu)(選擇結(jié)構(gòu))
定義
條件語(yǔ)句可根據(jù)不同的條件執(zhí)行不同的語(yǔ)句。包括if條件語(yǔ)句與switch多分支語(yǔ)句伏社。
分類(lèi)
if分支結(jié)構(gòu)
第一種格式
格式
if(條件表達(dá)式){
執(zhí)行的代碼塊;
}
執(zhí)行流程
執(zhí)行流程圖
執(zhí)行流程說(shuō)明
首先判斷關(guān)系表達(dá)式看其結(jié)果是true還是false
如果是true就執(zhí)行語(yǔ)句體
如果是false就不執(zhí)行語(yǔ)句體
舉例
public class IfDemo {
public static void main(String[] args) {
System.out.println("開(kāi)始");
// 定義兩個(gè)變量
int a = 10;
int b = 20;
if (a == b) {
System.out.println("a等于b");
}
int c = 10;
if (a == c) {
System.out.println("a等于c");
}
System.out.println("結(jié)束");
}
}
第二種格式
格式
if(條件表達(dá)式){
執(zhí)行的代碼塊;
}else{
執(zhí)行的代碼塊;
}
執(zhí)行流程
執(zhí)行流程圖
執(zhí)行流程說(shuō)明
首先判斷關(guān)系表達(dá)式看其結(jié)果是true還是false
如果是true就執(zhí)行語(yǔ)句體1
如果是false就執(zhí)行語(yǔ)句體2
舉例
public class IfDemo2 {
public static void main(String[] args) {
System.out.println("開(kāi)始");
// 判斷給定的數(shù)據(jù)是奇數(shù)還是偶數(shù)
// 定義變量
int a = 100;
// 給a重新賦值
a = 99;
if (a % 2 == 0) {
System.out.println("a是偶數(shù)");
} else {
System.out.println("a是奇數(shù)");
}
System.out.println("結(jié)束");
}
}
第三種格式
格式
if(條件表達(dá)式){
執(zhí)行的代碼塊;
}else if(條件表達(dá)式){
執(zhí)行的代碼塊;
}......(此處省略N個(gè)else if)
else{
執(zhí)行代碼塊;
}
執(zhí)行流程
執(zhí)行流程圖
執(zhí)行流程說(shuō)明
首先判斷關(guān)系表達(dá)式1看其結(jié)果是true還是false
如果是true就執(zhí)行語(yǔ)句體1
如果是false就繼續(xù)判斷關(guān)系表達(dá)式2看其結(jié)果是true還是false
如果是true就執(zhí)行語(yǔ)句體2
如果是false就繼續(xù)判斷關(guān)系表達(dá)式…看其結(jié)果是true還是false
…
如果沒(méi)有任何關(guān)系表達(dá)式為true,就執(zhí)行語(yǔ)句體n+1
舉例
public class IfDemo3 {
public static void main(String[] args) {
// x和y的關(guān)系滿足如下:
// x>=3 y = 2x + 1;
// -1<=x<3 y = 2x;
// x<=-1 y = 2x – 1;
// 根據(jù)給定的x的值,計(jì)算出y的值并輸出砌左。
// 定義變量
int x = 5;
/*
int y;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 3) {
y = 2 * x;
} else if (x <= -1) {
y = 2 * x - 1;
}else {
y = 0;
}
*/
int y = 0;
if (x >= 3) {
y = 2 * x + 1;
} else if (x >= -1 && x < 3) {
y = 2 * x;
} else if (x <= -1) {
y = 2 * x - 1;
}
System.out.println("y的值是:"+y);
}
}
注意事項(xiàng)
1屁擅、一旦滿足某個(gè)條件表達(dá)式弯囊,則進(jìn)入其執(zhí)行語(yǔ)句塊執(zhí)行,執(zhí)行完畢后不會(huì)執(zhí)行其一下的條件語(yǔ)句霎烙。
2、如果多個(gè)條件表達(dá)式之間為“互斥”關(guān)系尝蠕,多個(gè)語(yǔ)句之間可以上下調(diào)換順序,一旦是包含關(guān)系靖榕,要求條件表達(dá)式范圍小的寫(xiě)到范圍大的上邊;
switch分支結(jié)構(gòu)
執(zhí)行流程
執(zhí)行流程說(shuō)明
首先計(jì)算出表達(dá)式的值
其次瓶蝴,和case依次比較舷手,一旦有對(duì)應(yīng)的值,就會(huì)執(zhí)行相應(yīng)的語(yǔ)句,在執(zhí)行的過(guò)程中汗捡,遇到break就會(huì)結(jié)束。
最后艘蹋,如果所有的case都和表達(dá)式的值不匹配,就會(huì)執(zhí)行default語(yǔ)句體部分,然后程序結(jié)束掉的榛。
執(zhí)行流程圖
舉例
public class SwitchDemo {
public static void main(String[] args) {
//創(chuàng)建鍵盤(pán)錄入對(duì)象
Scanner sc = new Scanner(System.in);
//接收數(shù)據(jù)
System.out.println("請(qǐng)輸入一個(gè)數(shù)字(1-7):");
int weekday = sc.nextInt();
//switch語(yǔ)句實(shí)現(xiàn)選擇
switch(weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你輸入的數(shù)字有誤");
break;
}
}
}
注意事項(xiàng)
1昧诱、swich(表達(dá)式)中表達(dá)式的返回值必須是以下幾種類(lèi)型之一:
byte凶掰,short前翎,char港华,int,枚舉(jdk1.5),String(jdk1.7)
2商模、case子句中的值必須是常量响疚,且所有case子句中的值應(yīng)是不同的忿晕;
3装诡、default子句是可任選的,當(dāng)沒(méi)有匹配的case時(shí)践盼,執(zhí)行default鸦采;
4、break語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后使程序跳出swich語(yǔ)句塊渔伯;如果沒(méi)有break程序會(huì)順序執(zhí)行到swich結(jié)尾;
if分支結(jié)構(gòu)和switch分支結(jié)構(gòu)區(qū)別
if和swich語(yǔ)句很想肄程,如果判斷的具體數(shù)值不多锣吼,而且復(fù)合byte、short蓝厌、int玄叠、char這四種類(lèi)型。建議使用swich語(yǔ)句拓提,因?yàn)樾噬愿撸?/p>
其他情況:對(duì)區(qū)間進(jìn)行判斷读恃,對(duì)結(jié)果為boolean類(lèi)型進(jìn)行判斷,使用if,if的使用范圍比較廣泛寺惫。
循環(huán)結(jié)構(gòu)
定義
循環(huán)語(yǔ)句就是在滿足一定條件的情況下反復(fù)執(zhí)行某一個(gè)操作疹吃。包括while循環(huán)語(yǔ)句、do···while循環(huán)語(yǔ)句和for循環(huán)語(yǔ)句肌蜻。
分類(lèi)
for循環(huán)語(yǔ)句
執(zhí)行流程
執(zhí)行流程圖
執(zhí)行流程說(shuō)明
A:執(zhí)行初始化語(yǔ)句
B:執(zhí)行判斷條件語(yǔ)句互墓,看其結(jié)果是true還是false
如果是false,循環(huán)結(jié)束蒋搜。
如果是true篡撵,繼續(xù)執(zhí)行。
C:執(zhí)行循環(huán)體語(yǔ)句
D:執(zhí)行控制條件語(yǔ)句
E:回到B繼續(xù)
格式
for(初始化語(yǔ)句;判斷條件語(yǔ)句;控制條件語(yǔ)句) {
循環(huán)體語(yǔ)句;
}
舉例
public class ForDemo {
public static void main(String[] args) {
//原始寫(xiě)法
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("-------------------------");
//用循環(huán)改進(jìn)
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
}
}
foreach循環(huán)語(yǔ)句
執(zhí)行流程
執(zhí)行流程說(shuō)明
和for循環(huán)執(zhí)行流程相似
格式
for (聲明語(yǔ)句 : 表達(dá)式) {
//代碼句子
}
舉例
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for ( int x : numbers ) {
System.out.print( x );
System.out.print(",");
}
System.out.print();
String [] names = {"James", "Larry", "Tom", "Lacy"};
for ( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
定義
它是Java5后新增的for語(yǔ)句的特殊簡(jiǎn)化版本豆挽,并不能完全替代for語(yǔ)句育谬,但所有foreach語(yǔ)句都可以改寫(xiě)為for語(yǔ)句。foreach語(yǔ)句在遍歷數(shù)組等時(shí)為程序員提供了很大的方便帮哈。
while循環(huán)語(yǔ)句
格式
基本格式
while(判斷條件語(yǔ)句) {
循環(huán)體語(yǔ)句;
}
擴(kuò)展格式
初始化語(yǔ)句;
while(判斷條件語(yǔ)句) {
循環(huán)體語(yǔ)句;
控制條件語(yǔ)句;
}
執(zhí)行流程
執(zhí)行流程圖
執(zhí)行流程說(shuō)明
while循環(huán)語(yǔ)句的循環(huán)方式為利用一個(gè)條件來(lái)控制是否要繼續(xù)反復(fù)執(zhí)行這個(gè)語(yǔ)句膛檀。
舉例
public class WhileDemo {
public static void main(String[] args) {
//輸出10次HelloWorld
/*
for(int x=1; x<=10; x++) {
System.out.println("HellloWorld");
}
*/
//while循環(huán)實(shí)現(xiàn)
int x=1;
while(x<=10) {
System.out.println("HellloWorld");
x++;
}
}
}
do…while循環(huán)語(yǔ)句
格式
基本格式
do {
循環(huán)體語(yǔ)句;
}while((判斷條件語(yǔ)句);
擴(kuò)展格式
初始化語(yǔ)句;
do {
循環(huán)體語(yǔ)句;
控制條件語(yǔ)句;
} while((判斷條件語(yǔ)句);
執(zhí)行流程
執(zhí)行流程圖
執(zhí)行流程說(shuō)明
A:執(zhí)行初始化語(yǔ)句;
B:執(zhí)行循環(huán)體語(yǔ)句;
C:執(zhí)行控制條件語(yǔ)句;
D:執(zhí)行判斷條件語(yǔ)句,看是true還是false
如果是true娘侍,回到B繼續(xù)
如果是false羞酗,就結(jié)束
舉例
public class DoWhileDemo {
public static void main(String[] args) {
//輸出10次 HelloWorld
/*
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
*/
//do...while改寫(xiě)
int x=1;
do {
System.out.println("HelloWorld");
x++;
}while(x<=10);
}
}
三種循環(huán)的區(qū)別
雖然可以完成同樣的功能,但是還是有小區(qū)別:
do…while循環(huán)至少會(huì)執(zhí)行一次循環(huán)體殊轴。
for循環(huán)和while循環(huán)只有在條件成立的時(shí)候才會(huì)去執(zhí)行循環(huán)體
for循環(huán)語(yǔ)句和while循環(huán)語(yǔ)句的小區(qū)別:
使用區(qū)別:控制條件語(yǔ)句所控制的那個(gè)變量蓄喇,在for循環(huán)結(jié)束后,就不能再被訪問(wèn)到了氧腰,而while循環(huán)結(jié)束還可以繼續(xù)使用枫浙,如果你想繼續(xù)使用,就用while古拴,否則推薦使用for箩帚。原因是for循環(huán)結(jié)束,該變量就從內(nèi)存中消失黄痪,能夠提高內(nèi)存的使用效率紧帕。
跳轉(zhuǎn)語(yǔ)句(控制循環(huán)結(jié)構(gòu))
定義
Java語(yǔ)言中提供了3種跳轉(zhuǎn)語(yǔ)句,分別是break語(yǔ)句桅打、continue語(yǔ)句和return語(yǔ)句焕参。
分類(lèi)
break
break的使用場(chǎng)景
break的使用場(chǎng)景:
在選擇結(jié)構(gòu)switch語(yǔ)句中,在循環(huán)語(yǔ)句中
離開(kāi)使用場(chǎng)景的存在是沒(méi)有意義的
break的作用:跳出單層循環(huán)
舉例
/*
* break:中斷的意思
* 使用場(chǎng)景:
* A:switch語(yǔ)句中
* B:循環(huán)中
* 注意:
* 離開(kāi)使用場(chǎng)景是沒(méi)有意義的油额。
* 作用:
* 跳出循環(huán)叠纷,讓循環(huán)提前結(jié)束
*/
public class BreakDemo {
public static void main(String[] args) {
//break;
for(int x=1; x<=10; x++) {
if(x == 3) {
break;
}
System.out.println("HelloWorld");
}
}
}
continue
continue的使用場(chǎng)景
continue的使用場(chǎng)景:
在循環(huán)語(yǔ)句中
離開(kāi)使用場(chǎng)景的存在是沒(méi)有意義的
continue的作用:
單層循環(huán)對(duì)比break,然后總結(jié)兩個(gè)的區(qū)別
break 退出當(dāng)前循環(huán)
continue 退出本次循環(huán)
舉例
/*
* continue:繼續(xù)的意思
* 使用場(chǎng)景:
* 循環(huán)中
* 注意:
* 離開(kāi)使用場(chǎng)景是沒(méi)有意義的
* 作用:
* 結(jié)束一次循環(huán)潦嘶,繼續(xù)下一次的循環(huán)
* 區(qū)別:
* break:退出循環(huán)
* continue:結(jié)束一次循環(huán)涩嚣,繼續(xù)下一次的循環(huán)
*/
public class ContinueDemo {
public static void main(String[] args) {
//continue;
for(int x=1; x<=10; x++) {
if(x == 3) {
//break;
continue;
}
System.out.println("HelloWorld");
}
}
}
return
return的使用場(chǎng)景
return的使用場(chǎng)景:
在循環(huán)語(yǔ)句中
在方法中
return的作用:可以從一個(gè)方法返回崇众,并把控制權(quán)交給調(diào)用它的語(yǔ)句。
直接結(jié)束整個(gè)方法航厚,從而結(jié)束循環(huán)顷歌。
舉例
public class ReturnDemo {
public static void main(String[] args) {
getStr();
}
public String getStr() {
return "Hello";
}
}
表達(dá)式
定義
- 用運(yùn)算符把常量或者變量連接起來(lái)符號(hào)java語(yǔ)法的式子就可以稱(chēng)為表達(dá)式。
類(lèi)型和值
- 表達(dá)式值的數(shù)據(jù)類(lèi)型即為表達(dá)式的類(lèi)型幔睬。
- 對(duì)表達(dá)式中操作數(shù)進(jìn)行運(yùn)算得到的結(jié)果是表達(dá)式的值眯漩。
運(yùn)算順序
- 應(yīng)按照運(yùn)算符的優(yōu)先級(jí)從高到低的順序進(jìn)行;
- 優(yōu)先級(jí)相同的運(yùn)算符按照事先約定的結(jié)合方向進(jìn)行;
舉例
- a + b
3.14 + a
(x + y) * z + 100
boolean b= i < 10 && (i%10 != 0)
運(yùn)算符
定義
分類(lèi)
算術(shù)運(yùn)算符
-
算術(shù)運(yùn)算符
- / % ++ -- +
-
注意事項(xiàng)
- 1、/ 左右兩端的類(lèi)型需要一致麻顶;
- 2赦抖、%最后的符號(hào)和被模數(shù)相同;
- 3辅肾、前++队萤;先+1,后運(yùn)算 后++矫钓;先運(yùn)算要尔,后+1;
- 4新娜、+:當(dāng)String字符串與其他數(shù)據(jù)類(lèi)型只能做連接運(yùn)算赵辕;并且結(jié)果為String類(lèi)型;
-
比較運(yùn)算符(關(guān)系運(yùn)算符)
= += -= *= /= %=
比較運(yùn)算符1
- 比較運(yùn)算符
比較運(yùn)算符2
- 比較運(yùn)算符2
-
注意事項(xiàng)
- 1概龄、比較運(yùn)算符的兩端都是boolean類(lèi)型还惠,也就是說(shuō)要么是true,要么是false旁钧;
- 2、比較運(yùn)算符的"=="與"="的作用是不同的互拾,使用的時(shí)候需要小心歪今。
-
賦值運(yùn)算符
- = += -= *= /= %=
- 基本的賦值運(yùn)算符:=
- 擴(kuò)展的賦值運(yùn)算符:+=,-=,*=,/=,%=
+=: a+=20;相當(dāng)于a = (a的數(shù)據(jù)類(lèi)型)(a + 20);
-
邏輯運(yùn)算符(符號(hào)的兩端都是boolean類(lèi)型)
& | ^ ! && ||
-
注意事項(xiàng)
- 1、& 與 &&以及|與||的區(qū)別:
- &:左邊無(wú)論真假颜矿,右邊都會(huì)進(jìn)行運(yùn)算寄猩;
- &&:如果左邊為假,則右邊不進(jìn)行運(yùn)算骑疆;
- | 與 || 的區(qū)別同上田篇;在使用的時(shí)候建議使用&&和||;
- 2箍铭、(^)與或(|)的不同之處是:當(dāng)左右都為true時(shí)泊柬,結(jié)果為false。
邏輯運(yùn)算符
- 邏輯運(yùn)算符
-
位運(yùn)算符(兩端都是數(shù)值型的數(shù)據(jù))
- 位運(yùn)算符1
- 位運(yùn)算符1
- 位運(yùn)算符2
- 位運(yùn)算符2
-
三元運(yùn)算符(三目運(yùn)算符)
三元運(yùn)算符
- 三元運(yùn)算符
-
注意事項(xiàng)
- 1诈火、表達(dá)式1與表達(dá)式2的類(lèi)型必須一致兽赁;
- 2、使用三元運(yùn)算符的地方一定可以使用if..else代替,反之不一定成立刀崖;
運(yùn)算符的優(yōu)先級(jí)
- 優(yōu)先級(jí)按照從高到低的順序書(shū)寫(xiě)惊科,也就是優(yōu)先級(jí)為1的優(yōu)先級(jí)最高,優(yōu)先級(jí)14的優(yōu)先級(jí)最低亮钦。使用優(yōu)先級(jí)為 1 的小括號(hào)可以改變其他運(yùn)算符的優(yōu)先級(jí)馆截。
變量
定義
- 在程序執(zhí)行的過(guò)程中,在某個(gè)范圍內(nèi)其值可以發(fā)生改變的量蜂莉。
從本質(zhì)上講蜡娶,變量其實(shí)是內(nèi)存中的一小塊區(qū)域
分類(lèi)
-
按被聲明的位置劃分
-
成員變量
方法外部,類(lèi)內(nèi)部定義的變量
-
類(lèi)變量(靜態(tài)變量):獨(dú)立于方法之外的變量巡语,用 static 修飾翎蹈。
- 類(lèi)變量也稱(chēng)為靜態(tài)變量,在類(lèi)中以static關(guān)鍵字聲明男公,但必須在方法構(gòu)造方法和語(yǔ)句塊之外荤堪。
- 無(wú)論一個(gè)類(lèi)創(chuàng)建了多少個(gè)對(duì)象,類(lèi)只擁有類(lèi)變量的一份拷貝枢赔。
- 靜態(tài)變量除了被聲明為常量外很少使用澄阳。常量是指聲明為public/private,final和static類(lèi)型的變量踏拜。常量初始化后不可改變碎赢。
- 靜態(tài)變量?jī)?chǔ)存在靜態(tài)存儲(chǔ)區(qū)。經(jīng)常被聲明為常量速梗,很少單獨(dú)使用static聲明變量肮塞。
- 靜態(tài)變量在第一次被訪問(wèn)時(shí)創(chuàng)建,在程序結(jié)束時(shí)銷(xiāo)毀姻锁。
- 與實(shí)例變量具有相似的可見(jiàn)性枕赵。但為了對(duì)類(lèi)的使用者可見(jiàn),大多數(shù)靜態(tài)變量聲明為public類(lèi)型位隶。
- 默認(rèn)值和實(shí)例變量相似拷窜。數(shù)值型變量默認(rèn)值是0,布爾型默認(rèn)值是false涧黄,引用類(lèi)型默認(rèn)值是null篮昧。變量的值可以在聲明的時(shí)候指定,也可以在構(gòu)造方法中指定笋妥。此外懊昨,靜態(tài)變量還可以在靜態(tài)語(yǔ)句塊中初始化。
- 靜態(tài)變量可以通過(guò):ClassName.VariableName的方式訪問(wèn)春宣。
- 類(lèi)變量被聲明為public static final類(lèi)型時(shí)疚颊,類(lèi)變量名稱(chēng)一般建議使用大寫(xiě)字母狈孔。如果靜態(tài)變量不是public和final類(lèi)型,其命名方式與實(shí)例變量以及局部變量的命名方式一致材义。
-
實(shí)例變量(非靜態(tài)變量):獨(dú)立于方法之外的變量均抽,不過(guò)沒(méi)有 static 修飾。
- 實(shí)例變量聲明在一個(gè)類(lèi)中其掂,但在方法油挥、構(gòu)造方法和語(yǔ)句塊之外;
- 當(dāng)一個(gè)對(duì)象被實(shí)例化之后款熬,每個(gè)實(shí)例變量的值就跟著確定深寥;
- 實(shí)例變量在對(duì)象創(chuàng)建的時(shí)候創(chuàng)建,在對(duì)象被銷(xiāo)毀的時(shí)候銷(xiāo)毀贤牛;
- 實(shí)例變量的值應(yīng)該至少被一個(gè)方法惋鹅、構(gòu)造方法或者語(yǔ)句塊引用,使得外部能夠通過(guò)這些方式獲取實(shí)例變量信息殉簸;
- 實(shí)例變量可以聲明在使用前或者使用后闰集;
- 訪問(wèn)修飾符可以修飾實(shí)例變量;
- 實(shí)例變量對(duì)于類(lèi)中的方法般卑、構(gòu)造方法或者語(yǔ)句塊是可見(jiàn)的武鲁。一般情況下應(yīng)該把實(shí)例變量設(shè)為私有。通過(guò)使用訪問(wèn)修飾符可以使實(shí)例變量對(duì)子類(lèi)可見(jiàn)蝠检;
- 實(shí)例變量具有默認(rèn)值沐鼠。數(shù)值型變量的默認(rèn)值是0,布爾型變量的默認(rèn)值是false叹谁,引用類(lèi)型變量的默認(rèn)值是null饲梭。變量的值可以在聲明時(shí)指定,也可以在構(gòu)造方法中指定焰檩;
- 實(shí)例變量可以直接通過(guò)變量名訪問(wèn)憔涉。但在靜態(tài)方法以及其他類(lèi)中,就應(yīng)該使用完全限定名:ObejectReference.VariableName锅尘。
-
類(lèi)變量和實(shí)例變量的區(qū)別
-
調(diào)用方式
- 靜態(tài)變量也稱(chēng)為類(lèi)變量监氢,可以直接通過(guò)類(lèi)名調(diào)用布蔗。也可以通過(guò)對(duì)象名調(diào)用藤违。這個(gè)變量屬于類(lèi)。
- 成員變量也稱(chēng)為實(shí)例變量纵揍,只能通過(guò)對(duì)象名調(diào)用顿乒。這個(gè)變量屬于對(duì)象。
-
存儲(chǔ)位置
- 靜態(tài)變量存儲(chǔ)在方法區(qū)長(zhǎng)中的靜態(tài)區(qū)泽谨。
- 成員變量存儲(chǔ)在堆內(nèi)存璧榄。
-
生命周期
- 靜態(tài)變量隨著類(lèi)的加載而存在特漩,隨著類(lèi)的消失而消失。生命周期長(zhǎng)骨杂。
- 成員變量隨著對(duì)象的創(chuàng)建而存在涂身,隨著對(duì)象的消失而消失。
-
與對(duì)象的相關(guān)性
- 靜態(tài)變量是所有對(duì)象共享的數(shù)據(jù)搓蚪。
- 成員變量是每個(gè)對(duì)象所特有的數(shù)據(jù)蛤售。
-
-
-
局部變量
- 局部變量:類(lèi)的方法中的變量。
- 局部變量聲明在方法妒潭、構(gòu)造方法或者語(yǔ)句塊中悴能;
- 局部變量在方法、構(gòu)造方法雳灾、或者語(yǔ)句塊被執(zhí)行的時(shí)候創(chuàng)建漠酿,當(dāng)它們執(zhí)行完成后,變量將會(huì)被銷(xiāo)毀谎亩;
- 訪問(wèn)修飾符不能用于局部變量炒嘲;
- 局部變量只在聲明它的方法、構(gòu)造方法或者語(yǔ)句塊中可見(jiàn)团驱;
- 局部變量是在棧上分配的摸吠。
- 局部變量沒(méi)有默認(rèn)值,所以局部變量被聲明后嚎花,必須經(jīng)過(guò)初始化寸痢,才可以使用。
-
成員變量和局部變量的區(qū)別
-
作用域
- 成員變量:針對(duì)整個(gè)類(lèi)有效紊选。
- 局部變量:只在某個(gè)范圍內(nèi)有效啼止。(一般指的就是方法,語(yǔ)句體內(nèi))
-
存儲(chǔ)位置
- 成員變量:隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失兵罢,存儲(chǔ)在堆內(nèi)存中献烦。
- 局部變量:在方法被調(diào)用,或者語(yǔ)句被執(zhí)行的時(shí)候存在卖词,存儲(chǔ)在棧內(nèi)存中巩那。當(dāng)方法調(diào)用完,或者語(yǔ)句結(jié)束后此蜈,就自動(dòng)釋放即横。
-
生命周期
- 成員變量:隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失
- 局部變量:當(dāng)方法調(diào)用完裆赵,或者語(yǔ)句結(jié)束后东囚,就自動(dòng)釋放。
-
初始值
- 成員變量:有默認(rèn)初始值战授。
- 局部變量:沒(méi)有默認(rèn)初始值页藻,使用前必須賦值桨嫁。
-
-
使用原則
- 在使用變量時(shí)需要遵循的原則為:就近原則
首先在局部范圍找,有就使用份帐;接著在成員位置找璃吧。
- 在使用變量時(shí)需要遵循的原則為:就近原則
-
-
按所屬的數(shù)據(jù)類(lèi)型劃分
-
基本數(shù)據(jù)類(lèi)型變量
-
基本數(shù)據(jù)類(lèi)型
- byte,short,int,long,float,double,char,boolean
-
變量的定義格式
- 數(shù)據(jù)類(lèi)型 變量名 = 初始化值;
-
注意
- 整數(shù)默認(rèn)是int類(lèi)型,定義long類(lèi)型的數(shù)據(jù)時(shí)废境,要在數(shù)據(jù)后面加L肚逸。
- 浮點(diǎn)數(shù)默認(rèn)是double類(lèi)型,定義float類(lèi)型的數(shù)據(jù)時(shí)彬坏,要在數(shù)據(jù)后面加F朦促。
-
引用數(shù)據(jù)類(lèi)型變量
-
定義格式
- 數(shù)據(jù)類(lèi)型 變量名 = 初始化值;
注意:格式是固定的,記住格式栓始,以不變應(yīng)萬(wàn)變 - 舉例
public class Variable{
// 類(lèi)變量
static int allClicks=0;
// 實(shí)例變量
String str="hello world";
public void method(){
// 局部變量
int i =0;
}
}
注意事項(xiàng)
- 類(lèi)外面不能有變量的聲明
常量
定義
- 常量定義:在程序執(zhí)行的過(guò)程中务冕,其值不可以發(fā)生改變的量。常量不同于常量值幻赚,它可以在程序中用符號(hào)來(lái)代替常量值使用禀忆,因此在使用前必須先定義。
- 常量值定義:常量和常量值是不同的概念落恼,常量值又稱(chēng)為字面常量箩退,它是通過(guò)數(shù)據(jù)直接表示的。
- 關(guān)系:常量值是常量的具體和直觀的表現(xiàn)形式佳谦,常量是形式化的表現(xiàn)戴涝。通常在程序中既可以直接使用常量值,也可以使用常量钻蔑。
分類(lèi)
- 字符串常量 用雙引號(hào)括起來(lái)的內(nèi)容(“HelloWorld”)
- 整數(shù)常量 所有整數(shù)(12,-23)
- 小數(shù)常量 所有小數(shù)(12.34)
- 字符常量 用單引號(hào)括起來(lái)的內(nèi)容(‘a(chǎn)’,’A’,’0’)
- 布爾常量 較為特有啥刻,只有true和false
- 空常量 null(數(shù)組部分講解)
舉例
- Java 語(yǔ)言使用 final 關(guān)鍵字來(lái)定義一個(gè)常量
final int COUNT=10;
final float HEIGHT=10.2F;
注意事項(xiàng)
- 在定義常量時(shí)就需要對(duì)該常量進(jìn)行初始化。
- final 關(guān)鍵字不僅可以用來(lái)修飾基本數(shù)據(jù)類(lèi)型的常量咪笑,還可以用來(lái)修飾對(duì)象的引用或者方法可帽。
- 為了與變量區(qū)別,常量取名一般都用大寫(xiě)字符窗怒。
數(shù)據(jù)類(lèi)型
定義
- Java語(yǔ)言是強(qiáng)類(lèi)型語(yǔ)言映跟,對(duì)于每一種數(shù)據(jù)都定義了明確的具體的數(shù)據(jù)類(lèi)型,在內(nèi)存中分配了不同大小的內(nèi)存空間扬虚。
分類(lèi)
-
基本數(shù)據(jù)類(lèi)型
-
數(shù)值型
- 整數(shù)類(lèi)型(byte,short,int,long)
- 浮點(diǎn)類(lèi)型(float,double)
字符型(char)
布爾型(boolean)
-
-
引用數(shù)據(jù)類(lèi)型
- 類(lèi)(class)
- 接口(interface)
- 數(shù)組([])
計(jì)算機(jī)存儲(chǔ)單元
定義:變量是內(nèi)存中的小容器努隙,用來(lái)存儲(chǔ)數(shù)據(jù)。那么計(jì)算機(jī)內(nèi)存是怎么存儲(chǔ)數(shù)據(jù)的呢孔轴?無(wú)論是內(nèi)存還是硬盤(pán)剃法,計(jì)算機(jī)存儲(chǔ)設(shè)備的最小信息單元叫“位(bit)”碎捺,我們又稱(chēng)之為“比特位”路鹰,通常用小寫(xiě)的字母b表示贷洲。而計(jì)算機(jī)最小的存儲(chǔ)單元叫“字節(jié)(byte)”,通常用大寫(xiě)字母B表示晋柱,字節(jié)是由連續(xù)的8個(gè)位組成优构。
-
常用存儲(chǔ)單元關(guān)系
- 1B= 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
- 1B= 8b
Java基本數(shù)據(jù)類(lèi)型圖
數(shù)據(jù)類(lèi)型轉(zhuǎn)換
-
定義
- 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換是在所賦值的數(shù)值類(lèi)型和被變量接收的數(shù)據(jù)類(lèi)型不一致時(shí)發(fā)生的,它需要從一種數(shù)據(jù)類(lèi)型轉(zhuǎn)換成另一種數(shù)據(jù)類(lèi)型雁竞。
-
分類(lèi)
-
隱式轉(zhuǎn)換
-
定義
- 在運(yùn)算過(guò)程中钦椭,由于不同的數(shù)據(jù)類(lèi)型會(huì)轉(zhuǎn)換成同一種數(shù)據(jù)類(lèi)型,所以整型碑诉、浮點(diǎn)型以及字符型都可以參與混合運(yùn)算彪腔。自動(dòng)轉(zhuǎn)換的規(guī)則是從低級(jí)類(lèi)型數(shù)據(jù)轉(zhuǎn)換成高級(jí)類(lèi)型數(shù)據(jù)。
-
轉(zhuǎn)換規(guī)則
- 數(shù)值型數(shù)據(jù)的轉(zhuǎn)換:byte→short→int→long→float→double进栽。
- 字符型轉(zhuǎn)換為整型:char→int德挣。
-
轉(zhuǎn)換條件
- 自動(dòng)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)需要同時(shí)滿足兩個(gè)條件:①兩種數(shù)據(jù)類(lèi)型彼此兼容,②目標(biāo)類(lèi)型的取值范圍大于源數(shù)據(jù)類(lèi)型(低級(jí)類(lèi)型數(shù)據(jù)轉(zhuǎn)換成高級(jí)類(lèi)型數(shù)據(jù))快毛。例如 byte 類(lèi)型向 short 類(lèi)型轉(zhuǎn)換時(shí)格嗅,由于 short 類(lèi)型的取值范圍較大,會(huì)自動(dòng)將 byte 轉(zhuǎn)換為 short 類(lèi)型唠帝。
-
-
顯式轉(zhuǎn)換
-
定義
- 當(dāng)兩種數(shù)據(jù)類(lèi)型不兼容屯掖,或目標(biāo)類(lèi)型的取值范圍小于源類(lèi)型時(shí),自動(dòng)轉(zhuǎn)換將無(wú)法進(jìn)行襟衰,這時(shí)就需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換贴铜。
-
語(yǔ)法格式
- 目標(biāo)類(lèi)型 變量名 = (目標(biāo)類(lèi)型) (被轉(zhuǎn)換的數(shù)據(jù));
舉例:int b = (byte)(a + b);
- 目標(biāo)類(lèi)型 變量名 = (目標(biāo)類(lèi)型) (被轉(zhuǎn)換的數(shù)據(jù));
-
注意
- 如果超出了被賦值的數(shù)據(jù)類(lèi)型的取值范圍得到的結(jié)果會(huì)與你期望的結(jié)果不同
- 不建議強(qiáng)制轉(zhuǎn)換,因?yàn)闀?huì)有精度的損失瀑晒。
-
-