/ / Каква е разликата между обект, референтен идентификатор и референтна променлива в Java? - java

Каква е разликата между обект, референтен идентификационен номер и референтна променлива в Java? - java

Каква е разликата между следните в Java:

  1. обект

  2. Идентификационен номер

  3. Референтна променлива

Когато видя изявления като това:

Emp e = new Emp();

Тук Emp е клас, но e не е негов обект? Ако това е така .. някъде другаде видях това:

защото ако е така тогава .. някъде се вижда така

Emp e = new Local();

Където местният е детски клас на Emp, И така, какво прави e означава в този случай? Какво държи?

Отговори:

3 за отговор № 1

Обект по същество е парче памет, живеещо в грамадата. (Част от структурата на паметта на обекти включва препратка към класа на този обект.)

Обектни променливи в Java (като e, в този пример) съдържат препратки до обекти, живеещи в грамадата.

Класовете са напълно различни от всичките; те могат да опишат структурата на обекти от този тип и да имат реализации на методи и други подобни, но класовете живеят в напълно различна област от паметта от други обекти.


1 за отговор № 2
Emp e

Този оператор създава референтна променлива "e" в стека.

    new Emp()

Това изявление създава обект в грамадата. Обектът е просто буфер или можем да кажем „парче памет“. Следователно, буферът се запазва в грамадата. Така изявлението,

   Emp e=new Emp()

предава референтния идентификатор на този обект, създаден в грамадата, към референтната променлива "e".


0 за отговор № 3

Това е прост въпрос ...

emp e=new emp();

Тук, e е идентификационен номер на обекта. emp е референтната променлива към класа и вашият идентификационен номер на обекта различава комбинацията от състояние и поведение ..


0 за отговор № 4

Току-що направих програма за показване на референтен идентификатор на обект.

class abc
{

int a=10;
int b;
}

class t extends abc
{

public static void main(String args[])
{
abc A=new abc();
System.out.println(""+A);
}
}

изход: шокиращо шестнадесетичен низ:

"ABC @ 52e922"

Java картографира действителното местоположение на обект на отделно място под формата на шестнадесетичен низ, известен като референтен идентификатор. Той никога не показва действителното местоположение на обекта, съхраняван в паметта.


0 за отговор № 5

Кола c = нова кола ();

Обектът е нищо, това е просто буфер или памет в грамада, където нестатичните членове на данните получават паметта.

Референтният идентификатор се генерира от нов оператор встек и това е памет, която съдържа местоположението на паметта на обект във вид на хеш-код. Идентификационният номер е единственият начин за достигане до обекта. Референтният идентификатор се генерира, защото в Java има правило, че паметта, разпределена по време на изпълнение, няма име и всички знаем, че обектите са създадени по време на изпълнение, така че те също нямат име и се нуждаем от уникален идентификатор, за да извършим операция по това обект, поради което има уникален идентификационен номер в Java за всеки обект.

В горния пример с е референтна променлива, която съхранява референтния идентификатор.


-1 за отговор № 6

Обектът не е нищо, това е просто памет или буфер в куча, където всички членове на данните от даден клас получават памет.

Emp e = нов Emp ();

в горното изявление e е референтна променливакоито държат референтния идентификатор на обекта, но за целите на сигурността java не позволява на никого да получи идентификатора на действителния обект, той също може да бъде обяснителен, тъй като използваме word reference id, който ни пренасочва, че не получаваме действителния идентификатор на нашия обект вместо това просто препратка към него.

също референтен идентификатор ще бъде номенклатура като име на клас @ шестнадесетично представяне на # кода на обекта.