java基礎點總結(1)

2021-09-25 05:03:50 字數 1321 閱讀 6826

最近感覺**寫多了,把基礎都忘了,總結一下,想到什麼寫什麼了

1)基本資料型別:byte、short、int、long、float、double、char、boolean

2)運算符號:

a) 運算子「&」和「&&」都表示與操作,當且僅當運算子兩邊的運算元都為true時,其結果才為true,否則結果為false。當運算子「&」和「&&」的右邊為表示式時,兩者在使用上還有一定的區別。在使用「&」進行運算時,不論左邊為true或者false,右邊的表示式都會進行運算。如果使用「&&」進行運算,當左邊為false時,右邊的表示式不會進行運算,因此「&&」被稱作短路與。

b) 運算子「|」和「||」都表示或操作,當運算子兩邊的運算元任何一邊的值為true時,其結果為true,當兩邊的值都為false時,其結果才為false。同與操作類似,「||」表示短路或,當運算子「||」的左邊為true時,右邊的表示式不會進行運算。

c)運算子「^」表示異或操作,當運算子兩邊的布林值相同時(都為true或都為false),其結果為false。當兩邊布林值不相同時,其結果為true。

3)物件導向三大特性

繼承:一般類只能單繼承,內部類實現多繼承,介面可以多繼承

封裝:訪問許可權控制public > protected > 包 > private 內部類也是一種封裝

多型:編譯時多型,體現在向上轉型和向下轉型,通過引用型別判斷呼叫哪個方法(靜態分派)。

執行時多型,體現在同名函式通過不同引數實現多種方法(動態分派)。

4)string及包裝類

a. string型別是final型別,在堆中分配空間後記憶體位址不可變。

b. 底層是final修飾的char陣列,陣列的記憶體位址同樣不可變。

但實際上可以通過修改char[n] = 'a』來進行修改,不會改變string例項的記憶體值,不過在jdk中,使用者無法直接獲取char,也沒有方法能操作該陣列。所以string型別的不可變實際上也是理論上的不可變。所以我們在分配string物件以後,如果將其 = 「abc」,那也只是改變了引用的指向,實際上沒有改變原來的物件。

c. stringbuffer和stringbuilder底層是可變的char陣列,繼承父類abstractstringbuilder的各種成員和方法,實際上的操作都是由父類方法來完成的。

5)final關鍵字

final修飾基本資料型別保證不可變

final修飾引用保證引用不能指向別的物件,否則會報錯。

final修飾類,類的例項分配空間後位址不可變,子類不能重寫所有父類方法。因此在cglib動態**中,不能為乙個類的final修飾的函式做**,因為cglib要將被**的類設定為父類,然後再生成位元組碼。final修飾方法,子類不能重寫該方法。

Java基礎知識點總結

一 方法的過載 方法的過載與返回值型別無關,只需滿足兩個條件即可 一是方法名相同,二是引數個數或型別不同。二 陣列初始化 動態初始化 在定義陣列時,只指定陣列長度,由系統自動為元素賦值的方式。靜態初始化 在定義陣列時為每個元素賦值。有兩種方式 陣列靜態初始化的方式有兩種 1.型別 陣列名 new 型...

JAVA 部分基礎點

運算子 算術運算子 和 兩個整數相除,結果還是整數。賦值運算子 和 比較運算子 和 邏輯運算子 和 位運算子 和 字串string是擁有 值語義 的引用型別,字串常量實現了 享元模式 equals 會按照內容進行比較,按照位址比較。命名規則 包 其實就是資料夾,用於解決相同類名問題 包名要求全部小寫...

java基礎總結

float 賦值時後邊加f 如 float ff 1.2f 靜態變數 宣告時前邊 static 如static int x 0 資料型別轉換 低精度可以直接轉換成高精度,高精度轉換成低精度 需要顯示型別轉換 int x 50 float y x 顯示轉換 int a int 45.23 foreac...