Java基礎(chǔ)

基礎(chǔ)

1.變量

理解為對存儲數(shù)據(jù)的操作,需要指明類型和變量名凌简,使用前需要初始化

2.基本類型

分為:整數(shù)(byte,short恃逻,int雏搂,long)

浮點(float,double)

Char

Boolean

2.1Int:正負21億左右寇损;相除是舍棄尾數(shù)凸郑;結(jié)果過大會溢出,正變負矛市,負變正芙沥;0X開頭是16進制,0開頭是8進制浊吏。

2.2Long:大小-2e(64-1)~~2e(63-1)

-1而昨;直接賦值需要在值后面加上l;計算大數(shù)據(jù)在后

2.3Double和float:默認小數(shù)為double找田;double是float的兩倍歌憨,所以叫double;十進制對于1/10表示會有誤差墩衙,所以需要精確計算需要BigDecimal务嫡;

2.4Char:實際為一個非負正數(shù);

2.5Boolean:只有true和false漆改;

2.6基本類型間的轉(zhuǎn)換:

整數(shù)直接量可以直接復(fù)制給byte, short,

char ,他們參與運算直接轉(zhuǎn)換為int類型心铃。

基本類型的轉(zhuǎn)換: 隱式(從小到大)強制(從大到小)

隱式的:多種類型之間運算時,自動從小的類型轉(zhuǎn)換為大的類型;

byte,char挫剑,short運算時都先轉(zhuǎn)換為int類型再運算

強制轉(zhuǎn)換:(需要轉(zhuǎn)換的類型)變量 有可能精度損失或則溢出

3.運算符號

3.1運算符號:%(取模)去扣,++,--(放在前面是先自增樊破,放在后面是使用后在自增)

3.2關(guān)系符:<,

>, >=, <=, ==, != , &&(第一個為false就不再計算), !, ||(第一個為true就不再計算)厅篓。

3.3賦值運算符:” =”將右邊的值賦值給左邊秀存。在前面加上其他運算符則為擴展運算符如:+=,-=等羽氮,其運算效率比較高或链;

3.4+:除了運算可以實現(xiàn)字符串連接;快速賦值為字符串档押,其他類型連接:+“”澳盐;

3.5條件(三木)運算:boolean表達式?表達式1:表達式2。計算boolean表達式令宿,為true則結(jié)果是表達式1叼耙,是false則結(jié)果是表達式2條件運算符可以嵌套使用String r =

a > 0 ? "正數(shù)" : (a == 0 ?

"0":"負數(shù)");

注意:浮點計算不能用double二進制無法準(zhǔn)確的表示1/10

計算后的類型轉(zhuǎn)換:byte b2 =

(byte)(b1+b2);不能寫成:byte b2 =(byte)b1+b2;

4.條件選擇

4.1任何復(fù)雜的邏輯順序都可以通過順序,分支粒没,循環(huán)三種基本的程序結(jié)構(gòu)實現(xiàn)

4.2分支

4.2.1If筛婉;

4.2.2if

else;

4.2.3switch

1.7之前是只能整型癞松,之后是可以string和char

swith() {

case整型常量值1: 語句1爽撒; 不加break會穿透(根據(jù)考慮使用);

……

default:語句n响蓉;

}

switch的本意是符合就執(zhí)行所有后面語句代碼硕勿;

4.3循環(huán)

4.3.1While ( Boolean ){語句}和do {語句}while ( Boolean ) ;在于是否必須要執(zhí)行執(zhí)行語句;

4.3.2For: for(循環(huán)變量初始狀態(tài)1 ;循環(huán)條件2 ;循環(huán)條件的改變3 ){}

計算表達式1的值枫甲,通常為循環(huán)變量賦初值源武;

計算表達式2(表達式2為邏輯表達式)的值,即判斷循環(huán)條件是否為真想幻,若值為真則執(zhí)行循環(huán)體一次(語句塊)粱栖,否則跳出循環(huán);

執(zhí)行循環(huán)體脏毯;

計算表達式3的值查排,此處通常寫更新循環(huán)變量的賦值表達式;如此循環(huán)往復(fù)抄沮,直到表達式2的值為false跋核。

