java零基礎自學黑馬程序員——筆記(p1-p118)
視頻地址:https://www.bilibili.com/video/BV1Cv411372m?p=119&t=0.0
前言:我本科學過一遍Java,所以筆記主要記得是我遺忘的部分?!咀粤艄P記】
JRE(Java Runtime Environment):Java程序的運行時環(huán)境
JDK(Java Development Kit):Java程序開發(fā)工具包
其中的開發(fā)工具:編譯工具(javac.exe)和運行工具(java.exe)。
我們想要開發(fā)一個全新的Java程序,那么必須安裝JDK。

類型轉換:自動類型轉換
類型范圍小的變量,可以直接賦值給類型范圍大的變量。


在表達式中,byte、short、 char是直接轉換成int類型參與運算的。

強制類型轉換:

運算符:“+”做連接符



IDEA工程、模塊常用操作
導入模塊:
注意:不要直接導入,且導入不是整個文件下,要找到“帶黑點的”,一般為“.Iml”的。
1.? 點擊當前工程里的模塊,再file→new→module→next
2.? 打開需導入的代碼文件包,找到src下的com,ctrl+c
3.? 回到IDEA,點擊新module下的src,ctrl+v,點ok
?
刪除模塊:
1.? 右擊→remove module (沒有delete)
只是在界面抹掉,磁盤里還是有這個模塊(工程里還是有這個代碼)
2.? 法一:應該直接在工程里刪除(直接在工程的文件夾里刪除該模塊的文件夾)
法二:


3.? 在.idea配置中的路徑刪除,(不是直接刪除,而是用“記事本”打開,修改并保存)


4. 重啟IDEA
?
打開工程:File→open→找“帶黑點的”
關閉工程:可以直接×掉IDEA界面,或File→close project
?

字符數(shù)據(jù)在計算機中是怎么存的?
??? 字符存的是ASCII碼表中對應的數(shù)字的二進制形式。
??? 字符’A’對應的數(shù)字是65
??? 字符’a’對應的數(shù)字是97
????字符’0’對應的數(shù)字是48
?
圖片和音視頻等文件的數(shù)據(jù)是怎么存儲的???答:也是采用二進制進行存儲的。
進制轉換:
十轉二:除二取余法?????????????
二轉十:1*2^0 + 1*2^1 +……???
二轉八、二轉十六:分3、4位一組?

八進制:0B、0b開頭;十六進制:0X、0x開頭

基本要求:由數(shù)字、字母、下劃線(_)和美元符($)等組成
強制要求:不能以數(shù)字開頭、不能是關鍵字、區(qū)分大小寫
變量名稱:首字母小寫,如:int studyNumber = 59。
類名稱:首字母大寫,如:Helloworld.java。
?
&:邏輯與:必須都是true,結果才是true
|:邏輯或:只要有一個為true、結果就是true
!:邏輯非:你真我假、你假我真。
^:邏輯異或:兩個條件不同,結果是true。

break:跳出并結束當前所在循環(huán)的執(zhí)行。
continue:用于跳出當前循環(huán)的當次執(zhí)行,進入下一次循環(huán)。

數(shù)組




對象

字符串string







集合
集合的大小不固定,啟動后可以動態(tài)變化,類型也可以選擇不固定。
集合非常適合做元素個數(shù)不確定,且要進行增刪操作的業(yè)務場景。
集合的提供了許多豐富、好用的功能,而數(shù)組的功能很單一。
?
泛型概述
ArrayList<E>:其實就是一個泛型類,可以在編譯階段約束集合對象只能操作某種數(shù)據(jù)類型。
ArrayList<String> :此集合只能操作字符串類型的元素。
ArrayList<Integer>:此集合只能操作整數(shù)類型的元素。
注意:集合中只能存儲引用類型,不支持基本數(shù)據(jù)類型。
靜態(tài)成員static:
static靜態(tài),可以修飾成員變量和成員方法。
static修飾成員變量表示該成員變量只在內(nèi)存中只存儲一份,可以被共享訪問、修改。
?
static訪問注意事項:
靜態(tài)方法只能訪問靜態(tài)的成員,不可以直接訪問實例成員。
實例方法可以訪問靜態(tài)的成員,也可以訪問實例成員。
靜態(tài)方法中是不可以出現(xiàn)this關鍵字的。


懶漢單例的實現(xiàn)步驟:
????定義一個類,把構造器私有。
????定義一個靜態(tài)變量存儲一個對象。
????提供一個返回單例對象的方法

繼承:


在子類方法中訪問成員(成員變量、成員方法)滿足︰
就近原則,子類沒有找子類、子類沒有找父類、父類沒有就報錯!
訪問子類用this.,訪問父類用super.


Final

枚舉

抽象類:
????抽象方法只有方法簽名,不能聲明方法體。
????一個類中如果定義了抽象方法,這個類必須聲明成抽象類,否則報錯。
?
????抽象類可以理解成不完整的設計圖,一般作為父類,讓子類來繼承。
????當父類知道子類一定要完成某些行為,但是每個子類該行為的實現(xiàn)又不同,于是該父類就把該行為定義成抽象方法的形式,具體實現(xiàn)交給子類去完成。此時這個類就可以聲明成抽象類。

類有的成員(成員變量、方法、構造器)抽象類都具備
抽象類中不一定有抽象方法,有抽象方法的類一定是抽象類
一個類繼承了抽象類必須重寫完抽象類的全部抽象方法,否則這個類也必須定義成抽象類。
不能用abstract修飾變量、代碼塊、構造器。
?
final和abstract的關系:【互斥】
abstract定義的抽象類作為模板讓子類繼承,final定義的類不能被繼承。
抽象方法定義通用功能讓子類重寫,final定義的方法子類不能重寫。

接口






多態(tài)



內(nèi)部類

靜態(tài)內(nèi)部類

成員內(nèi)部類

局部內(nèi)部類

匿名內(nèi)部類(重點)

Object
????toString默認打印當前對象的地址,所以要讓子類“重寫”
????equals比較兩個對象的地址是否相同,方便子類重寫


StringBuilder



