| 維度 | Thread.sleep() | Object.wait() |
|---|---|---|
| 所屬類 | Thread | Object |
| 鎖行為 | 不釋放 對象鎖 | 釋放 對象鎖,進入等待池 |
| 喚醒方式 | 時間到自動恢復 | 需 notify()/notifyAll() 喚醒 |
| 調用前提 | 無 | 必須在 synchronized 塊/方法中 |
線程進入就緒狀態,而非直接運行,需搶佔 CPU 時間片。
線程讀取堆中對象 → 複製到線程本地內存(工作內存) → 修改副本 → 某時刻(退出前)寫回堆。
這是 volatile / synchronized 解決可見性的根本原因。
System.gc() 僅建議。null 後,對象可能被回收,時間不可知。Entry 內部類封裝 key-value,僅根據 key 計算 hash 決定槽位,value 不參與。java.exe:JVM 啟動器。javadoc.exe:生成 API 文檔。jdb.exe:命令行調試器。javaprof.exe:性能剖析工具。JAR:歸檔格式;EAR:企業級 JAR(含多模組)。appletviewer:運行 Applet 的輕量容器(已淘汰)。