В джаве и вообще везде внутри ЕСТЬ УКАЗАТЕЛИ. Но они замаскированы под другие элементы языка. Смысл в том, что такими "указателями" нельзя явно манипулировать (и где наговнокодить). И не надо на ушах стоять от Java и .NET с "управляемым кодом". Все концепции там применённые известны лет 30 уже как, когда ни первого, ни второго в проекте ещё не было. Просто не было яркой коммерческой обёртки.