2013年12月10日
---------------------------
冒泡排序














2013年11月26日
---------------------------
1、String的split方法
平常總是這樣用,String str = "a,b,c,d,e"; String[] arr = str.split(",");
其實還可以這樣用,String lan = "Java;C#?C++:C"; String si = lan.split("[;?:]"); 返回的是字符串數組{"Java", "C#", "C++", "C"}
2013年11月21日
---------------------------
1、Java對象池知多少?
示例:String s1 = "abc"; String s2 = "abc"; s1 == s2 返回ture還是false?只要不是new出來的都先從對象池中讀取,因此結果為true,兩個變量指向的是同一塊內存空間地址。
Java除了String類使用了對象池以外,還有5個基本類型的封裝類:Byte、Short、Integer、Long和Character,例如:Integer inA = 20; Integer inB = 20; 那么 inA == inB 的結果為true,其他類與此相同,不做示例。
特別注意:
(1)浮點型的兩個封裝類Float和Double并沒有參與對象池;
(2)整形封裝類(Byte、Short、Integer和Long)只有數值小于或等于127時才使用對象池,例如:Integer x = 128; Integer y = 128; x == y的結果為false。
2、Java變量命名規范
A. String #name = "Joe";
B. int $age = 30;
C. Double _height = 174.4;
D. float ~temp = 37.6;
以上A到D,哪個無法通過編譯?答案是A和D,因為Java變量名只允許字母、下劃線(_)、美元符($)開頭,那么 int _ = 30; String $$ = "I DO";可以嗎?答案是完全可以,但很少有人這樣定義變量名,雖然沒有違法命名規范,但最后我估計程序員自己都會被自己繞暈。
3、0和1能標識布爾值嗎?
int flag = 0;
if (flag) {
System.out.print("error");
}
error會打印嗎?不會,因為根本就不會編譯通過,編譯器會提示flag是int類型而不是boolean類型,如果你會有這種想法可能之前學過C,C總的0和1可以標識布爾的。
4、靜態導入
例:
ClassA.java





ClassB.java









輸出:2147483647。不僅僅可以靜態導入其他類的靜態屬性還可以導入靜態方法,這些特性在實際開發中很少見。