java中的以下内容有什么区别:
目的
参考编号
参考变量
当我看到这样的陈述时:
Emp e = new Emp();
这Emp
是类,但e
不是它的对象吗?如果是这样..我在其他地方看到过这个:
因为如果是这样的话..某处看起来像
Emp e = new Local();
其中 local 是Emp
. e
那么在这种情况下是什么意思呢?它持有什么?
java中的以下内容有什么区别:
目的
参考编号
参考变量
当我看到这样的陈述时:
Emp e = new Emp();
这Emp
是类,但e
不是它的对象吗?如果是这样..我在其他地方看到过这个:
因为如果是这样的话..某处看起来像
Emp e = new Local();
其中 local 是Emp
. e
那么在这种情况下是什么意思呢?它持有什么?
本质上,对象是堆中的一块内存。(对象的部分内存结构包括对该对象类的引用。)
Java 中的对象变量(如e
本例中的 )包含对堆中对象的引用。
类与所有这些完全不同;它们可能描述该类型对象的结构,并具有方法实现等,但类与其他对象位于完全不同的内存区域。
Emp e
此语句在堆栈中创建一个引用变量“e”。
new Emp()
此语句在堆中创建一个对象。一个对象只是一个缓冲区,或者我们可以说“一块内存”。因此,缓冲区被保留在堆中。因此声明,
Emp e=new Emp()
将在堆中创建的该对象的引用 id 传递给引用变量“e”。
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();
这里:
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”可以很容易地知道非需要多少内存静态数据成员。
这是一个简单的问题...
emp e=new emp();
这里,e
是对象的引用 id。emp
是类的引用变量,而您的对象ID不同,它的状态和行为的组合..
我刚刚制作了一个用于显示对象参考 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。它从不显示存储在内存中的对象的实际位置。
汽车 c=新车();
对象什么都不是,它只是堆中的缓冲区或内存,非静态数据成员获取内存。
引用 ID 由堆栈中的 new 运算符生成,它是一个内存位置,其中包含哈希码形式的对象的内存位置。参考 ID 是到达对象的唯一方法。生成引用 ID 是因为 java 中有一条规则,即在运行时分配的内存没有任何名称,我们都知道对象是在运行时创建的,所以它们也没有名称,我们需要一个唯一的 ID 来对其执行操作这就是为什么在 java 中每个对象都有一个唯一的引用 ID。
在上面的示例中,c 是一个存储引用 ID 的引用变量。
对象什么都不是,它只是堆区域中的内存区域或缓冲区,类的所有实例数据成员都在其中获取内存。
Emp e = new Emp();
在上面的语句中,e 是一个引用变量,它保存对象的引用 id,但是出于安全目的,java 不允许任何人获取实际对象的 id,它也可以是自我解释的,因为我们使用重定向的单词引用 id我们没有得到我们对象的实际 id 而只是它的引用。
参考 id 也可以命名为类名@对象的 # 代码的十六进制表示。