標識符
定義
給包,類,方法,變量起名字的符號。
組成規則
標識符由字母、數字、下劃線、美元符號組成。
命名原則:見名知意
包名:全部小寫,多級包用.隔開。
舉例:com.jourwon
類、接口:一個單詞首字母大寫,多個單詞每個單詞的首字母大寫。
舉例:Student,Car,HelloWorld
方法和變量:一個單詞首字母小寫,多個單詞從第二個單詞開始每個單詞的首字母大寫。
舉例:age,maxAge,show(),getAge()
常量:如果是一個單詞,所有字母大寫,如果是多個單詞,所有的單詞大寫,用下劃線區分每個單詞。
舉例:DATE,MAX_AGE
項目名:全部用小寫字母,多個單詞之間用橫桿-分割。
舉例:demo,spring-boot
注意事項
不能以數字開頭
不能是Java中的關鍵字
Java標識符大小寫敏感,長度無限制
標識符不能包含空格
關鍵字
定義
被Java語言賦予了特殊含義,用作專門用途的字符串(單詞),這些關鍵字不能用于常量、變量、和任何標識符的名稱。
Java關鍵字(Java 8版本)
Java關鍵字(Java 8版本)
Java關鍵字(Java 8 以后版本)
Java關鍵字(Java 8 以后版本)
注意事項
true,false和,null看起來像關鍵字,但它們實際上是文字; 您不能在程序中將它們用作標識符。
注釋
定義
用于解釋說明程序的文字
分類
單行注釋
格式: // 注釋文字
多行注釋
格式: /* 注釋文字 */
文檔注釋
格式:/** 注釋文字 */
作用
在程序中,尤其是復雜的程序中,適當地加入注釋可以增加程序的可讀性,有利于程序的修改、調試和交流。注釋的內容在程序編譯的時候會被忽視,不會產生目標代碼,注釋的部分不會對程序的執行結果產生任何影響。
注意事項
多行和文檔注釋都不能嵌套使用。
訪問修飾符
定義
Java中,可以使用訪問修飾符來保護對類、變量、方法和構造方法的訪問。Java 支持 4 種不同的訪問權限。
分類
private : 在同一類內可見。使用對象:變量、方法。 注意:不能修飾類(外部類)
default (即缺省,什么也不寫,不使用任何關鍵字): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
protected : 對同一包內的類和所有子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。
public : 對所有類可見。使用對象:類、接口、變量、方法
訪問修飾符圖
訪問修飾符圖
分隔符
定義
空格、逗號、分號以及行結束符都被稱為分隔符,規定任意兩個相鄰標識符、數字、保留字或語句之間必須至少有一個分隔符,以便程序編譯時能夠識別。
分類
; 分號 用來終止一個語句
{} 花括號、大括號 用來包括自動初始化的數組的值,也用來定義程序塊、類、方法以及局部范圍
[] 方括號、中括號 用來聲明數組的類型,也用來表示撤消對數組值的引用
, 逗號 在變量聲明中,區分變量說明的各個變量。在for控制語句中,用來將圓括號內的語句連接起來
. 原點 用來將軟件包的名字與它的子包或類分隔。也用來將引用變量與變量或方法分隔
() 圓括號 在定義和調用方法時用來容納參數表。在控制語句或強制類型轉換組成的表達式中用來表示執行或計算的優先權
注意事項
必須都是半角下的英文符號。
轉義字符
定義
轉義字符是一種特殊的字符常量。轉義字符以反斜線""開頭,后跟一個或幾個字符。轉義字符具有特定的含義,不同于字符原有的意義,故稱“轉義”字符。
常見轉義字符表
常見轉義字符表
Java中需要轉義的字符
在Java中,不管是String.split(),還是正則表達式,有一些特殊字符需要轉義,這些字符是
( [ { / ^ - $ | } ] ) ? * + .
轉義方法為字符前面加上"\",這樣在split、replaceAll時就不會報錯。不過要注意,String.contains()方法不需要轉義。
空行
空白行,或者有注釋的行,Java編譯器都會忽略掉
進制
定義
進制也就是進位計數制,是人為定義的帶進位的計數方法。
十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一,以此類推,x進制就是逢x進位。
常用進制類型
二進制
計算機底層都是使用二進制進行存儲以及運算
0b****;(以0b或者0B開始,*表示0或1)比如:010101
原碼、反碼、補碼
原碼
原碼:將一個整數轉換成二進制表示
以 int 類型為例,int類型占4個字節、共32位。
例如:
2 的原碼為:00000000 00000000 00000000 00000010
-2的原碼為:10000000 00000000 00000000 00000010
反碼
反碼
正數的反碼:與原碼相同
負數的反碼:原碼的符號位不變,其他位取反
例如,-2 的反碼為:11111111 11111111 11111111 11111101
補碼
補碼
正數的補碼:與原碼相同
負數的補碼:反碼+1
例如,-2 的補碼為:01111111 11111111 11111111 11111110
注意事項
二進制的最高位是符號位(“0”代表正數,“1”代表負數);
Java中沒有無符號數;
計算機以整數的補碼進行運算;
八進制
0****;(以數字0開始,*表示0到7任意數字 比如:012345)
十進制
0~9組成 比如:100
十六進制
0x****;(以0x或者0X開始,*表示09或者af組成 比如:0x12c)
進制轉換
十進制轉二進制
方法為:十進制數除2取余法,即十進制數除2,余數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。
150十進制轉二進制
150十進制轉二進制
二進制轉十進制
方法為:把二進制數按權展開、相加即得十進制數。
150二進制轉十進制
150二進制轉十進制
流程控制語句
定義
流程是指程序運行時,各語句的執行順序。流程控制語句就是用來控制程序中各語句執行的順序。
分類
順序結構
定義
順序結構是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先后順序,依次執行,程序中大多數的代碼都是這樣執行的
舉例
/*
* 順序結構:從上往下,依次執行
*/
public class OrderDemo {
public static void main(String[] args) {
System.out.println("開始");
System.out.println("語句A");
System.out.println("語句B");
System.out.println("語句C");
System.out.println("結束");
}
}
分支結構(選擇結構)
定義
條件語句可根據不同的條件執行不同的語句。包括if條件語句與switch多分支語句。
分類
if分支結構
第一種格式
格式
if(條件表達式){
執行的代碼塊;
}
執行流程
執行流程圖
if語句格式1
執行流程說明
首先判斷關系表達式看其結果是true還是false
如果是true就執行語句體
如果是false就不執行語句體
舉例
public class IfDemo {
public static void main(String[] args) {
System.out.println("開始");
// 定義兩個變量
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("結束");
}
}
第二種格式
格式
if(條件表達式){
執行的代碼塊;
}else{
執行的代碼塊;
}
執行流程
執行流程圖
if語句格式2
執行流程說明
首先判斷關系表達式看其結果是true還是false
如果是true就執行語句體1
如果是false就執行語句體2
舉例
public class IfDemo2 {
public static void main(String[] args) {
System.out.println("開始");
// 判斷給定的數據是奇數還是偶數
// 定義變量
int a = 100;
// 給a重新賦值
a = 99;
if (a % 2 == 0) {
System.out.println("a是偶數");
} else {
System.out.println("a是奇數");
}
System.out.println("結束");
}
}
第三種格式
格式
if(條件表達式){
執行的代碼塊;
}else if(條件表達式){
執行的代碼塊;
}......(此處省略N個else if)
else{
執行代碼塊;
}
執行流程
執行流程圖
if語句格式3
執行流程說明
首先判斷關系表達式1看其結果是true還是false
如果是true就執行語句體1
如果是false就繼續判斷關系表達式2看其結果是true還是false
如果是true就執行語句體2
如果是false就繼續判斷關系表達式…看其結果是true還是false
…
如果沒有任何關系表達式為true,就執行語句體n+1
舉例
public class IfDemo3 {
public static void main(String[] args) {
// x和y的關系滿足如下:
// x>=3 y = 2x + 1;
// -1<=x<3 y = 2x;
// x<=-1 y = 2x – 1;
// 根據給定的x的值,計算出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);
}
}
注意事項
1、一旦滿足某個條件表達式,則進入其執行語句塊執行,執行完畢后不會執行其一下的條件語句。
2、如果多個條件表達式之間為“互斥”關系,多個語句之間可以上下調換順序,一旦是包含關系,要求條件表達式范圍小的寫到范圍大的上邊;
switch分支結構
執行流程
執行流程說明
首先計算出表達式的值
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。
執行流程圖
switch執行流程
舉例
public class SwitchDemo {
public static void main(String[] args) {
//創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
//接收數據
System.out.println("請輸入一個數字(1-7):");
int weekday = sc.nextInt();
//switch語句實現選擇
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("你輸入的數字有誤");
break;
}
}
}
注意事項
1、swich(表達式)中表達式的返回值必須是以下幾種類型之一:
byte,short,char,int,枚舉(jdk1.5),String(jdk1.7)
2、case子句中的值必須是常量,且所有case子句中的值應是不同的;
3、default子句是可任選的,當沒有匹配的case時,執行default;
4、break語句用來在執行完一個case分支后使程序跳出swich語句塊;如果沒有break程序會順序執行到swich結尾;
if分支結構和switch分支結構區別
if和swich語句很想,如果判斷的具體數值不多,而且復合byte、short、int、char這四種類型。建議使用swich語句,因為效率稍高;
其他情況:對區間進行判斷,對結果為boolean類型進行判斷,使用if,if的使用范圍比較廣泛。
循環結構
定義
循環語句就是在滿足一定條件的情況下反復執行某一個操作。包括while循環語句、do···while循環語句和for循環語句。
分類
for循環語句
執行流程
執行流程圖
for循環語句的執行流程圖
執行流程說明
A:執行初始化語句
B:執行判斷條件語句,看其結果是true還是false
如果是false,循環結束。
如果是true,繼續執行。
C:執行循環體語句
D:執行控制條件語句
E:回到B繼續
格式
for(初始化語句;判斷條件語句;控制條件語句) {
循環體語句;
}
舉例
public class ForDemo {
public static void main(String[] args) {
//原始寫法
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("-------------------------");
//用循環改進
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
}
}
foreach循環語句
執行流程
執行流程說明
和for循環執行流程相似
格式
for (聲明語句 : 表達式) {
//代碼句子
}
舉例
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語句的特殊簡化版本,并不能完全替代for語句,但所有foreach語句都可以改寫為for語句。foreach語句在遍歷數組等時為程序員提供了很大的方便。
while循環語句
格式
基本格式
while(判斷條件語句) {
循環體語句;
}
擴展格式
初始化語句;
while(判斷條件語句) {
循環體語句;
控制條件語句;
}
執行流程
執行流程圖
while循環語句的執行流程圖
執行流程說明
while循環語句的循環方式為利用一個條件來控制是否要繼續反復執行這個語句。
舉例
public class WhileDemo {
public static void main(String[] args) {
//輸出10次HelloWorld
/*
for(int x=1; x<=10; x++) {
System.out.println("HellloWorld");
}
*/
//while循環實現
int x=1;
while(x<=10) {
System.out.println("HellloWorld");
x++;
}
}
}
do…while循環語句
格式
基本格式
do {
循環體語句;
}while((判斷條件語句);
擴展格式
初始化語句;
do {
循環體語句;
控制條件語句;
} while((判斷條件語句);
執行流程
執行流程圖
do...while循環語句的執行流程圖
執行流程說明
A:執行初始化語句;
B:執行循環體語句;
C:執行控制條件語句;
D:執行判斷條件語句,看是true還是false
如果是true,回到B繼續
如果是false,就結束
舉例
public class DoWhileDemo {
public static void main(String[] args) {
//輸出10次 HelloWorld
/*
for(int x=1; x<=10; x++) {
System.out.println("HelloWorld");
}
*/
//do...while改寫
int x=1;
do {
System.out.println("HelloWorld");
x++;
}while(x<=10);
}
}
三種循環的區別
雖然可以完成同樣的功能,但是還是有小區別:
do…while循環至少會執行一次循環體。
for循環和while循環只有在條件成立的時候才會去執行循環體
for循環語句和while循環語句的小區別:
使用區別:控制條件語句所控制的那個變量,在for循環結束后,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。
跳轉語句(控制循環結構)
定義
Java語言中提供了3種跳轉語句,分別是break語句、continue語句和return語句。
分類
break
break的使用場景
break的使用場景:
在選擇結構switch語句中,在循環語句中
離開使用場景的存在是沒有意義的
break的作用:跳出單層循環
舉例
/*
* break:中斷的意思
* 使用場景:
* A:switch語句中
* B:循環中
* 注意:
* 離開使用場景是沒有意義的。
* 作用:
* 跳出循環,讓循環提前結束
*/
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的使用場景
continue的使用場景:
在循環語句中
離開使用場景的存在是沒有意義的
continue的作用:
單層循環對比break,然后總結兩個的區別
break 退出當前循環
continue 退出本次循環
舉例
/*
* continue:繼續的意思
* 使用場景:
* 循環中
* 注意:
* 離開使用場景是沒有意義的
* 作用:
* 結束一次循環,繼續下一次的循環
* 區別:
* break:退出循環
* continue:結束一次循環,繼續下一次的循環
*/
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的使用場景
return的使用場景:
在循環語句中
在方法中
return的作用:可以從一個方法返回,并把控制權交給調用它的語句。
直接結束整個方法,從而結束循環。
舉例
public class ReturnDemo {
public static void main(String[] args) {
getStr();
}
public String getStr() {
return "Hello";
}
}
表達式
定義
用運算符把常量或者變量連接起來符號java語法的式子就可以稱為表達式。
類型和值
表達式值的數據類型即為表達式的類型。
對表達式中操作數進行運算得到的結果是表達式的值。
運算順序
應按照運算符的優先級從高到低的順序進行;
優先級相同的運算符按照事先約定的結合方向進行;
舉例
a + b
3.14 + a
(x + y) * z + 100
boolean b= i < 10 && (i%10 != 0)
運算符
定義
分類
算術運算符
算術運算符
/ % ++ -- +
注意事項
1、/ 左右兩端的類型需要一致;
2、%最后的符號和被模數相同;
3、前++;先+1,后運算 后++;先運算,后+1;
4、+:當String字符串與其他數據類型只能做連接運算;并且結果為String類型;
比較運算符(關系運算符)
= += -= *= /= %=
比較運算符1
比較運算符
比較運算符2
比較運算符2
注意事項
1、比較運算符的兩端都是boolean類型,也就是說要么是true,要么是false;
2、比較運算符的"=="與"="的作用是不同的,使用的時候需要小心。
賦值運算符
= += -= *= /= %=
基本的賦值運算符:=
擴展的賦值運算符:+=,-=,*=,/=,%=
+=: a+=20;相當于a = (a的數據類型)(a + 20);
邏輯運算符(符號的兩端都是boolean類型)
& | ^ ! && ||
注意事項
1、& 與 &&以及|與||的區別:
&:左邊無論真假,右邊都會進行運算;
&&:如果左邊為假,則右邊不進行運算;
| 與 || 的區別同上;在使用的時候建議使用&&和||;
2、(^)與或(|)的不同之處是:當左右都為true時,結果為false。
邏輯運算符
邏輯運算符
位運算符(兩端都是數值型的數據)
位運算符1
位運算符1
位運算符2
位運算符2
三元運算符(三目運算符)
三元運算符
三元運算符
注意事項
1、表達式1與表達式2的類型必須一致;
2、使用三元運算符的地方一定可以使用if..else代替,反之不一定成立;
運算符的優先級
運算符的優先級
優先級按照從高到低的順序書寫,也就是優先級為1的優先級最高,優先級14的優先級最低。使用優先級為 1 的小括號可以改變其他運算符的優先級。
變量
定義
在程序執行的過程中,在某個范圍內其值可以發生改變的量。
從本質上講,變量其實是內存中的一小塊區域
分類
按被聲明的位置劃分
成員變量
方法外部,類內部定義的變量
類變量(靜態變量):獨立于方法之外的變量,用 static 修飾。
類變量也稱為靜態變量,在類中以static關鍵字聲明,但必須在方法構造方法和語句塊之外。
無論一個類創建了多少個對象,類只擁有類變量的一份拷貝。
靜態變量除了被聲明為常量外很少使用。常量是指聲明為public/private,final和static類型的變量。常量初始化后不可改變。
靜態變量儲存在靜態存儲區。經常被聲明為常量,很少單獨使用static聲明變量。
靜態變量在第一次被訪問時創建,在程序結束時銷毀。
與實例變量具有相似的可見性。但為了對類的使用者可見,大多數靜態變量聲明為public類型。
默認值和實例變量相似。數值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值可以在聲明的時候指定,也可以在構造方法中指定。此外,靜態變量還可以在靜態語句塊中初始化。
靜態變量可以通過:ClassName.VariableName的方式訪問。
類變量被聲明為public static final類型時,類變量名稱一般建議使用大寫字母。如果靜態變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。
實例變量(非靜態變量):獨立于方法之外的變量,不過沒有 static 修飾。
實例變量聲明在一個類中,但在方法、構造方法和語句塊之外;
當一個對象被實例化之后,每個實例變量的值就跟著確定;
實例變量在對象創建的時候創建,在對象被銷毀的時候銷毀;
實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
實例變量可以聲明在使用前或者使用后;
訪問修飾符可以修飾實例變量;
實例變量對于類中的方法、構造方法或者語句塊是可見的。一般情況下應該把實例變量設為私有。通過使用訪問修飾符可以使實例變量對子類可見;
實例變量具有默認值。數值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構造方法中指定;
實例變量可以直接通過變量名訪問。但在靜態方法以及其他類中,就應該使用完全限定名:ObejectReference.VariableName。
類變量和實例變量的區別
調用方式
靜態變量也稱為類變量,可以直接通過類名調用。也可以通過對象名調用。這個變量屬于類。
成員變量也稱為實例變量,只能通過對象名調用。這個變量屬于對象。
存儲位置
靜態變量存儲在方法區長中的靜態區。
成員變量存儲在堆內存。
生命周期
靜態變量隨著類的加載而存在,隨著類的消失而消失。生命周期長。
成員變量隨著對象的創建而存在,隨著對象的消失而消失。
與對象的相關性
靜態變量是所有對象共享的數據。
成員變量是每個對象所特有的數據。
局部變量
局部變量:類的方法中的變量。
局部變量聲明在方法、構造方法或者語句塊中;
局部變量在方法、構造方法、或者語句塊被執行的時候創建,當它們執行完成后,變量將會被銷毀;
訪問修飾符不能用于局部變量;
局部變量只在聲明它的方法、構造方法或者語句塊中可見;
局部變量是在棧上分配的。
局部變量沒有默認值,所以局部變量被聲明后,必須經過初始化,才可以使用。
成員變量和局部變量的區別
作用域
成員變量:針對整個類有效。
局部變量:只在某個范圍內有效。(一般指的就是方法,語句體內)
存儲位置
成員變量:隨著對象的創建而存在,隨著對象的消失而消失,存儲在堆內存中。
局部變量:在方法被調用,或者語句被執行的時候存在,存儲在棧內存中。當方法調用完,或者語句結束后,就自動釋放。
生命周期
成員變量:隨著對象的創建而存在,隨著對象的消失而消失
局部變量:當方法調用完,或者語句結束后,就自動釋放。
初始值
成員變量:有默認初始值。
局部變量:沒有默認初始值,使用前必須賦值。
使用原則
在使用變量時需要遵循的原則為:就近原則
首先在局部范圍找,有就使用;接著在成員位置找。
按所屬的數據類型劃分
基本數據類型變量
基本數據類型
byte,short,int,long,float,double,char,boolean
變量的定義格式
數據類型 變量名 = 初始化值;
注意
整數默認是int類型,定義long類型的數據時,要在數據后面加L。
浮點數默認是double類型,定義float類型的數據時,要在數據后面加F。
引用數據類型變量
定義格式
數據類型 變量名 = 初始化值;
注意:格式是固定的,記住格式,以不變應萬變
舉例
public class Variable{
// 類變量
static int allClicks=0;
// 實例變量
String str="hello world";
public void method(){
// 局部變量
int i =0;
}
}
注意事項
類外面不能有變量的聲明
常量
定義
常量定義:在程序執行的過程中,其值不可以發生改變的量。常量不同于常量值,它可以在程序中用符號來代替常量值使用,因此在使用前必須先定義。
常量值定義:常量和常量值是不同的概念,常量值又稱為字面常量,它是通過數據直接表示的。
關系:常量值是常量的具體和直觀的表現形式,常量是形式化的表現。通常在程序中既可以直接使用常量值,也可以使用常量。
分類
字符串常量 用雙引號括起來的內容(“HelloWorld”)
整數常量 所有整數(12,-23)
小數常量 所有小數(12.34)
字符常量 用單引號括起來的內容(‘a’,’A’,’0’)
布爾常量 較為特有,只有true和false
空常量 null(數組部分講解)
舉例
Java 語言使用 final 關鍵字來定義一個常量
final int COUNT=10;
final float HEIGHT=10.2F;
注意事項
在定義常量時就需要對該常量進行初始化。
final 關鍵字不僅可以用來修飾基本數據類型的常量,還可以用來修飾對象的引用或者方法。
為了與變量區別,常量取名一般都用大寫字符。
數據類型
定義
Java語言是強類型語言,對于每一種數據都定義了明確的具體的數據類型,在內存中分配了不同大小的內存空間。
分類
基本數據類型
數值型
整數類型(byte,short,int,long)
浮點類型(float,double)
字符型(char)
布爾型(boolean)
引用數據類型
類(class)
接口(interface)
數組([])
計算機存儲單元
定義:變量是內存中的小容器,用來存儲數據。那么計算機內存是怎么存儲數據的呢?無論是內存還是硬盤,計算機存儲設備的最小信息單元叫“位(bit)”,我們又稱之為“比特位”,通常用小寫的字母b表示。而計算機最小的存儲單元叫“字節(byte)”,通常用大寫字母B表示,字節是由連續的8個位組成。
常用存儲單元關系
1B= 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
Java基本數據類型圖
Java基本數據類型
數據類型轉換
定義
數據類型的轉換是在所賦值的數值類型和被變量接收的數據類型不一致時發生的,它需要從一種數據類型轉換成另一種數據類型。
分類
隱式轉換
定義
在運算過程中,由于不同的數據類型會轉換成同一種數據類型,所以整型、浮點型以及字符型都可以參與混合運算。自動轉換的規則是從低級類型數據轉換成高級類型數據。
轉換規則
數值型數據的轉換:byte→short→int→long→float→double。
字符型轉換為整型:char→int。
轉換條件
自動類型轉換的實現需要同時滿足兩個條件:①兩種數據類型彼此兼容,②目標類型的取值范圍大于源數據類型(低級類型數據轉換成高級類型數據)。例如 byte 類型向 short 類型轉換時,由于 short 類型的取值范圍較大,會自動將 byte 轉換為 short 類型。
顯式轉換
定義
當兩種數據類型不兼容,或目標類型的取值范圍小于源類型時,自動轉換將無法進行,這時就需要進行強制類型轉換。
語法格式
目標類型 變量名 = (目標類型) (被轉換的數據);
舉例:int b = (byte)(a + b);
注意
如果超出了被賦值的數據類型的取值范圍得到的結果會與你期望的結果不同
不建議強制轉換,因為會有精度的損失。