java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础
(一)Java程序基本結(jié)構(gòu)
Java是面向?qū)ο蟮恼Z言,一個程序的基本單位就是class。在class內(nèi)部,可定義若干方法。
類名要求:
類名必須以英文字母開頭,后接字母,數(shù)字和下劃線的組合
習(xí)慣以大寫字母開頭
方法名要求:
方法名必須以英文字母開頭,后接字母,數(shù)字和下劃線的組合
習(xí)慣以小寫字母開頭
(二)變量和數(shù)據(jù)類型
在Java中,變量分為基本類型的變量和引用類型的變量。
例如:int x = 1;? //定義了一個整型int類型的變量,名為x,初始值為1
變量的一個特點(diǎn)是可以重新賦值,也可以賦值給其他變量。值得注意的是,在第一次定義變量時需要指定變量類型,而第二次重新賦值時,該變量已經(jīng)存在了,不用再指定變量類型。
基本數(shù)據(jù)類型
整數(shù)類型:byte, short, int, long
浮點(diǎn)數(shù)類型:float, double
字符類型:char
布爾類型:boolean
計(jì)算機(jī)內(nèi)存的最小存儲單元是字節(jié)(byte),一個字節(jié)就是一個8位二進(jìn)制數(shù),即8個bit,字節(jié)的二進(jìn)制表示范圍為00000000~11111111,換算成二進(jìn)制是0~255,換算成十六進(jìn)制是00~ff。
Java基本數(shù)據(jù)類型占用的字節(jié)數(shù)
類型
byte
short
int
long
float
double
char
字節(jié)
1
2
4
8
4
8
2
定義基本數(shù)據(jù)類型時的注意事項(xiàng)
整型最高位的bit表示符號位(0表示正數(shù),1表示負(fù)數(shù))
long型的結(jié)尾需要加L(int l = 9000000000000000000L;)
float型的結(jié)尾需要加f(float f = 3.14f;)
char類型使用單引號‘ ’,且僅有一個字符,字符串使用雙引號“ ”
引用類型
常量:定義變量的時候,如果加上final修飾符,這個變量就變成了常量。常量名通常全部大寫
var關(guān)鍵字:省略變量類型可使用var關(guān)鍵字
(三)整數(shù)運(yùn)算
Java的整數(shù)運(yùn)算遵循四則運(yùn)算規(guī)則,可以使用任意嵌套的小括號。四則運(yùn)算規(guī)則和初等數(shù)學(xué)一致。
溢出
整數(shù)由于存在范圍限制,如果計(jì)算結(jié)果超出了范圍,就會產(chǎn)生溢出,但溢出不會出錯,需特別注意
自增/自減
++n表示先加1再引用n
n++表示先引用n再加1
移位運(yùn)算
左移實(shí)際上就是不斷地乘2,右移實(shí)際上就是不斷地除以2
例如:對整數(shù)7左移一位得到整數(shù)14? ? int n = 7;? ? int a = n << 1;
對整數(shù)-28右移一位得到整數(shù)-14? int n = -28;? ?int a = n >> 1;
值得注意的是
>>>為無符號的右移運(yùn)算,它的特點(diǎn)是不管符號位,因此對一個負(fù)數(shù)進(jìn)行>>>右移,它會變成正數(shù)
對byte和short類型進(jìn)行移位時,會首先轉(zhuǎn)換為int再進(jìn)行位移。
位運(yùn)算
位運(yùn)算就是按位進(jìn)行與、或、非和異或的運(yùn)算。
與運(yùn)算(&):必須兩個數(shù)同時為1,結(jié)果才為1
或運(yùn)算(|):只要任意一個為1,結(jié)果就為1
非運(yùn)算(~):0和1互換
異或運(yùn)算(^):如果兩個數(shù)不同,結(jié)果為1,否則為0
類型自動提升與強(qiáng)制轉(zhuǎn)型
在運(yùn)算過程中,如果參與運(yùn)算的兩個數(shù)類型不一致,那么計(jì)算結(jié)果為較大類型的整型。
也可以將結(jié)果強(qiáng)制轉(zhuǎn)型,即將大范圍的整數(shù)轉(zhuǎn)型為小范圍的整數(shù),例如int i = 12345;? short s = (short) i;但超出范圍的強(qiáng)制轉(zhuǎn)型會得到錯誤的結(jié)果。
(四)浮點(diǎn)數(shù)運(yùn)算
浮點(diǎn)數(shù)只能進(jìn)行加減乘除這些數(shù)值運(yùn)算,不能做位運(yùn)算和移位運(yùn)算。
雖然浮點(diǎn)數(shù)表示的范圍大,但浮點(diǎn)數(shù)無法精確表示,所以浮點(diǎn)數(shù)運(yùn)算通常會產(chǎn)生誤差。因此在比較兩個浮點(diǎn)數(shù)是否相等時,正確的比較方法是判斷兩個浮點(diǎn)數(shù)之差是否小于一個很小的數(shù)。
類型提升
如果參與運(yùn)算的兩個數(shù)其中一個是整型,那么整型可以自動提升到浮點(diǎn)型
溢出
整數(shù)運(yùn)算在除數(shù)為0時會報(bào)錯,而浮點(diǎn)數(shù)運(yùn)算在除數(shù)為0時不會報(bào)錯,但會返回幾個特殊值:
NaN表示Not a Number
Infinity表示無窮大
-Infinity表示負(fù)無窮大
強(qiáng)制轉(zhuǎn)型
可以將浮點(diǎn)數(shù)強(qiáng)制轉(zhuǎn)型為整數(shù),在轉(zhuǎn)型時,浮點(diǎn)數(shù)的小數(shù)部分會被丟掉,如果轉(zhuǎn)型后超過了整數(shù)能表示的最大范圍,將返回整型的最大值。如果要進(jìn)行四舍五入,可以對浮點(diǎn)數(shù)加上0.5再強(qiáng)制轉(zhuǎn)型。
(五)布爾運(yùn)算
對于布爾類型boolean,永遠(yuǎn)只有true和false兩個值。
布爾運(yùn)算包括以下幾類:
比較運(yùn)算符:>, >=,
與運(yùn)算:&&
或運(yùn)算:||
非運(yùn)算:!
短路運(yùn)算
如果一個布爾運(yùn)算的表達(dá)式能提前確定結(jié)果,則后續(xù)的計(jì)算不再執(zhí)行,直接返回結(jié)果。因?yàn)閒alse && x的結(jié)果總是false;對于true運(yùn)算,只要確定第一個值為true,直接返回true
三元運(yùn)算符
b?x:y,首先計(jì)算b,如果b為true,則只計(jì)算x,否則只計(jì)算y。且x和y的類型必須相同,因?yàn)榉祷刂凳莤和y之一。
(六)字符和字符串
字符類型
字符類型char是基本數(shù)據(jù)類型,一個char保存一個Unicode字符,占兩個字節(jié)。
要顯示一個字符的Unicode編碼,只需要將char類型直接賦值給int類型即可。
字符串類型
字符串類型String是引用類型,用雙引號“ ”來表示字符串,一個字符串可存儲0個到任意個字符。
常見的轉(zhuǎn)義字符包括:
\"表示字符"
\'表示字符'
\\表示字符\
\n表示換行符
\r表示回車符
\t表示Tab
\u####表示一個Unicode編碼的字符
字符串連接
可以使用+連接任意字符串和其他類型數(shù)據(jù),如果用+連接字符串和其他類型數(shù)據(jù),會將其他類型數(shù)據(jù)先自動轉(zhuǎn)型為字符串,再連接。
多行字符串
用"""..."""表示多行字符串,例如:
String s = """
aaa
bbbbbbbb
cc""";
不可變特性
字符串不可變,但變量名稱可改變指向。
空值null
空值null表示不存在,即該變量不指向任何對象;
空字符串" "是一個有效的字符串對象,不等于null。
(七)數(shù)組類型
定義一個數(shù)組類型的變量,采用類型[]方式,例如int[ ]。但數(shù)組遍歷初始化必須初始化大小,例如int[ ] ns = new int[5],必須使用new int[5]創(chuàng)建一個可容納5個int元素的數(shù)組。
Java數(shù)組特點(diǎn):
數(shù)組所有元素初始化為默認(rèn)值,整型都是0,浮點(diǎn)型是0.0,布爾型是false
數(shù)組一旦創(chuàng)建后,大小就不可改變。
值得注意的是,
可以通過數(shù)組索引訪問數(shù)組中的某個元素,5個元素的數(shù)組,索引范圍是0~4,如果索引超出范圍運(yùn)行時將報(bào)錯;
可以修改數(shù)組中的某一個元素,使用賦值語句,例如ns[1] = 79;
可以用數(shù)組變量.length獲取數(shù)組大小;
可以在定義數(shù)組時直接指定初始化元素,這樣就不必寫出數(shù)組大小,例如int[ ] ns = new int[ ]{68,79,91,85,62};也可以簡寫成int[ ] ns =?{68,79,91,85,62};
數(shù)組元素也可以不是數(shù)據(jù)類型,而是引用類型,比如字符串?dāng)?shù)組。
總結(jié)
以上是生活随笔為你收集整理的java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 豆豆游黄山[201602]
- 下一篇: 梯度弥散与梯度爆炸