普通に言語仕様読むのが一番早い。

英語読めるなら本家
https://docs.oracle.com/javase/specs/
古いのなら日本語版もある
http://www.y-adagio.com/public/standards/tr_javalang/