將執行緒的啟動方法start(),寫成了run();
ps:管程(monitor)鎖有待進一步理解。
執行緒中鎖的問題。理解不深刻。
反射會造成訪問其它包中的非公共型別的成員。引起執行期異常。
遮蔽:thread.sleep()方法遮蔽了自定的方法。
反射:怎樣例項化非靜態內部類以及靜態內部類。
system.out.write():不會自己主動重新整理。須要使用system.out.flush()來重新整理。
process使用的問題,沒看懂。
單例模式與序列化之間的關係。public class dog extends exception
public string tostring()
private object readresolve()
}
exception實現了serializable,必須有乙個readresolve方法,用以返回它的唯一的例項。
否則能夠用反序列化,獲取多個物件。
thread.interrupted()方法。清除當前執行緒的中斷狀態。
thread.isinterrupted()方法,僅僅是查詢中斷狀態。
在類的初始化期間等待某個後台執行緒非常可能會造成死鎖。public class lazy
});t.start();
try catch (interruptedexception e)
} public static void main(string args)
}
1. 主線程呼叫lazy.main方法時,檢查lazy類是否已經被初始化,此時沒有,所以主線程會記錄下當前正在進行初始化。並對這個類進行初始化。
2. 主線程將initialized的值設為false,建立後台執行緒。該改後台執行緒將initialized設為true,此時主線程會等待後台執行緒執行完成。
3. 可是當後台執行緒呼叫run方法。將lazy.initialized設為true之前,也會檢查lazy類是否已經被初始化。
這個類正在被主線程進行初始化。後台執行緒會等待,直到初始化完畢。
4. 主線程也在等待後台執行緒結束。造成死鎖。
Java解惑三 迴圈之謎
byte是有符號的,範圍是 128 127。而0x90是int型別。比較的時候,不相等。如果想讓其相等,需要進行型別轉換 byte 0xff 或者 byte 0x99。自增運算子對迴圈的影響。j j 先賦值。integer.max value加一之後會變成integer.min value,這對迴圈...
《java解惑》筆記八
要實現i i為true public static void main string args 控制台輸出 true 7ff8000000000000 7ff8000000000000double.nan表示乙個非數字 not a number 在記憶體儲存為0x7ff8000000000000,維...
java解惑之表示式之謎 謎題8
謎題8 dos equis 這個謎題將測試你對條件操作符 冒號問號操作符 的掌握程式,看下面的程式會列印出什麼結果?public class dosequis 只要對條件操作符了解的都知道第一條列印語句應該列印的是字元x,第二條列印語句也應該列印出字元x,即列印結果應當是xx。而執行後,實際列印出來...