In a literary sense, there is probably not a Java equivalent to
The C Programming Language because it was written at a time when the primary way of telling people about new programming languages was dead tree books and the primary way of distributing new programming languages was magnetic tape. By the time Java was created, network connections and CDROM's were standard. Also Java was a commercial product backed by for profit training and workshops and support.
Anyway, the formal introduction to Java is the specification produced via Java's consensus process. It's all there. Everything. If it isn't there, it's a bug.
https://docs.oracle.com/javase/specs/jls/se8/html/index.html
Good luck.