八、javaSE:
1、java基礎文法
進制轉換
二進制 十進制 十六進制 八進制
源碼、反碼、補碼:在計算機中所有的資料(字元、圖檔、音頻、視訊等)都是以二進制補碼形式進行存儲的
根據源碼計算補碼:
源碼和補碼都是以0開頭數字表示正數,1表示負數
負數的補碼是他的源碼符号為不變,其他為取反再加一(反碼加一)
正數的補碼和源碼相同
4位2進制補碼最多可以表示24個數,範圍-23~2^3-1
在計算機中1個0或者1個1被稱為1位,機關1bit
變量
什麼是變量:變量是java語言中一種代詞,主要用于指代記憶體中的一塊存儲空間,在這塊存儲空間中可以存儲一個資料
對變量的操作就是對變量中存儲的值操作。
變量的基本使用:
1、java是強類型的程式設計語言,定義變量時候必須要指定明确的類型
2、格式:變量類型 變量名稱=變量值;
3、使用變量時可以直接操作變量值,不需要帶引号,和字元串可以使用+拼接
4、=指派符号,将右側值賦給左側變量
變量的定義和指派:
定義:聲明
指派:初始化(第一次)
格式:1、定義的同時指派
int a=23;
2、先定義後指派
int b;
b=34;
3、重新指派
int c=56;
c=45;
4、同時定義多個類型相同的變量
int a,b=34,c=56;
錯誤用法:1、變量未指派不能使用
2、變量不能重複定義
變量的指令規範:
強制性規範:
1、變量名隻能使用數字、字元、下劃線、$ 四種元素組成
2、不能以數字開頭
3、不能使用java中的關鍵字
建議性規範:
1、遵循小駝峰命名法,變量名如果由多個單詞組成,第一個單詞首字母小寫,
後面連續的單詞首字母大寫
2、變量的命名要見名之意
變量的範圍:
從變量的定義的地方,到他所屬的代碼塊的結束離開範圍變臉将會被回收。
代碼塊:離變量最近的一對大括号
資料類型
八種基本資料類型
正數資料類型:byte short int long
浮點資料類型:float double
字元資料類型:char
布爾資料類型:boolean
資料的字首和字尾
字首
'\u'采用4位16進制數字表示一個Unicode編碼,如'\u3e00'
0:八進制 0x:十六進制
字尾
L或l :使用long定義整數值,右側整數超過int範圍必須要帶,沒有超出也建議帶上
F或f:使用浮點數時必須帶上
D或d:使用double定義浮點數時,可以帶也可以不帶
引用資料類型
String屬于對象類型(應用類型)
作用:用于同時定義一到多個字元,用“”引起來
特點:可以和其他任意類型之間使用+做拼接,拼接後的結果還是一個字元串
運算符
1、算術運算符
+ - * / % ++ --
1、java 是封閉式計算,超出範圍就會得到錯誤結果
2、小類型資料和大資料資料計算結果得到大類型
3、/求整,兩個int求整,結果還是一個int類型
4、 特殊情況:
浮點數除以0得到infinity
整數除以0會抛出異常
負數開根号的到NaN
5、++/-- 的指派運算
2、比較運算符
> < >= <= == !=
1、比較運算的結果是傳回一個布爾類型的值(true/false)
2、整數,浮點數,字元之間可以比較,隻比較值不判斷類型
3、指派運算符
= += -= %= /= >>= >>>= <<= &= |= ^=
指派運算符前面預設會有類型轉換 如:byte a+=20; --> 底層執行是: a=(byte)(a+20);
4、邏輯運算符
&& || !
短路運算
短路與:false && 布爾表達式
邏輯與運算如果已經判斷了左側為false ,那麼右側無論是true還是false ,結果都是false
此時右側不參與計算。
短路或:true || 布爾表達式 邏輯或運算s左側已經判斷為true ,那麼右側無論是true
還是false ,其結果都是true ,此時右側表達式不用參加計算。
5、三項運算符
? :
6、移位運算符
>> >>> <<
1、>>帶符号右移 ----》 正數帶符号右移,左側補0 《=====》 負數帶符号右移,左側補一
每向右一位減一半,向左加一半
2、>>>無符号右移 無論是正數還是負數,右移後左側都補0
3、<<左移 無論是正數還是負數,左移後右側都補0
7、位運算符
& | ^ ~
1、位與& 位| 位非~ 異或^
2、位非~,單項運算符,連同符号位一起按位取反
分支語句
1、if:
if(布爾表達式){
代碼塊
}布爾表達式為true,執行後面大括号中所有代碼.為false,跳過執行
2、if~else:
if(布爾表達式){
代碼塊1;
}else{
代碼塊2;
}如果布爾表達式為itrue,執行代碼塊1,否則執行代碼塊2.
3、 if~else if~else:
if(布爾表達式1){
代碼塊;
}else if(布爾表達式2){
代碼塊;
}else if(布爾表達式3){
代碼塊;
}
.......
else{
代碼塊;
}從上往下逐一判斷所有的布爾表達式,隻要有一個為true,就執行後面大括号中對應的代碼塊,
如果所有的布爾表達式都是false,則執行else中的内容。
4、Switch:case:;default:;
switch(變量){
case 值1;代碼塊; break;
case 值2:代碼塊;break;
........................
case 值n: 代碼塊;break;
default: 代碼塊;
}從上往下逐一那case後面的值去比對Switch 括号中變量,隻要有一個比對上就執行後續所有的代碼,
直到碰到一個break,跳出整個分支判斷。如果所有值都沒有比對上就執行default後面的代碼塊。
注意:
<1>switch 後面中變量的類型可以寫那些(面試題)?
jdk1.6之前:byte、 short、int 、 char、enum
jdk1.6之後:byte、short、int、char、String、enum
<2>代碼塊隻有一行,大括号可以省略
循環
重複的去執行某一段代碼
for()循環
一般用于次數确定的循環
for(初始化表達式;布爾表達式;修改循環變量){
//循環體;
}布爾表達式為true執行循環體,否則不執行循環
while()循環
一般用于次數不确定的循環
while(布爾表達式){
//循環體;
}布爾表達式為true,執行循環體,否則不執行
do~while()循環
一般用于次數不确定的循環,先執行後判斷
死循環寫法:
for(;;)
while(true){}
do{}while(true);
循環關鍵字:
break:終止後續所有循環
continue:跳過本次循環,繼續後續的循環