Прямых эквивалентов в Java не существует:
C malloc
создает нетипизированный узел кучи и возвращает указатель на него, который позволяет вам получить доступ к памяти, как вы хотите.
Java не имеет концепции нетипизированного объекта и не позволяет напрямую обращаться к памяти.Самое близкое, что вы можете получить в Java к malloc
, будет new byte[size]
, но это возвращает вам строго типизированный объект, который вы можете использовать ТОЛЬКО в качестве байтового массива.
C free
освобождает узел кучи,
Java не позволяет вам явно освобождать объекты.Удаление объектов в Java полностью находится в руках сборщика мусора.В некоторых случаях вы можете влиять на поведение GC;например, присваивая null
ссылочной переменной и вызывая System.gc()
.Однако это не заставляет объект быть освобожденным ... и это очень дорогой способ.