What is the difference between a pointer and a reference variable in Java?

A reference is sort of like a pointer that you can’t do arithmetic on… although it’s more opaque. While the underlying bits may be an address in virtual memory, they don’t have to be. They’re just a way of getting to an object (or representing the null value). So while they’re not exactly the same, if you’re used to thinking of a pointer as “a way of identifying an object or navigating to it” (in some sense) then yes, those thoughts apply to references too.

Java doesn’t have pointers as such (unlike, say, C# which has references and pointers – the latter being used in “unsafe” code).

Leave a Comment