資料型別
基本資料型別
四種整數型別:byte、short、int、long
兩種浮點數型別:float、double
一種字元型別:char
一種布林型別:boolean
引用資料型別:類,陣列,介面...
取值範圍通過靜態常量獲取,不需要記憶
基本資料型別轉型原:大容量→ 小容量,需要強制轉換符,可能造成精度降低
關鍵字
this
this(): 呼叫構造方法
指向物件本身
synchronized
單詞釋義:同步,同步鎖
適用場景:解決多個執行緒同時訪問同一塊**或者方法,導致同一變數在不同執行緒中資料不一致的問題
作用物件:synchronized修飾方法or**塊,其實鎖定的是呼叫這個方法的例項物件。
如果加在靜態方法上,鎖定的就是class。類鎖和例項鎖不同。class鎖對類所有例項有效。
synchronized(class){}和加在靜態上效果一樣。
作用域:類鎖依賴於calss,例項鎖依賴calss物件。不同執行緒對於同步鎖是互斥的。
例如乙個執行緒擁有了這個物件的同步鎖,則另外乙個執行緒是拿不到的,除非這個執行緒釋放了自己拿到的同步鎖。
當乙個執行緒訪問「某物件」的「synchronized方法」或者「synchronized**塊」時,
其他執行緒訪問該物件」的「synchronized方法」或者「synchronized**塊時將被阻塞。
當乙個執行緒訪問「某物件」的「synchronized方法」或者「synchronized**塊」時,
其他執行緒可以訪問該物件的非同步**塊。
當乙個執行緒訪問「某物件」的「synchronized方法」或者「synchronized**塊」時,
其他執行緒對該物件的其他synchronized方法或者**塊將被阻塞。
如果是類鎖,則所有執行緒訪問該同步方法互斥
switch
條件選擇
可以是作用於yte、short、char、int、enum、string型別,但是long型別不能。
break
跳出當前迴圈
continue
結束本次迴圈進行下一次迴圈
static
static修飾的變數或方法在程式裡是唯一的,存在方法區
不需要例項化就能呼叫
super
子類中的父類物件引用
this
當前類內部對當前類的引用
abstract
只能被繼承的類,而介面可以同時繼承多個介面,所以推薦面向介面程式設計
final
變數:不可更改 方法:不可重寫 類:不可繼承
== 如果是基本資料型別,比較的是值,如果是引用型別,比較的是物件在記憶體中的位址
例如string,因為自動打包成物件,比較的其實是倆物件的物理記憶體位址
有關hashcode()中選用質數31: 1.結果適中 2.位操作方便:31 * i = (i << 5) - i
<<
表示左移,左移時不管正負,低位補0
左移1位*2
>>
表示右移,如果該數為正,則高位補0,若為負數,則高位補1
右移1位/2
負數 以正數的反碼(0,1互換)+1 ,即補碼表示 最高位為0:正 最高位為1:負
public、protected、default、private
修飾符適用範圍《訪問許可權範圍越小,安全性越高》
訪問許可權 類 包 子類 其他包
public ∨ ∨ ∨ ∨ (對任何人都是可用的)
protect ∨ ∨ ∨ × (繼承的類可以訪問以及和private一樣的許可權)
default ∨ ∨ × × (包訪問許可權,即在整個包內均可被訪問)
private ∨ × × × (除型別建立者和型別的內部方法之外的任何人都不能訪問的元素)
ps:例項化物件並不是類本身,我們拿到的只是乙個指向該物件的引用,所以並不能訪問private屬性
只能在這個類本身的**裡被訪問。外部通常通過public方法訪問private屬性
static關鍵字語法總結
1.static修飾成員變數 如果乙個成員變數使用了static關鍵字,那麼這個變數不在屬於物件自己,而是屬於所在類,多個物件共享同乙份資料 2.static修飾成員方法 一旦使用了static修飾成員方法,那麼這就成為了靜態方法,靜態方法不屬於物件,而是屬於類的。如果沒有static關鍵字,那麼必...
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...