for語句通常用于解決固定次數(shù)循環(huán)的處理,它的三個參數(shù)都可以設(shè)置為空叛买,但是“砂代;”號不能少,表達式1率挣,和表達式3都可以設(shè)置多個語句用“刻伊,”分開。直到……這樣的語句是,優(yōu)先選擇do-while語句來實現(xiàn)捶箱;

4.3.3break和continue

1.break用于循環(huán)和switch表示跳出循環(huán)執(zhí)行后面的語句智什。break只能跳出一層循環(huán)。

2.continue只能用于循環(huán)表示跳出此次循環(huán)體中剩余的語句執(zhí)行下次循環(huán)丁屎。

5.集合

5.1數(shù)組:為相同元素的集合荠锭,按線性順序排列,每一個元素都有唯一的前驅(qū)元素晨川;除最后一個元素外证九,每一個元素都有唯一的后繼元素(“一個跟一個”),可以通過元素所在位置的順序號(下標(biāo))做標(biāo)識訪問每一個元素(下標(biāo)從0開始共虑,最大到元素個數(shù)-1)愧怜,數(shù)組創(chuàng)建后長度不可改變。

5.1.1申明

數(shù)組類型[]數(shù)組名= new數(shù)據(jù)類型[大小]妈拌;

確切數(shù)據(jù)類型:用于分配空間拥坛;數(shù)組名:用于后面引用;new用于創(chuàng)建數(shù)組尘分,需要指定大小猜惋,數(shù)組大小指定后不可變;

5.1.2初始化:

基本類型在數(shù)組創(chuàng)建后會被賦予初始值音诫,0惨奕;0.0雪位;false等竭钝;

手動賦值:int [ ] arr = { 10,23,30,-10,21 } ;這種寫法只適合與聲明的時候,聲明之后再這樣賦值是不可以的雹洗。int[] arr;arr = new int[]{10,23,30,-10,21 };聲明之后的寫法香罐;

注意:new之后的[]中不可以寫長度,而元素的個數(shù)就是數(shù)組的長度时肿。

5.1.3數(shù)組的復(fù)制

1. System.arraycopy(Object src,int srcPso, Object src, int srcPso,int length)

參數(shù)的意義:源數(shù)組庇茫,起始位置,目標(biāo)數(shù)組螃成,目標(biāo)數(shù)組中的起始位置旦签,長度

2. Arrays.copyOf(數(shù)組的引用,int newLength)返回值為一個數(shù)組寸宏,多出的長度用默認值補齊宁炫。

5.1.4數(shù)組的排序:Arrays.sort();

5.1.5數(shù)組的排序:Arrays.toString()可以打印數(shù)組氮凝;

6.類

6.1引用

6.1.1除了8種基本類型的變量外其他都是引用類型的變量羔巢;

6.1.2引用:使用new的時候創(chuàng)建,Object obj = new Object();創(chuàng)建引用obj,new后面的是調(diào)用的類的構(gòu)造方法竿秆;還可以通過賦值的方式創(chuàng)建:Object obj = object启摄;此時創(chuàng)建引用obj,但是他和object指向同一個對象幽钢;

6.2方法:方法名和參數(shù)列表一個類中不可能有兩個方法簽名相同的方法

6.2.1構(gòu)造方法與類同名歉备,沒有返回值類型有訪問修飾符;

構(gòu)造方法常常給成員變量初始化

造方法在創(chuàng)建對象時被自動調(diào)用的

JAVA語法規(guī)定搅吁,任何一個類都必須含有構(gòu)造方法威创,假如源程序中沒有定義,則編譯器在編譯時將為其添加一個無參的空構(gòu)造方法谎懦,當(dāng)類定義了構(gòu)造方法后肚豺,Java編譯器將不再添加默認的構(gòu)造方法

構(gòu)造方法可以重載

6.2.2方法重載:方法名相同,但是方法參數(shù)不一樣界拦;

重寫是子類對父類的允許訪問的方法的實現(xiàn)過程進行重新編寫,返回值和形參都不能改變吸申。即外殼不變,核心重寫享甸!

重寫的好處在于子類可以根據(jù)需要截碴,定義特定于自己的行為。也就是說子類能夠根據(jù)需要實現(xiàn)父類的方法蛉威。

重寫方法不能拋出新的檢查異橙盏ぃ或者比被重寫方法申明更加寬泛的異常。例如:父類的一個方法申明了一個檢查異常IOException蚯嫌,但是在重寫這個方法的時候不能拋出Exception異常哲虾,因為Exception是IOException的父類,只能拋出IOException的子類異常择示。

