0、Java工具包術語
術語名稱 |
縮寫 |
解釋 |
Java Development Kit |
JDK |
編寫 Java 程序的程序員使用的軟件 |
Java Runtime Environment |
JRE |
運行 Java 程序的用戶使用的軟件 |
Server JRE |
在服務器上運行 Java 程序的軟件 |
|
Standard Edition |
SE |
用於桌面或簡單服務器應用的 Java 平臺 |
Enterprise Edition |
EE |
用於復雜服務器應用的 Java 平臺 |
Micro Edition |
ME |
用於手機和其他小型設備的 Java 平臺 |
Java FX |
用於圖形化用戶界面的一個替代工具包,在 Oracle 的 Java SE 發佈版本中提供 |
|
OpenJDK |
Java SE的一個免費幵源實現,不包含瀏覽器集成或 Java FX |
|
Java 2 |
J2 |
一個過時的術語,用於描述1998年〜2006年之間的 Java 版本 |
Software Development Kit |
SDK |
一個過時的術語,用於描述1998年~2006年之間的 JDK |
Update |
u |
Oracle的術語,表示 bug 修正版本 |
NetBeans |
Oracle 的集成開發環境 |
|
1、Java程序簡單規范
1)Java 區分大小寫,即對大小寫敏感;
2)類名隻能是下劃線和字母開頭,其後可以是下劃線、字母和數字;
3)類名命名規范需符合駝峰標識法;
2、三種註釋方式
1)// ,行註釋;
2)/* */,多行註釋;
3)/** */,多行註釋,會生成 javadoc 文檔;
3、基礎數據類型
1)java 中整型范圍與平臺機器無關;
2)c 中整型與機器有關,16位和32位整型范圍是不一樣的;
3.1、整型(有4種)
類型 |
存儲 |
取值范圍 |
byte |
1個字節(8位) |
|
short |
2個字節(16位) |
|
int |
4個字節(32位) |
|
long |
8個字節(64位) |
|
1)long 類型需加後綴 L 或 l,小於 int 類型最大值時可以不使用後綴,超過 int 類型最大值時必須加上後綴 L 或 l;
int 類型最大值:2147483647;
![](https://news.xinpengboligang.com/upload/keji/34f0d6a5703d42ac1b0d187d5d9e858d.jpeg)
![](https://news.xinpengboligang.com/upload/keji/2131fc5d28b768c178467155253f8b92.jpeg)
![](https://news.xinpengboligang.com/upload/keji/fcaa05e5c0803fe07b1bbe0ef0d41319.jpeg)
2)十六進制需加前綴 0x 或 0X;
![](https://news.xinpengboligang.com/upload/keji/dc4001bc97b673b0fcc16d5b9c8e25fc.jpeg)
3)八進制需加前綴 0;
![](https://news.xinpengboligang.com/upload/keji/922b3ae4c04f41fcfcdf5e4f5b1aa213.jpeg)
![](https://news.xinpengboligang.com/upload/keji/51db4e9898473604be5e8e3fbf8a8f82.jpeg)
3)二進制需加前綴 0b 或 0B;
![](https://news.xinpengboligang.com/upload/keji/77a7945b6a88f9988cd6236437350fe1.jpeg)
![](https://news.xinpengboligang.com/upload/keji/5c0ee41390bf14e539fd9767ad55d5d1.jpeg)
4)數字之間可以加下劃線,讓人易懂,編譯器編譯的時候會自動去掉下劃線;
下劃線不能加在數字最前或最後;
![](https://news.xinpengboligang.com/upload/keji/8d0a269f892d5c94b9a1ad989551940a.jpeg)
3.2、浮點型(有2種)
1)float 類型數值需加後綴 F 或 f,該類型很少使用,不加後綴默認是 double 類型;
![](https://news.xinpengboligang.com/upload/keji/b46b0ca92b95270baed7eedb9dddbdf6.jpeg)
![](https://news.xinpengboligang.com/upload/keji/a9c385dc5f7aad52b6a702ad91d8a7fd.jpeg)
![](https://news.xinpengboligang.com/upload/keji/1226da67d86e31c0617995b37a891773.jpeg)
2)double 類型數值可以加後綴 D 或 d;
![](https://news.xinpengboligang.com/upload/keji/596bd7a3f284f0ea3d03a6a59d5f11a3.jpeg)
![](https://news.xinpengboligang.com/upload/keji/b10a82d83742125ed6f556768c3cc391.jpeg)
![](https://news.xinpengboligang.com/upload/keji/b9aa87adbb33a8331c60e3a59f43b78d.jpeg)
3)數字之間可以加下劃線,讓人易懂,編譯器編譯的時候會自動去掉下劃線;
下劃線不能加在數字最前或最後;
![](https://news.xinpengboligang.com/upload/keji/6f425dd92110e761a5c915d3029d655c.jpeg)
4)可以十六進制表示浮點型,0x1.0p-3,p表示指數 2,3 表示次方;
0x1.0p-3 表示0x1 * 2的負3次方
0x1.0p3 表示0x1 * 2的3次方
0xap-3 表示0xa * 2的3次方
![](https://news.xinpengboligang.com/upload/keji/570496cc655bc090f38abb8e9c2979f1.jpeg)
![](https://news.xinpengboligang.com/upload/keji/96cf8aa6fa0a6f6fd4f4baf367e60196.jpeg)
![](https://news.xinpengboligang.com/upload/keji/d8345b3b9c9cd8b7d3a51418567c5868.jpeg)
![](https://news.xinpengboligang.com/upload/keji/2e90dd0fd5c1279b932fad5ab870607b.jpeg)
5)三個常量
正無窮大,Double.POSITIVE_INFINITY / Float.POSITIVE_INFINITY
負無窮大,Double.NEGATIVE_INFINITY / Float.NEGATIVE_INFINITY
不是數字 NaN(Not-a-Number),Double.NaN / Float.NaN
isInfinite(a) / isFinite(a) / Double.isNaN(0.0/0)
![](https://news.xinpengboligang.com/upload/keji/e7992348ebdee9f459d6566f4adf09d6.jpeg)
![](https://news.xinpengboligang.com/upload/keji/e39cd203e6c4994907516e43fedd5770.jpeg)
3.3、char類型(最好不要使用)
1)用單引號括起來;
![](https://news.xinpengboligang.com/upload/keji/600556cd876b563c97a9d93094d14bfc.jpeg)
2)可以使用十六進制表示
![](https://news.xinpengboligang.com/upload/keji/74b9689e42802a5e8d788f365de08b77.jpeg)
![](https://news.xinpengboligang.com/upload/keji/d26c619c11f3df75e1ffc078ed1411bd.jpeg)
![](https://news.xinpengboligang.com/upload/keji/d8efc70a98a1e00d0f5a5346fb18d52e.jpeg)
![](https://news.xinpengboligang.com/upload/keji/c3c6022c09da312017dc783c55c42618.jpeg)
3)\u 是轉義字符;
3.4、boolean類型
1)兩種可選值true / false;
4、變量
4.1、變量命名規范
1)由字母和數字組成,字母包括一些26個字母之外的字符;
![](https://news.xinpengboligang.com/upload/keji/4245b1e465b535cd10184d4e76d18e4e.jpeg)
2)如何判斷 Unicode 字符是 java 中的字母,使用如下方法:
Character.isJavaIdentifierStart('@')
Character.isJavaIdentifierPart('@')
![](https://news.xinpengboligang.com/upload/keji/a866a67cd8b03c158379a577aa87bc9b.jpeg)
3)不要在代碼中使用 $ 符號來聲明變量名稱,盡管是可以的;
4)變量名稱大小寫敏感;
4.2、變量初始化
1)變量需要初始化才能使用;
![](https://news.xinpengboligang.com/upload/keji/60926bf32eaa2333721abe9b4c582cf6.jpeg)
4.3、常量
1)使用 final 關鍵字修飾常量,final 表示變量隻能賦值一次,賦值後不能再被修改了,也就是常量了;
![](https://news.xinpengboligang.com/upload/keji/7f2bdad47d4dc7a7157b024aaf252e04.jpeg)
2)常量名稱一般大寫;
3)類常量,使用 static final 關鍵字修飾;
類常量需定義在類中,不能定義在方法內;
![](https://news.xinpengboligang.com/upload/keji/cb5ec2495bb43e468d9d2a637ce95be4.jpeg)
![](https://news.xinpengboligang.com/upload/keji/ddb109ba8bb088f3a333b437421f18b6.jpeg)
5、運算符
1)算術運算符:加( ) 、減(-)、乘(*)、除(/)、求餘(% 也叫取模);
2)進行除(/)運算時:
兩個操作數都是整型則是整數除法;
兩個操作數有一個是浮點型時,表示浮點除法;
![](https://news.xinpengboligang.com/upload/keji/c4597ac43ee191e96587d9abf074f5b3.jpeg)
![](https://news.xinpengboligang.com/upload/keji/f8d80a39f65431800ae0aef21ace461e.jpeg)
3)strictfp 關鍵字,表示采用最嚴格的計算;
strictfp 關鍵字修飾在方法上時,表示方法內的計算都是采用最嚴格的計算;
strictfp 關鍵字修飾在類上時,表示該類中的方法都是采用最嚴格的計算;
![](https://news.xinpengboligang.com/upload/keji/8c3bf23c26712bf1b3c450ea6d9c1dd8.jpeg)
![](https://news.xinpengboligang.com/upload/keji/8ada53583861b6e59a35e5933b785a42.jpeg)
5.1、數學函數與常量
1)java.lang.Math 類
![](https://news.xinpengboligang.com/upload/keji/38351201b4dcef9f0a17d240e949456f.jpeg)
2)java.lang.StrictMath 類
![](https://news.xinpengboligang.com/upload/keji/7ee42c16ed98d94e03ccd5ad451eff59.jpeg)
![](https://news.xinpengboligang.com/upload/keji/82ba72bcc9dc6ef34050736fa716162f.jpeg)
5.2、數值類型之間的轉換
![](https://news.xinpengboligang.com/upload/keji/8db03d15b9809af2ee3ed14ce4d62f36.jpeg)
1)實心箭頭表示無信息丟失的轉換;
2)虛線箭頭表示可能會有精度損失的轉換;
3)兩個數值進行二元操作,會先自動轉換為同一類型再計算;
![](https://news.xinpengboligang.com/upload/keji/f5029f9909c41329b8a4889d96dde45f.jpeg)
![](https://news.xinpengboligang.com/upload/keji/248c5d6a54742b83791df4abbbaf8acf.jpeg)
![](https://news.xinpengboligang.com/upload/keji/d89dbcdcb99e8b4720f6d7248923c901.jpeg)
![](https://news.xinpengboligang.com/upload/keji/8a4a769be64a295373c1ecfe09cb3e7f.jpeg)
![](https://news.xinpengboligang.com/upload/keji/7de0b76a561219a953051cfd0440cca1.jpeg)
5.3、強制類型轉換
1)強制類型轉換,會將小數部分截斷將浮點值轉換為整型;
![](https://news.xinpengboligang.com/upload/keji/1570ec91ea488c258b533bc2d2b614b6.jpeg)
![](https://news.xinpengboligang.com/upload/keji/2a439663523e38f515e76a8360fe1cfd.jpeg)
2)對浮點數進行四舍五入,得到最接近的整型;
![](https://news.xinpengboligang.com/upload/keji/675edb28ad227b29c8342561986fa4b0.jpeg)
![](https://news.xinpengboligang.com/upload/keji/abbed0972813de0a857bcedb66169882.jpeg)
3)對浮點型數據進行加減乘除計算,小數點前面的 0 可以不寫;
![](https://news.xinpengboligang.com/upload/keji/a823c5df307f7f8ee2ee7ff192a2acb0.jpeg)
![](https://news.xinpengboligang.com/upload/keji/49679bdc565520b559ab3e3031ad69c8.jpeg)
5.4、結合賦值和運算
![](https://news.xinpengboligang.com/upload/keji/8abdb03830cb67300a721cc57d7ecc62.jpeg)
![](https://news.xinpengboligang.com/upload/keji/0461763735b66e1579ec36685bf29e97.jpeg)
5.5、自增、自減
1)前綴形式: n / --n,先計算再使用;
2)後綴形式:n / n--,先使用再計算;
3)不建議在運算中使用自增、自減運算,容易混淆;
![](https://news.xinpengboligang.com/upload/keji/98f1a76a537984bb2b5d912f939c5a46.jpeg)
![](https://news.xinpengboligang.com/upload/keji/ff3fea91eb610994dfe7d5356b715fdf.jpeg)
5.6、關系和 boolean 運算符
== / != / > / >= / < / <= / &&(短路與) / ||(短路或)
三目運算符;
5.7、位運算符
1)可以把整型用二進制來表示,能夠很清楚的看懂位運算;
2)& 運算符:兩個整數進行 &(與)運算,需對應的二進制位都是 1 計算的位值才為 1,其他情況都是 0;
也可用作與運算,類似 &&(短路與),隻不過 & 運算符兩邊都會計算;
![](https://news.xinpengboligang.com/upload/keji/25d43ba688b5f824e13b46b3c964c2b0.jpeg)
3)| 運算符:兩個整數進行 |(或)運算,需對應的二進制位有一個是 1 計算的位值才為 1,都是 0 位值才是 0;
也可用作或運算,類似 ||(短路或),隻不過 | 運算符兩邊都會計算;
![](https://news.xinpengboligang.com/upload/keji/f02fc57bec3c459b46c75ef95f576fd9.jpeg)
4)^ 運算符:異或運算,對應的二進制位值相同則為 0,不同則為 1;
![](https://news.xinpengboligang.com/upload/keji/99c56b38dbbceac064686eb36c415193.jpeg)
5)整型轉二進制的方法,Integer.toBinaryString(13)
![](https://news.xinpengboligang.com/upload/keji/d30d9764060db186ef300a2826cfdf78.jpeg)
6)介紹 ~ 非運算之前,先了解原碼、反碼、補碼;
int 類型是32位,表示二進制時有32位;
long 類型是 64 位,表示二進制時有 64 位;
![](https://news.xinpengboligang.com/upload/keji/8188b203e4758d748fd69e7c9b82aac8.jpeg)
![](https://news.xinpengboligang.com/upload/keji/7164c8df1d00f25f394b93e6b300fb93.jpeg)
> 二進制前面的 0 不顯示,左邊第一位是符號位,1表示負數,0表示正數;
> 正數 5 對應的:
原碼:00000000 00000000 00000000 00000101
反碼:00000000 00000000 00000000 00000101(和原碼一樣)
補碼:00000000 00000000 00000000 00000101(和原碼一樣)
> 負數 -5 對應的:
原碼:10000000 00000000 00000000 00000101
反碼:11111111 11111111 11111111 11111010(除符號位外各位在原碼基礎上取反)
補碼:11111111 11111111 11111111 11111011(反碼 1)
> 計算機內部是使用補碼來存儲和表示值的;
> 計算機硬件隻有加數器,正數和負數、負數和負數相加時使用補碼二進制實現加減計算;
7)~ 運算符,非運算,原位取反;
![](https://news.xinpengboligang.com/upload/keji/f9b0b6ebc39feaee95fbec108f53994f.jpeg)
非運算計算過程:
1)正數 3 的補碼:00000000 00000000 00000000 00000011
2)非運算原位取反:11111111 11111111 11111111 11111100(補碼)
3)補碼對應多少整型數值呢?自解析:
補碼轉反碼:11111111 11111111 11111111 11111011(補碼-1)
反碼轉原碼:10000000 00000000 00000000 00000100(符號位不變)
我們發現原碼對應的是整型數值 -4;
8)<< 運算符,位左移,右邊補0
> 正數左移,2 << 3 = 16(相當於在2的基礎上擴大了2的3次方倍,即2*8=16)
正數左移,2 << 3 = 16(相當於在2的基礎上擴大了2的3次方倍,即2*8=16):
2 的補碼:00000000 00000000 00000000 00000010(與原碼一致)
左移 3 位:00000000 00000000 00000000 00010000
![](https://news.xinpengboligang.com/upload/keji/1a019bbf35941a570c7cd6d4fdcc9c35.jpeg)
> 負數左移,-2 << 3 = -16(相當於在-2的基礎上擴大了2的3次方倍,即-2*8=16)
負數左移,-2 << 3 = -16:
-2的原碼:10000000 00000000 00000000 00000010
-2的反碼:11111111 11111111 11111111 11111101
-2的補碼:11111111 11111111 11111111 11111110
左移 3 位的補碼:11111111 11111111 11111111 11110000
對應反碼:11111111 11111111 11111111 11101111
對應原碼:10000000 00000000 00000000 00010000
![](https://news.xinpengboligang.com/upload/keji/c75cd5e3dfa52c56abdfdda43e5de270.jpeg)
![](https://news.xinpengboligang.com/upload/keji/731c7cbc4b4abdbba8e9b2b563d3376c.jpeg)
> 移動位數需要先進行 32 位取模,即求餘(long 類型需要 64 位取模);
![](https://news.xinpengboligang.com/upload/keji/46a442eba8e06b4ae6ee8d867f581bc4.jpeg)
9)>> 運算符,位右移;
> 正數右移,125 >> 3 = 15,左邊補 0;
![](https://news.xinpengboligang.com/upload/keji/dacb8e4fd1e7987772067c9d319dfc76.jpeg)
> 負數右移,-125 >> 3 = -16,左邊補 1;
![](https://news.xinpengboligang.com/upload/keji/3ee3a6f7b5d2eb5c55600157e4acb3df.jpeg)
10)>>> 運算符,無符號位右移,正負數都是左邊補 0;
➢ 正數右移,125 >> 3 = 15,左邊補 0
![](https://news.xinpengboligang.com/upload/keji/4d4a614a7df774a0c0cb330ae66219d6.jpeg)
➢ 負數右移,-125 >> 3 = -16,左邊補 0
![](https://news.xinpengboligang.com/upload/keji/83eb390c8ed16ce99b0c34014014a8be.jpeg)
5.8、括號與運算符優先級
![](https://news.xinpengboligang.com/upload/keji/943d46ef7beef1c0994584ee7bbaf6b3.jpeg)
![](https://news.xinpengboligang.com/upload/keji/13504524250ee7f9efaca4b270c5f8e2.jpeg)
1)不使用括號時,是按照優先級來計算的;
2)同一級別的運算符是按出現的順序從左至右進行計算的,右結合運算符除外;
3)右結合運算符是先計算右邊的;
![](https://news.xinpengboligang.com/upload/keji/c56771e1c7cb33749848503fc2426aa9.jpeg)
![](https://news.xinpengboligang.com/upload/keji/275b8dc7df6dc93394d77b4fafe05bce.jpeg)
6、Math 類和 StrictMath 類
6.1、random() 方法
1)隨機返回 [0, 1) 之間的 double 類型的值;
6.2、floor() 方法
1)Math.floor(1.2) 向下舍取整,保留一位小數;
![](https://news.xinpengboligang.com/upload/keji/abc613fd492c52b49cde37a339347cc9.jpeg)
![](https://news.xinpengboligang.com/upload/keji/871f3f577761807788e65d5d4a38e232.jpeg)
6.3、floorDiv() 方法
1)求商,Math.floorDiv(13, 3) 求商,返回 int 或 long 型,下舍取整;
![](https://news.xinpengboligang.com/upload/keji/4b2fd85e091ba48407f7e3340da94e5c.jpeg)
![](https://news.xinpengboligang.com/upload/keji/9843d85083034fafc96a189994256d59.jpeg)
![](https://news.xinpengboligang.com/upload/keji/83b205960247c479ab8b3be1d6f7945f.jpeg)
![](https://news.xinpengboligang.com/upload/keji/7ad15d10ec9740d3715dde003c3740c9.jpeg)
6.4、floorMod() 方法
1)求餘,Math.floorMod(17, 6),求餘;
![](https://news.xinpengboligang.com/upload/keji/a61c4bac52f2dc70747e543ebc26b516.jpeg)
![](https://news.xinpengboligang.com/upload/keji/82e72aa4db5fc1e7ed3aaf231c713b11.jpeg)
6.5、其他方法
public static void main(String[] args) {
int abs = Math.abs(-10);
System.out.println("Math.abs(-10) 絕對值=" abs);
int addExact = Math.addExact(20, -3);
System.out.println("Math.addExact(20, -3) 兩數相加=" addExact);
double ceil1 = Math.ceil(-1.4);
double ceil2 = Math.ceil(-1.5);
double ceil3 = Math.ceil(1.5);
double ceil4 = Math.ceil(1.4);
System.out.println("Math.ceil(-1.4) 返回大於或等於指定浮點數中,最小的整數對應的浮點數=" ceil1);
System.out.println("Math.ceil(-1.5) 返回大於或等於指定浮點數中,最小的整數對應的浮點數=" ceil2);
System.out.println("Math.ceil(1.5) 返回大於或等於指定浮點數中,最小的整數對應的浮點數=" ceil3);
System.out.println("Math.ceil(1.4) 返回大於或等於指定浮點數中,最小的整數對應的浮點數=" ceil4);
double floor1 = Math.floor(-1.4);
double floor2 = Math.floor(-1.5);
double floor3 = Math.floor(1.5);
double floor4 = Math.floor(1.4);
System.out.println("Math.floor(-1.4) 返回小於或等於指定浮點數中,最大的整數對應的浮點數=" floor1);
System.out.println("Math.floor(-1.5) 返回小於或等於指定浮點數中,最大的整數對應的浮點數=" floor2);
System.out.println("Math.floor(1.5) 返回小於或等於指定浮點數中,最大的整數對應的浮點數=" floor3);
System.out.println("Math.floor(1.4) 返回小於或等於指定浮點數中,最大的整數對應的浮點數=" floor4);
int floorDiv1 = Math.floorDiv(17, 5);
int floorDiv2 = Math.floorDiv(-17, 5);
System.out.println("Math.floorDiv(17, 5) 返回小於或等於代數商中,最大的整數=" floorDiv1);
System.out.println("Math.floorDiv(-17, 5) 返回小於或等於代數商中,最大的整數=" floorDiv2);
int floorMod1 = Math.floorMod(17, 5);
int floorMod2 = Math.floorMod(-17, 5);
System.out.println("Math.floorMod(17, 5) 取模公式[x - (floorDiv(x, y) * y)],結果=" floorMod1);
System.out.println("Math.floorMod(-17, 5) 取模公式[x - (floorDiv(x, y) * y)],結果=" floorMod2);
int incrementExact1 = Math.incrementExact(17);
int incrementExact2 = Math.incrementExact(-17);
System.out.println("Math.incrementExact(17) 返回指定參數加 1=" incrementExact1);
System.out.println("Math.incrementExact(-17) 返回指定參數加 1=" incrementExact2);
int max1 = Math.max(18, 17);
int max2 = Math.max(-18, 17);
int max3 = Math.max(-18, -17);
System.out.println("Math.max(18, 17) 取最大值=" max1);
System.out.println("Math.max(-18, 17) 取最大值=" max2);
System.out.println("Math.max(-18, -17) 取最大值=" max3);
int multiplyExact1 = Math.multiplyExact(3, 5);
int multiplyExact2 = Math.multiplyExact(3, -5);
int multiplyExact3 = Math.multiplyExact(-3, -5);
System.out.println("Math.multiplyExact(3, 5) 兩個指定參數相乘=" multiplyExact1);
System.out.println("Math.multiplyExact(3, -5) 兩個指定參數相乘=" multiplyExact2);
System.out.println("Math.multiplyExact(-3, -5) 兩個指定參數相乘=" multiplyExact3);
double pow1 = Math.pow(3, 2);
double pow2 = Math.pow(-3, 2);
System.out.println("Math.pow(3, 2) a的b次方=" pow1);
System.out.println("Math.pow(-3, 2) a的b次方=" pow2);
double random1 = Math.random();
System.out.println("Math.random() 返回[0, 1)之間的隨機數=" random1);
long round1 = Math.round(1.4);
long round2 = Math.round(1.5);
long round3 = Math.round(-1.4);
long round4 = Math.round(-1.5);
long round5 = Math.round(-1.6);
System.out.println("Math.round(1.4) 返回最接近指定參數的整數=" round1);
System.out.println("Math.round(1.5) 返回最接近指定參數的整數=" round2);
System.out.println("Math.round(-1.4) 返回最接近指定參數的整數=" round3);
System.out.println("Math.round(-1.5) 返回最接近指定參數的整數(負數時註意小數點後的5)=" round4);
System.out.println("Math.round(-1.6) 返回最接近指定參數的整數=" round5);
}
![](https://news.xinpengboligang.com/upload/keji/2ff438c89a13a0df49419f6d6dd9b3f6.jpeg)
7、控制流程
7.1、塊作用域
![](https://news.xinpengboligang.com/upload/keji/e3672d659f997cd39dbbb7834dc74806.jpeg)
7.2、循環
![](https://news.xinpengboligang.com/upload/keji/d491e67a3d4c02c1772ceee5dac51bed.jpeg)
![](https://news.xinpengboligang.com/upload/keji/f4b14ccd4703da0faf56749eaf18d964.jpeg)
![](https://news.xinpengboligang.com/upload/keji/307296190faf2907aa4c46ebcf0e0543.jpeg)
![](https://news.xinpengboligang.com/upload/keji/3e1e6e131dde552f7b96af6bc84ca0f8.jpeg)
7.3、多重選擇 swithc/case
1)case 標簽可以是如下:
char / byte / int / short 常量表達式;
枚舉常量;
字符串字面量;
![](https://news.xinpengboligang.com/upload/keji/6c19d9c882783408005a987089953d47.jpeg)
7.4、中斷流程,跳出循環
1)帶標簽 break;
2)這種標簽可以放置在任何地方,可以被任何流程控制塊使用;
![](https://news.xinpengboligang.com/upload/keji/39296e7274c4b3afe5336df5cb606e97.jpeg)
8、數組
8.1、聲明數組
![](https://news.xinpengboligang.com/upload/keji/fe15d1c1e8f7a491a46e903d59753b25.jpeg)
![](https://news.xinpengboligang.com/upload/keji/e6784e83728b0ff4660b748aee0787ad.jpeg)
![](https://news.xinpengboligang.com/upload/keji/bb57d3d65c99ad5bbece57f65bb0d130.jpeg)
8.2、數組拷貝
1)Arrays.copyOf 方法是拷貝數組元素到新的數組中;
![](https://news.xinpengboligang.com/upload/keji/1583e31806b226fef24641288e931c85.jpeg)
![](https://news.xinpengboligang.com/upload/keji/d20f7858cabdefe076ddef9c73048e42.jpeg)
![](https://news.xinpengboligang.com/upload/keji/417df52b01f7172e01e29c6503655860.jpeg)
8.3、數組排序
1)Arrays.sort() 排序方法采用的是快速排序算法,該方法適用於數值類型的數組;
![](https://news.xinpengboligang.com/upload/keji/78ee07fa56b315d3b93166ce6fd1befb.jpeg)
![](https://news.xinpengboligang.com/upload/keji/4677481aa26a8071ef066180f7825484.jpeg)
8.4、java.util.Arrays 類
1)Arrays.toString(arr) 數組轉字符串;
![](https://news.xinpengboligang.com/upload/keji/fbc81990a1b6ffff6b7d26168c5d8494.jpeg)
2)Arrays.copyOf 數組拷貝;
3)Arrays.sort() 數組排序;
4)Arrays.binarySearch(a, 12),使用二分查找算法,在數組中查找指定元素,查到則返回下標,沒查到則返回負值;
![](https://news.xinpengboligang.com/upload/keji/017c4812263ef0ac324b01ed6b66e168.jpeg)
5)Arrays.fill(a, 2) 填充數組中所有元素為指定值;
![](https://news.xinpengboligang.com/upload/keji/0ff6fde5762cd2a867404597ec7bf266.jpeg)
![](https://news.xinpengboligang.com/upload/keji/4f208a3f948174ab221d1a7c0984b0b7.jpeg)
8.5、多維數組
![](https://news.xinpengboligang.com/upload/keji/706568127f85bb6cdad7923c0e364d3c.jpeg)
8.6、不規則數組
![](https://news.xinpengboligang.com/upload/keji/9aaadab24153fc5ec6d568b887e58cef.jpeg)