It must have a simple answer, but it seems dereferencing is used in more than one meaning. And I doubt what is correct? Here I listed what I found as definition of dereferencing:
- set a reference explicitly to
null(JAVA Object Lifecycle, de-referencing and garbage collection) - reassignment (OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808)
- accessing a member of object by "." operator (
- Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805
Since calling a static method does not require dereferencing the reference variable [...]
- Referencing and Dereferencing an object in java
- https://stackoverflow.com/a/36236082/1043882)
- Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805
Also I searched in The Java® Language Specification Java SE 11 Edition and find that it says:
For each execution, the behavior of reads is influenced by two additional partial orders, the dereference chain
dereferences()and the memory chainmc()[...]
So I think third bullet is true. Is that true?