参考(reference)和java中的对象(object in java)的区别

对象和引用都是与java编程语言中的“类”相关联的术语。...

对象和引用都是与java编程语言中的“类”相关联的术语。

参考(reference) vs. java中的对象(object in java)

对象和引用的区别在于,对象是类的实例,并且存储在特定的内存槽中。“引用”指向存储“对象”变量和方法的位置。

参考(reference)和java中的对象(object in java)的区别

类是一个蓝图或模板,提供如何创建对象的说明。对象基于此结构,并根据该类模板填充必要的字段。

一个内存引用,简单地说就是名称状态,一个对内存插槽的引用。用户可以使用内存引用找出对象存储的地址。

Parameter of Comparison Object Reference
基本定义 它是类的实例,它包含的所有元素都基于类的蓝图。 一种简单的内存引用,指向对象存储在内存槽中的位置。
创建格式 创建对象有一种简单的格式:ClassName reference\u variable=new ClassName(带参数); 内存引用是在对象旁边创建的。它以创建对象的格式使用,并被赋予一个变量名
元素 它包含基于类的方法和变量。 它包含存储对象地址的位序列。
可变的 对象具有可以更改的状态和行为,即对象的状态可以更改。 无法更改引用变量值。它只能保留为声明为的数据类型。
虚拟意义 它是一个真实世界的实体,持有某种形式的内存或数据。 它只是一个变量名,没有真正的意义。它就像一个人的名字,是指那个人。

java中引用和对象的比较表(表格形式)

什么是java中的引用(reference in java)?

引用是指为分配对象内存的位置提供地址的东西。

对象从不直接使用;我们相反地在被调用的对象和存储在内存中的对象之间分配引用变量,这些变量间接充当中间人。

Java还允许4种不同类型的引用-

  1. 有力的参考。
  2. 弱引用。
  3. 软参考。
  4. 虚引用

在从类创建对象的格式中创建引用-

ClassName reference\变量=新类名(带参数);

这里的“reference\u variable”是分配给引用的值。此值不能更改,并且仅属于一种数据类型。但是,关于引用需要注意的一点是,如果需要,可以将相同的引用指定给多个对象。

什么是java中的对象(object in java)?

对象只是类的一个实例。它表示类的结构,并遵循类中所有元素(如方法和变量)的蓝图说明。

对象被视为具有状态和行为。在这里,状态是一个“抽象”实体,它包含对象的所有属性以及这些属性的值。简单地说,一个人的国家就是——姓名、种族、年龄等等。

行为绑定对象的结构。它们绑定属性之间的关系,以便允许对象在被调用时执行函数/操作。简单地说,我们可以说,对于一个人来说,行为就是做饭,走路,说话等等。

“对象”是使用3个可区分的步骤创建的-

  1. 宣言
  2. 实例化
  3. 初始化

在第一步declaration中,声明一个对象类型的变量名,它将成为对象内存的引用。

在第二步实例化中,我们有一个关键字,即“new”,用于创建对象。

在第三步初始化中,我们有一个'new'关键字,后跟一个'c***tructor',它与从中创建对象的类以及参数具有相同的名称。这将调用构造函数来帮助我们初始化正在创建的新对象。

创建对象的编译格式如下-

ClassName reference\变量=新类名(带参数);

这里,引用是使用“reference\u variable”创建的,ClassName(带参数)调用构造函数。

示例–Person stu1=new Person();

这里,Person指的是类,stu1是指向正在创建的新对象的引用变量的值,Person()是构造函数。

java中引用和对象的主要区别

  • 对象是从类的结构派生的实例。引用只是一个变量,它指向对象在内存中的位置。
  • 对象是以某种格式创建的-“classname reference_variable=new classname(带参数);”在格式中,参照将与对象创建一起创建。
  • 对象包含变量和方法等元素,以及状态和行为。引用只包含一个位序列。
  • 在程序中从来没有直接看到对象,而是指定了引用变量,并创建了对对象的引用。
  • 对象是一个真实世界的实体,它包含一些内存。指称没有实际意义,其行为与人名相同。

结论

当涉及到它们的功能时,对象和引用都是交织在一起的。一个对象不能被直接看到或分配,所以我们使用引用来分配一个名称或一个充当中间人的变量。

引用允许我们间接调用对象,因为它知道对象存储的地址。在创建一个对象时,我们可以看到引用是在它旁边创建的,因为它是一种基本且简单的格式,所以它节省了时间,而且效率很高。

