Open5
Java勉強メモ

Collection<Object>
全てのCollectionのsuper typeではない
Collection<?>
全てのCollectionのsuper type (とみなせるというくらいかな)
取得した値は?(unknown)だがObjectは全ての型のSuper typeなので、Objectとして扱うことはできる
Object
全ての型のsuper type
?
unknown 全ての型のsuper typeではない

Wildcard capture
よく分かっていないがすべてのTが?に対応しているなら以下のような処理を認めるということ?
Set<?> unknownSet = new HashSet<String>();
class Collections {
//...
<T> public static Set<T> unmodifiableSet(Set<T> set) {
//...
}
}
//...
Set<?> s = Collections.unmodifiableSet(unknownSet); // This works! Why?

Java言語の並行処理
synchronizedインスタンスメソッド
メソッド単位の排他に見えてオブジェクト単位の排他
thisをロックしている

Reflection
本質的にはプログラミング環境が型やメソッドをオブジェクトで表現できるという考え

JavaのThread
Syncronized
オブジェクトをロックする機能
Design concepts
- Safety
- Liveness
- Performance
- Reusability