@functionalinte***ce
public
inte***ce
runnable
public
abstract
void
run(
);
連start()都沒有,run()建立的執行緒,要怎麼去啟動這個執行緒呢?
public
class
myrunnabletest
}class
myrunnable
implements
runnable
@override
public
void
run()}
}
public
class
myrunnabletest}-
class
myrunnable
implements
runnable
@override
public
void
run()}
}
正確使用runnable 建立執行緒的步驟:
1、新建乙個實現runnable 的類myrunnable ,重寫run()裡面的操作。
2、例項化乙個myrunnable 類 myrunnable 。
3、例項化乙個thread物件,把myrunnable 傳參給thread。
4、啟動thread。
這時應該知道抽離這個介面的作用了吧。
JDK1 8 Optional 原始碼剖析
容器物件,可能包含也可能不包含非null值。如果存在值,將返回並且將返回該值。提供依賴於是否存在包含值的其他方法,例如 如果值不存在則返回預設值 和 如果值存在則執行 塊 返回具有指定的當前非空值的。public static optionalof t value 私有的建構函式 private o...
原始碼剖析 Hashtable 原始碼剖析
hashtable同樣是基於雜湊表實現的,同樣每個元素都是key value對,其內部也是通過單鏈表解決衝突問題,容量不足 超過了閾值 時,同樣會自動增長。hashtable也是jdk1.0引入的類,是執行緒安全的,能用於多執行緒環境中。hashtable同樣實現了serializable介面,它支...
JDK1 8 ArrayList原始碼剖析(二)
jdk1.8中新增的特性 1.void foreach consumer super e action jdk8中新特性,對list中每個元素分別進行操作,如 arraylistal new arraylist al.add 0 al.add 1 al.add 2 al.add 3 al.forea...