参考文献

  • https://dl.acm.org/doi/abs/10.1145/1287624.1287637
  • https://cds.cern.ch/record/1033269/files/9780596007737_toc.pdf

  • 发表于 2021-07-09 16:22
  • 阅读 ( 440 )
  • 分类:IT

你可能感兴趣的文章

字符串缓冲区(string stringbuffer)和java中的stringbuilder(stringbuilder in java)的区别

...对象。 图01:使用String、StringBuffer和StringBuilder的Java程序 参考下面的代码。 String s1=“你好”; s1=s1+“世界”; 系统输出打印项数(s1); 在第一条语句中,s1指的是字符串常量池中的“Hello”。在第二条语句中,JVM不更改现有...

  • 发布于 2020-10-02 19:22
  • 阅读 ( 311 )

包裹(package)和java接口(interface in java)的区别

...应该使用接口。如果A和B是接口,那么C类可以实现它们。参考以下示例。 图03:接口A 图04:接口B 接口A有display1抽象方法,接口B有display2抽象方法。 图05:C类 类C同时实现A和B接口。因此,它应该定义这两种方法。 图06:主要方法...

  • 发布于 2020-10-18 11:01
  • 阅读 ( 569 )

等于(equals)和java中的hashcode(hashcode in java)的区别

...是一种方法,类通过该方法隐式或显式地将存储在类实例中的数据分解为单个哈希值,该散列值是一个32位有符号整数。在Java中,equals和hashCode之间的关键区别在于equals用于比较两个对象,而hashCode用于散列,以决定对象应归入...

  • 发布于 2020-10-19 00:40
  • 阅读 ( 198 )

睡觉(sleep)和在java中等待(wait in java)的区别

关键区别——java中的休眠与等待 Sleep和wait是Java中用于多线程处理的两种方法。sleep方法属于Thread类,而wait方法来自Object类。Java中sleep和wait的关键区别在于,sleep用于在指定的毫秒数内暂停当前线程的执行,而wait方法用于使...

  • 发布于 2020-10-19 03:04
  • 阅读 ( 270 )

包装类(wrapper class)和java中的基元类型(primitive type in java)的区别

关键区别——java中的包装类与原语类型 Java是一种流行的编程语言,用于开发各种应用程序。Java的一个优点是它支持面向对象编程(OOP)。使用OOP,可以使用对象对程序或软件进行建模。类被用作创建对象的蓝图。有必要在...

  • 发布于 2020-10-19 06:27
  • 阅读 ( 735 )

静止的(static)和java期末考试(final in java)的区别

...需要创建对象来调用该方法。可以使用类名调用该方法。参考以下程序。 图01:带有静态变量和静态方法的Java程序 根据上面的程序,A类包含了数字变量和显示方法。两者都是静态成员。因此,不需要创建一个对象来访问数字变...

  • 发布于 2020-10-19 07:48
  • 阅读 ( 315 )

最终决赛(final finally)和用java完成(finalize in java)的区别

...捕捉到的异常。无论是否引发异常,finally块都将执行。参考给定的例子。 积分p=10,q=5,r=5; 智力回答; 试试看{ 答案=p/(q–r); } catch(算术异常e){ System.out.println(“除以零”); } 最后{ System.out.println(“执行finally块”...

  • 发布于 2020-10-19 15:24
  • 阅读 ( 237 )

这(this)和超级java(super in java)的区别

...java语言(this in java)? 关键字“this”用于引用当前对象。参考给定的Java程序。 图01:使用此关键字的Java程序 在Java中,有三种类型的变量。它们是实例变量、局部变量和类变量。根据上面的程序,类Employee有两个实例变量。他们...

  • 发布于 2020-10-19 18:17
  • 阅读 ( 379 )

超载(overloading)和在java中重写(overriding in java)的区别

...别——java中重载与重写 面向对象编程(OOP)是软件开发中的一个主要范式。它是一种使用类和对象设计程序的方法。班级就是蓝图。它描述了对象中应该包含的内容。或者应该定义对象的属性。因此,对象是类的实例。这些对...

  • 发布于 2020-10-19 21:20
  • 阅读 ( 362 )

聚合(aggregation)和java中的合成(composition in java)的区别

...息,如城市、州、国家。在这种情况下,学生有一个实体参考地址。这是一种“有-有”的关系。 图01:标记等级   图02:描述聚合的主程序 根据上述程序,班级成绩由数学、英语和科学成绩三个属性组成。这个学生有一个分数...

  • 发布于 2020-10-24 01:38
  • 阅读 ( 719 )
d26405591
d26405591

0 篇文章

相关推荐