1.關鍵字
概述:被java語言賦予特殊含義的單詞
組成規則:全部小寫
注意事項:
goto和const作為保留字存在,在JDK以後的版本升級過程中可能提升為關鍵字
類似於notepad++,eclipse這樣的高級開發工具關鍵字都會變色
今天見過了哪些關鍵字:class,public,static,void,int,byte,short,long,char,float,boolean,double,true,false,null
2.標識符
概述:就是給類,接口,方法,變量等起名字的字符序列
組成規則:
英文大小寫字母
數字字符
$和_
注意事項:
不能以數字開頭
不能使用關鍵字
區分大小寫
起名字要見名之意
四大命名規則:
包:其實就是文件夾,一般是以公司的域名反轉之後的前兩位
一個單詞:全部小寫test
多個單詞:全部小寫,多個單詞之間用.隔開cn.edu360 www.baidu
類和接口:
一個單詞:首字母大寫File
多個單詞:每個單詞首字母都大寫FileInputStream
變量和方法:
一個單詞:全部小寫read
多個單詞:從第二個單詞開始首字母大寫readLine
常量:
一個單詞:全部大寫KEY
多個單詞:全部大寫,多個單詞之間用下劃線隔開ROUND_HALFUP
3.常量
概述:在程序執行的過程中,其值不能發生改變的量 Spring Cloud雲析 679819153
字面值常量:
字符串常量:就是用雙引號括起來的內容"字符串"
字符常量:就是用單引號括起來的內容'符'
整數常量:包括所有的整數10 -10
小數常量:包括所有的小數12.12 -11.1
布爾常量:要麼false,要麼true
空常量:值就是null,數組的時候講解
自定義常量:後面的時候講
4.進制
二進制:0b開頭,0-1組成
八進制:0開頭,0-7組成
十進制:默認就是十進制,0-9組成
十六進制:0x開頭,由0-f組成
x進制如何轉換成y進制?
x進制轉換成十進制:
位值:每一位上面對應的數值
進制數:x進制的進制數就是x
次方:從右向左,從0開始編號,對應位上面的編號就是當前位上面的次方
將每一位上面的位值乘以進制數的次方相加在一起就是十進制
十進制轉換成y進制:除以y直至商為零,餘數反轉
5.有符號表示法
在計算機中整數都是以補碼的方式進行存儲和運算的。
原碼:將一個整數轉換成二進制。最高位作為符號位,0表示正數,1表示負數,其餘位表示數值位
反碼:正數的反碼和原碼相同。負數的反碼除了最高位,其餘位全部取反
補碼:正數的補碼和原碼相同。負數的補碼是在反碼的基礎上末尾+1
6.變量
概述:在程序執行的過程中,其值可以在一定範圍內發生改變的量
定義格式:
數據類型 變量名 = 初始化值。
注意事項:
作用域:當前的變量在哪一個大括號中定義的,那麼當前的大括號就是該變量的作用域
在同一作用域中不能定義同名的變量
在一行一個語句中可以同時定義多個同一種數據類型的變量
在同一行上面不建議寫多個語句,一個語句的結束標記是";"
7.數據類型
基本數據類型:全是小寫,都是關鍵字,都會變色
字節位數默認值
byte180
short2160
int4320
long8640
float4320.0
double8640.0
char216空''
boolean18false
引用數據類型:除了基本數據類型之外的類型
數據類型運算規則:
boolean類型是不參與和其他數據類型之間的運算
byte,short,char之間不直接相互運行,而且提升精度為int類型之後再相互運算
精度的優先級:byte,short,char->int->long->float->double
數據類型強制轉換格式:
目標數據類型 變量名 = (目標數據類型)(要轉換的值);
8.算術運算符
/:如果想要結果得到小數的話,那麼必須讓除數或者被除數變成小數 Spring Cloud雲析 679819153
%:a%b的取值範圍是0-(b-1)
5.數據類型轉換:
第一題:
short b1=3;
byte b2=8,b;
b=b1+b2;
b=8+3;
哪句是編譯失敗的呢?為什麼呢?
有問題,由int數據類型轉換到byte數據類型會丟失精度,需要強轉
解決方案:將 b=b1+b2;改為 b=(byte)b1+b2;
第二題:
byte result = 313;有沒有問題?有問題如何解決?結果是多少呢?將結果分析的步驟寫出來
有問題,313是int類型的數據,將其轉化為byte 類型的數據會丟失精度,所以需要強轉,
將byte result = 313;改為 byte result = (byte) result;即可
313的補碼:
00000000 00000000 00000001 00111001
因為byte 是8位,所以從低到高取八位
00111001 轉換為十進制為 57
所以結果為 57.
6.按要求填寫缺少的代碼
class Demo{
public static void main(String[] args){
int result = (a++)+(b++)+(c+++a--);
//要求最終輸出的result的值等於50,要求定義最初a,b,c的值
//System.out.println(result);
}
}
缺少的代碼
int a= 1,b=17,c=30;
過程:
第一個括號: a
第二個括號: b
第三個括號: c+a+1
所以
所有滿足
a+b+c+a+1=50
的a,b,c
的值的集合都滿足要求。
7.基本小題目
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
請分別計算出a,b,c的值
變化過程
a 10 9
b 11
c 9
所以
a的值為10;
b的值為11;
c的值為9;
8.比較複雜的題目
int a = 4;
int b = (a++)+(++a)+(a*10);
引出運算符的優先級
運算過程
先算括號內的
a++ = 4;//計算完這步之後a=5;
++a = 6;//計算完這步之後a=6;
a*10 = 60;
所以b的值為4+6+60=70;
閱讀更多 java架構社區 的文章