Java 什么';基本类型和引用类型之间的区别是什么?

Java 什么';基本类型和引用类型之间的区别是什么?,java,types,reference,primitive,Java,Types,Reference,Primitive,这是一道过去的试题,我想知道什么是原始类型和引用类型? 对于数组,我知道引用类型是数组由对象或变量组成的地方,但基元类型是仅使用int或字符串创建数组的地方。(对吗?) 你认为你会如何回答考试中的问题并获得良好的分数?没有直接引用基元数组类型。。。有没有办法不用这个?或者你认为用数组来解释它就可以了。这些是Java中的基本类型: 布尔值 字节 短 煤焦 int 长的 浮动 双重的 所有其他类型都是引用类型:它们引用对象 这是的第一部分。简而言之,原语是数据类型,而引用是指针,它不保存它们的值

这是一道过去的试题,我想知道什么是原始类型和引用类型? 对于数组,我知道引用类型是数组由对象或变量组成的地方,但基元类型是仅使用int或字符串创建数组的地方。(对吗?)


你认为你会如何回答考试中的问题并获得良好的分数?没有直接引用基元数组类型。。。有没有办法不用这个?或者你认为用数组来解释它就可以了。

这些是Java中的基本类型:

  • 布尔值
  • 字节
  • 煤焦
  • int
  • 长的
  • 浮动
  • 双重的
所有其他类型都是引用类型:它们引用对象


这是的第一部分。

简而言之,原语是数据类型,而引用是指针,它不保存它们的值,而是指向它们的值,用于对象上或与对象一起使用

灵长类动物

布尔值

性格

字节

整数

长的

浮动

双重的


许多很好的参考文献解释了这些基本概念

这些是基本数据类型

  • 布尔值
  • 性格
  • 字节
  • 整数
  • 长的
  • 浮动
  • 双重的
另一方面,对象数据类型或引用数据类型存储在GC管理的内存中的head中


这是与《OCA JAVA SE 7》一书最重要的区别

正如男人和女人在本质上是不同的一样(根据约翰的观点) 格雷是《男人来自火星,女人来自金星》一书的作者 变量和对象引用变量在以下方面彼此不同 多种方式。基本区别在于基本变量存储 实际值,而引用变量存储 它们所指的对象。让我们假设一个班上的人是 已经定义。如果创建一个int变量a和一个对象 引用变量person,它们将其值作为 如图2.13所示


原语与引用

第一名:-

基本类型是数据的基本类型:
byte
short
int
long
float
double
boolean
char
。 基元变量存储基元值。 引用类型是任何可实例化的类以及数组:
字符串
扫描仪
随机
模具
int[]
字符串[]
,等等。 参考变量将地址存储到内存中存储数据的位置

第二名:-

基元类型存储值,但引用类型存储堆空间中对象的句柄<记住,引用变量不是像C和C++中所看到的指针,它们只是对象的句柄,这样就可以访问它们,并对对象的状态做一些更改。<强> < /P>
阅读更多信息:

基本数据类型:

  • 由语言预定义并由关键字命名
  • 总数=8个
    布尔值
    字符
    字节

    整数

    浮动
    双重的
参考/对象数据类型:

  • 使用类的已定义构造函数创建
  • 用于访问对象
  • 任何引用变量的默认值均为null
  • 引用变量可用于引用声明类型或任何兼容类型的任何对象

由于许多人或多或少正确地说明了什么是引用类型和基元类型,人们可能会感兴趣的是,我们在Java中有一些更相关的类型。以下是java中类型的完整列表(据我所知(JDK 11))

原始类型 描述值(而不是类型)

参考类型 描述实例扩展对象(接口、类、枚举、数组)的具体类型。此外,TypeParameter实际上是一个引用类型

Integer
注意:基元类型和引用类型之间的差异使得有必要依靠装箱来转换对象实例中的基元,反之亦然

注2:类型参数描述具有可选下限或上限的类型,并且可以在其上下文中通过名称引用(与通配符类型不同)。类型参数通常可以应用于参数化类型(类/接口)和方法。参数类型定义了一个类型标识符

通配类型 表示未知类型(如TypeScript中的任何类型),该类型可以通过使用super或extend具有下限或上限

? extends List<String>
? super ArrayList<String>
空类型 唯一的表示形式是“null”。特别是在类型干涉计算期间使用。Null是逻辑上属于任何类型(可以分配给任何类型的任何变量)的特殊情况,但实际不被视为任何类型的实例(例如,(Null instanceof Object)==false)

联合型 联合类型实际上是一组替代类型的类型。遗憾的是,在Java中,它只存在于multi-catch语句中

catch(IllegalStateException | IOException e) {}
干涉型 可兼容多个类型的类型。因为在Java中,一个类最多有一个超类(对象没有超类),所以干涉类型只允许第一个类型是类,而其他所有类型都必须是接口类型

void method(List<? extends List<?> & Comparable> comparableList) {}
变量类型 由发现“var”关键字的变量声明引入的未知类型

var variable = list.get(0);

基本数据类型

基本数据类型是编程语言作为基本构建块提供的基本类型。所以它是预定义的数据类型。基元类型始终有一个值。它存储简单的值

它指定变量的大小和类型
null
catch(IllegalStateException | IOException e) {}
void method(List<? extends List<?> & Comparable> comparableList) {}
list.forEach(element -> System.out.println(element.toString)); //element is of unknown type
var variable = list.get(0);
List< String > strings = new ArrayList<>() ;  // Calling `new`  to instantiate an object and thereby allocate memory.

Point point = Point(1,2) ;           // Calling a factory method.