Java doesn't allow programmers to directly access for safety reasons. Basically with pointers you could access memory directly and alter it's state. That is like tampering with the something that a programmer shouldn't do. For instance, some of the viruses were developed to use pointers to tamper with user's memory, refer (wiki link), under heading Function pointer
.
Java is developed to be a better, secured programming language. That is why. And there are some other reasons as well, but this is the important one.