4

java中的以下内容有什么区别:

  1. 目的

  2. 参考编号

  3. 参考变量

当我看到这样的陈述时:

Emp e = new Emp();

Emp是类,但e不是它的对象吗?如果是这样..我在其他地方看到过这个:

因为如果是这样的话..某处看起来像

Emp e = new Local(); 

其中 local 是Emp. e那么在这种情况下是什么意思呢?它持有什么?

4

8 回答 8

3

本质上,对象是堆中的一块内存。(对象的部分内存结构包括对该对象类的引用。)

Java 中的对象变量(如e本例中的 )包含对堆中对象的引用。

类与所有这些完全不同;它们可能描述该类型对象的结构,并具有方法实现等,但类与其他对象位于完全不同的内存区域。

于 2012-05-26T13:33:57.403 回答
3
Emp e

此语句在堆栈中创建一个引用变量“e”。

    new Emp()

此语句在堆中创建一个对象。一个对象只是一个缓冲区,或者我们可以说“一块内存”。因此,缓冲区被保留在堆中。因此声明,

   Emp e=new Emp() 

将在堆中创建的该对象的引用 id 传递给引用变量“e”。

于 2014-03-19T17:20:17.323 回答
1
Emp{
int salary;
int name;
}

新的 新的 Emp(); Emp是一个类,new用于在堆中保留内存区域。New返回它保留的内存地址。一旦你写了,new Emp(),一个内存缓冲区被保留在堆中。这个保留区域的大小取决于一个类的数据成员的大小(这里是 2 个字节,因为 int Salary 占用 1 个字节,而 int name 占用 1 个字节字节。)

引用 ID对象的引用 ID 是存储对象的位置地址。 new Emp(); 创建对象,但其地址未在任何地方存储和捕获。

引用变量 现在,假设你想一次又一次地使用同一个对象,那么你必须有它的地址位置(引用Id)。要存储它的 addressid(ReferenceId),您可以使用引用变量。引用变量总是占用 4 个字节,它们只是存储地址(对象引用)的变量。

创建参考变量 Emp e2;

将引用 ID 分配给引用变量 Emp e2=new Emp();

于 2018-10-01T17:05:29.230 回答
1

这里:

Emp e=new Emp();

e是引用变量,它保存在堆区域中创建的对象的地址。

参考 id 以哈希码的形式生成,借助对象的魔术方法(对象共有 9 个方法)即toString()方法;在内部,使用toString对象的方法,它会自动为运行时创建的每个对象生成 Ref id。

对象的内存总是保留在 RAM 的堆区域中。bcz 在 java 中没有可用的显式指针。这里, ref 变量指向栈给对象的引用以在 Heap 中保留内存;bcz 对象也不知道内存在哪里。

堆栈段也是内存的一部分:当我们给 ref 变量时,那么 ref 变量必须已经存储在堆栈中,然后 ref 变量知道 head 的哪一部分内存是空闲的,它指向对象保留位置并保存在引用变量中。

'new' 是一个文本操作符,有助于创建对象。

Emp(): 是类的子类;如果程序员在java程序中没有显式提供构造函数,那么编译器会隐式添加一个默认构造函数,并且给子类名作为相同类名的原因是这样“new”可以很容易地知道非需要多少内存静态数据成员。

于 2019-10-13T08:42:43.063 回答
0

这是一个简单的问题...

emp e=new emp();

这里,e是对象的引用 id。emp是类的引用变量,而您的对象ID不同,它的状态和行为的组合..

于 2013-11-16T15:26:40.847 回答
0

我刚刚制作了一个用于显示对象参考 ID 的程序。

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 以十六进制字符串的形式将对象的实际位置映射到一个单独的位置,该字符串称为参考 ID。它从不显示存储在内存中的对象的实际位置。

于 2016-07-12T04:18:38.757 回答
0

汽车 c=新车();

对象什么都不是,它只是堆中的缓冲区或内存,非静态数据成员获取内存。

引用 ID 由堆栈中的 new 运算符生成,它是一个内存位置,其中包含哈希码形式的对象的内存位置。参考 ID 是到达对象的唯一方法。生成引用 ID 是因为 java 中有一条规则,即在运行时分配的内存没有任何名称,我们都知道对象是在运行时创建的,所以它们也没有名称,我们需要一个唯一的 ID 来对其执行操作这就是为什么在 java 中每个对象都有一个唯一的引用 ID。

在上面的示例中,c 是一个存储引用 ID 的引用变量。

于 2018-01-29T18:52:59.683 回答
-1

对象什么都不是,它只是堆区域中的内存区域或缓冲区,类的所有实例数据成员都在其中获取内存。

Emp e = new Emp();

在上面的语句中,e 是一个引用变量,它保存对象的引用 id,但是出于安全目的,java 不允许任何人获取实际对象的 id,它也可以是自我解释的,因为我们使用重定向的单词引用 id我们没有得到我们对象的实际 id 而只是它的引用。

参考 id 也可以命名为类名@对象的 # 代码的十六进制表示。

于 2018-04-20T16:00:12.700 回答