Does Java have 'pointers

Recently I’ve been having a little debate with someone over whether Java has pointers or not. In one of the video comments I called ‘this’ keyword a pointer. The debate sparked from there.

From what I understand, a pointer is a loose term used in programming and it’s general purpose is to classify something used to refer to something else. In computer programming this ‘something else (pointee)’ is typically memory. Now, my argument is that Java references are indeed pointers under the hood (not explicit pointers per se). Since references work by an alias to a memory address, referring to an ordered list of memory within the JVM, it complies with all the aspects of what a pointer should do except for direct manipulation of the memory values (which is what Java tries to do on its own and prevent programmers from doing). JVM memory is allocated by the computer memory, hence essentially a program is still operating with computer memory. However, Java ‘references’ are not explicit like that from languages such as C or C++, since you cannot directly read from the memory. In other words, Java pointers have been covered up by the language design.

The opposition insists that Java does not have pointers. Stating that a pointer reads directly from computer memory and not from the Java VM, which fails to comply with what a pointer does. He acknowledges that Java does not have C+±like pointers, but does not accept that Java can have their own so-called ‘pointers’. According to him, a pointer must be able to carry out arithmetic operations and read DIRECTLY from the computer memory and not from JVM memory. He asserts that references and pointers are totally different concepts and reading memory from a JVM is not the same as reading from computer memory (to quote him “these two are totally different concepts and must not be mixed up”). Therefore calling Java references and ‘pointers’ confuses people with the supposed ‘true definition’ of pointer like that in C/C++, and it should stop before more ‘debates’ over this spark again.

As it turns out with most online ‘debates’, the thing got quite heated with him getting very frustrated and repeating his points. I’d like to hear the community’s opinion over this seemingly pointless (see what I did there :D) debate.

[EDIT] I know that I have muddled up a few things in the original post because I wasn’t thinking straight. What I’m trying to say is that Java References embed the concepts of a ‘pointer’ within it, hence Java does have pointers. While programmers are not really able to access this pointer to do arithmetic operations, it still exists and works in the background.