I've been using Oracle's documentation and tutorials to learn the language. Strangely, their tutorials only cover Java 8, while their current Java is 17. (!) This means that what little there is in their tutorials about the Java language are just a bit out of date; in fact, each page of their tutorial admits just that:
"The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases."
This means that in quite a few places the tutorials aren't very helpful; for example, the Java 17 documentation shows that Java now has switch/case logic which accepts expressions as well as constants in its case parts (what a good idea); but it also shows examples of "switch statements" and "switch expressions" as well. Their tutorial only shows what Java 17 calls a switch statement; somewhere between Java 8 and Java 17 the switch expression crept in.
The tutorials have a section called "Language Basics" that describes variables, operators, expressions, statements, blocks and control flow statements for Java 8, but I can't find anything int the Java 17 documentation because it seems to document everything except the above parts of the java language.
Also, both the tutorials and the documentation freely fling about terms whose meanings are not always obvious, but there is no glossary of these terms.
This seems to me a very strange way to document a computer language?