參數(shù)列表必須完全與被重寫方法的相同束凑;

返回類型必須完全與被重寫方法的返回類型相同;

訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低栅盲。例如:如果父類的一個方法被聲明為public汪诉,那么在子類中重寫該方法就不能聲明為protected。

父類的成員方法只能被它的子類重寫谈秫。

聲明為final的方法不能被重寫扒寄。

聲明為static的方法不能被重寫,但是能夠被再次聲明拟烫。

子類和父類在同一個包中该编,那么子類可以重寫父類所有方法,除了聲明為private和final的方法构灸。

子類和父類不在同一個包中上渴,那么子類只能夠重寫父類的聲明為public和protected的非final方法岸梨。

重寫的方法能夠拋出任何非強制異常,無論被重寫的方法是否拋出異常稠氮。但是曹阔,重寫的方法不能拋出新的強制性異常,或者比被重寫方法聲明的更廣泛的強制性異常隔披,反之則可以赃份。

構(gòu)造方法不能被重寫。

如果不能繼承一個方法奢米,則不能重寫這個方法

Super關(guān)鍵字的使用

當(dāng)需要在子類中調(diào)用父類的被重寫方法時抓韩,要使用super關(guān)鍵字。

6.2.3方法重寫

重載(overloading)是在一個類里面鬓长,方法名字相同谒拴,而參數(shù)不同。返回類型可以相同也可以不同涉波。

每個重載的方法(或者構(gòu)造函數(shù))都必須有一個獨一無二的參數(shù)類型列表英上。

只能重載構(gòu)造函數(shù)

重載規(guī)則

被重載的方法必須改變參數(shù)列表(參數(shù)個數(shù)或類型或順序不一樣)涝滴;

被重載的方法可以改變返回類型通铲;

被重載的方法可以改變訪問修飾符钧惧;

被重載的方法可以聲明新的或更廣的檢查異常祠墅;

方法能夠在同一個類中或者在一個子類中被重載。

無法以返回值類型作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)榨惠。

6.2.4重寫與重載之間的區(qū)別

區(qū)別點重載方法重寫方法

參數(shù)列表必須修改一定不能修改

返回類型可以修改一定不能修改

異扯勐可以修改可以減少或刪除距淫,一定不能拋出新的或者更廣的異常

訪問可以修改一定不能做更嚴格的限制(可以降低限制)

6.2.5總結(jié)

方法的重寫(Overriding)和重載(Overloading)是java多態(tài)性的不同表現(xiàn)笨觅,重寫是父類與子類之間多態(tài)性的一種表現(xiàn)拦耐,重載是一類中多態(tài)性的一種表現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屋摇,一起剝皮案震驚了整個濱河市揩魂,隨后出現(xiàn)的幾起案子幽邓,更是在濱河造成了極大的恐慌炮温,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牵舵,死亡現(xiàn)場離奇詭異柒啤,居然都是意外死亡,警方通過查閱死者的電腦和手機畸颅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門担巩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人没炒,你說我怎么就攤上這事涛癌。” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵拳话,是天一觀的道長先匪。 經(jīng)常有香客問我,道長弃衍,這世上最難降的妖魔是什么呀非? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮镜盯,結(jié)果婚禮上岸裙,老公的妹妹穿的比我還像新娘。我一直安慰自己速缆,他們只是感情好降允,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艺糜,像睡著了一般拟糕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倦踢,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天送滞,我揣著相機與錄音,去河邊找鬼辱挥。 笑死犁嗅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晤碘。 我是一名探鬼主播褂微,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼园爷!你這毒婦竟也來了宠蚂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤童社,失蹤者是張志新(化名)和其女友劉穎求厕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扰楼,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡呀癣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弦赖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片项栏。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蹬竖,靈堂內(nèi)的尸體忽然破棺而出沼沈,到底是詐尸還是另有隱情流酬,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布列另,位于F島的核電站康吵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏访递。R本人自食惡果不足惜晦嵌,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拷姿。 院中可真熱鬧惭载,春花似錦、人聲如沸响巢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踪古。三九已至含长,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伏穆,已是汗流浹背拘泞。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枕扫,地道東北人陪腌。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像烟瞧,于是被迫代替她去往敵國和親诗鸭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容