Смотрите на изображение ниже. Когда мы создаем объект в Java с new
ключевое слово, мы получаем адрес памяти от ОС.
Когда мы пишем out.println(objName)
мы видим "специальную" строку, как произведено. Мои вопросы:
Если это - адрес памяти который данный ОС нам:
a) Как я могу преобразовать эту строку в двоичный файл?
b) Как я могу получить один адрес целочисленных переменных?
Это имя класса и System.identityHashCode(), разделенные символом '@'. То, что представляет собой хэш-код идентификации, зависит от реализации. Часто это начальный адрес памяти объекта, но объект может быть перемещен в памяти ВМ с течением времени. Так что (вкратце) на это нельзя полагаться.
Получение адресов памяти переменных бессмысленно в Java, так как JVM вольна реализовывать объекты и перемещать их так, как это кажется удобным (ваши объекты могут/будет перемещаться во время сбора мусора и т.д.)
Integer.toBinaryString() даст вам целое число в двоичном виде.
.То, что вы получаете, это результат метода toString() класса Object или, точнее, identityHashCode(), как указал uzay95.
"Когда мы создаём объект в java с новым ключевым словом, мы получаем адрес памяти от операционной системы"
Важно понимать, что всё, что вы делаете в Java, обрабатывается виртуальной машиной Java. Именно JVM дает эту информацию. То, что на самом деле происходит в оперативной памяти операционной системы хоста, полностью зависит от реализации JRE.
.Это выход реализации объекта "toString()". Если ваш класс переопределит toString(), он выведет что-то совершенно другое.
.