同乙個包中的其他類
不同包中的其他類
子類自身
private
nono
noyes
protected
yesno
yesyes
public
yesyes
yesyes
無修飾(default)
yesno
noyes
static方法中不能使用this,super這樣的關鍵字,因為static優先於物件被載入到記憶體之中,static執行時物件可能還未被例項化。
內部類包含static修飾的屬性或方法時,內部類必須也被static修飾,其實理解起來也很簡答,應為static會優先被載入,如果內部類不被static修飾,那麼內部變數是不會被提前載入的,這時static關鍵字修飾就不起作用了。
final修飾的類不可被繼承
final修飾的函式無法被複寫
final修飾的變數只能賦值一次
abstract修飾的類無法被例項化,只能夠通過子類的繼承並實現內部所有的抽象函式才能被例項化。
abstract修飾的函式只需要申明方法名,引數,不需要寫函式體。
抽象類中同樣可以定義非抽象的方法,同時抽象類也有建構函式,這個建構函式提供給子類例項化時使用。
抽象類中也可以沒有抽象的方法。
abstract不可以和static,private,final公用,簡單理解一下,static修飾說明優先載入,而abstract未被實現,所以無法被優先載入。final修飾表名為最終狀態無法修改,而abstract修飾的需要子類去實現,必須可以修改。private表示私有化,自由自身能夠訪問到,而abstract需要子類訪問並實現函式體。
public
class test
}
物件,則是對一些函式和屬性進行了封裝
乙個類在實現了介面中所有的方法時才能被例項化,否則這個類還是乙個抽象類,無法被例項化,實現某個介面使用關鍵字implements
乙個類可以實現多個介面,而且介面之間也可以相互繼承,並且介面可以多繼承,乙個簡單的例子:
public
class
test
inte***ce
inte***ce2
inte***ce
inte***ce3
extends
inte***ce1, inte***ce2
class
myclass
implements
inte***ce3
@override
public
void function2()
}}
成員函式:當子類中出現與父類之中相同的方法時,子類的方法會將父類中的方法覆蓋。在外部呼叫時,會呼叫子類的方法。
建構函式:子類的建構函式中會預設呼叫super()意味著在構造子類之前需要先對其父類進行構造。
class
father
}
class
sonextends
father
}
public
static
void
main(string args)
private
void main() catch (ioexception e)
}private
void
function
()throws
ioexception
public
static
void
main(string args)
} catch (ioexception e)
}
public
static
void
main(string args)
}) ;
}.start();
}
public
class
test
}class
example catch (interruptedexception e)
system.out.println("hello: " + i);}}
}class
thread1
extends
thread
@override
public
void run()
}
public
class test
public
static test getinstance() }}
return instance;
}}
作用
charat
獲取指定位置的字元
indexof
順序獲取字元或字串的位置,沒有返回-1
lastindexof
倒序獲取字元或字串的位置,沒有返回-1
substring
獲取指定位置的子串
contain
判斷字串是否包含指定字串
startwith
判斷字串是否以指定字串開頭
endwith
判斷字串是否以指定字串結尾
equalsignorecase
判斷字串是否相等,忽略大小寫
tolowercase
所有字母轉換為小寫
touppercase
所有字母轉換為大寫
replace
替換trim
去除字串首位空格
collection(單列)
map(雙列)
linkedlist:底層鍊錶實現,增刪熟讀很快,執行緒不同步
vector:底層陣列實現,查詢增刪速度都很慢,執行緒同步
由於在list集合中,判斷元素是否存在或是刪除元素都是通過元素的equals方法,所以在日常的開發過程中,通常需要自己重寫集合元素物件的equals方法,這樣能夠提高list集合的操作效率。
map介面與collection有很大的區別,map一次儲存乙個鍵值對,並且需要保證map中所有的健是唯一的。
迭代map的方法:
通過map.entryset()方法獲取到鍵值對set,直接遍歷。
看到array說明底層資料結構是陣列,證明查詢速度快
看到linked說明底層資料結構是鍊錶,增加刪除的速度開
看到hash說明底層資料結構是hash表,需要盡量保證內部元素的hash值唯一,並且需要複寫元素的hascode方法和equals方法。
看到tree就說明底層的資料結構是二叉樹,需要相當排序,內部元素需要comparable
泛型只是針對編譯時期,在執行時期並不存在泛型的概念,泛型只是為了將一些型別強制轉換的異常轉化為編譯錯誤。使用泛型時必須保證等式兩邊宣告的泛型是一樣的。
泛型的上限與下限:
? super e 泛型指接受e和e的所有父類
位元組流:位元組流可以處理幾乎計算機當中的所有資料(凡是以inputstream和outputstream結尾的都為位元組流)
字元流:字元流的出現是應為,各個國家的語言不通,字元也不通,所以當將各總編碼表和流封裝在一起,為了方便字元的操作,所以設計到字元操作的時候優先考慮字元流(凡是以reader和writer結尾的都是字元流)
如果需要處理純文字物件 使用reader和writer,否者使用inputstream和outputstream
明確使用那個具體的流,通過明確具體操作的資料裝置:(磁碟)file,(記憶體)chararray。。。
是否需要利用快取提高效率,如果需要可以使用buffer對流進再一次的封裝。
java基礎總結
float 賦值時後邊加f 如 float ff 1.2f 靜態變數 宣告時前邊 static 如static int x 0 資料型別轉換 低精度可以直接轉換成高精度,高精度轉換成低精度 需要顯示型別轉換 int x 50 float y x 顯示轉換 int a int 45.23 foreac...
Java基礎總結
1.string的理解 string s hello world 宣告的內容 乙個指向物件的引用,名為 s 可以指向型別為string的任何物件,目前指向 hello world 這個string型別的物件 string string s 明了另外乙個只能指向string物件的引用,名為string...
Java基礎總結
jdk 1.8 1.hashtable hashtable hash new hashtable 1.key value均不能為空,否則nullpointerexception。2.put相同的key,value值替換,返回原value。3.方法被synchronized修飾,保證執行緒安全,影響效...