原始types和引用types有什么区别?

这是一个过去的考试问题,我想知道什么是原始types和参考types是第一次? 对于一个数组我知道引用types是数组由对象或variables组成的地方,但是一个基本types就是用int或者string创build数组的地方。 (对?)

你如何认为你会回答testing的问题,并获得良好的信誉? 没有真正直接指向一个原始的ARRAYtypes…有没有办法做到这一点没有? 或者你认为只用数组解释就可以了。

这些是Java中的基本types:

  • 布尔
  • 字节
  • 烧焦
  • INT
  • 浮动

所有其他types都是引用types:它们引用对象。

这是关于该语言基础的Java教程的第一部分。

从书OCA JAVA SE 7

就像男人和女人有着根本的不同(根据“火星男人”的作者约翰·格雷(John Gray),“女人来自金星”),原始variables和客体参考variables以多种方式相互不同。 基本的区别在于原始variables存储实际值,而参考variables存储它们引用的对象的地址。 假设一个Person类已经被定义了。 如果你创build一个intvariablesa和一个对象引用variablesperson,他们将把它们的值存储在内存中,如图2.13所示。

 int a = 77; Person person = new Person(); 

在这里输入图像描述

简而言之,在最底层我们有一组基本types,比如“byte,short,int,long,float,double,boolean,char”,引用types主要用于将原始types组合在一起。 所以你可以有一组int作为列表,string作为string,原语类等

另一个重要的因素是关于原始types持有值和引用持有地址。

 int item = 3; int item2 = item; 

使item2仍然保持一个值3。 但供参考types说

 Point p = new Point(1.0, 2.0); Point q = p; 

q将保持对象p的地址,在VM中它仍然是一个点。 类似的,地址被传递给引用types的方法,而值将被传递给原始types。 大多数其他差异也与价值和地址相关联。

这些是原始数据types

  • 布尔
  • 字符
  • 字节
  • 整数
  • 浮动

另一方面保存在被pipe理存储器的存储器中的堆栈中存储的对象数据types或存储在由GCpipe理的存储器中的头部的引用数据types

这是最重要的区别

原始数据types:

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

    整数

    浮动

参考/对象数据types:

  • 使用定义的类的构造函数创build
  • 用于访问对象
  • 任何引用variables的默认值为null
  • 引用variables可用于引用声明types或任何兼容types的任何对象。

简单的答案是基元是数据types,而引用是指针,它们不保存它们的值,而是指向它们的值,并用于/与对象。

Primatives

布尔

字符

字节

整数

浮动

很多很好的参考资料可以解释这些基本概念。 http://www.javaforstudents.co.uk/Types

原始人与参考文献

第一: –

原始types是数据的基本types: byteshortintlongfloatdoublebooleanchar 。 基元variables存储基元值。 引用types是任何可实例化的类以及数组: StringScannerRandomDieint[]String[]等。引用variables将地址存储到内存中用于存储数据的位置。

第二:-

原始types存储值,但引用types存储句柄到堆空间中的对象。 请记住,引用variables不是像在C和C ++中可能看到的指针,它们只是对象的句柄,以便您可以访问它们并对对象的状态进行一些更改。

阅读更多: http : //javarevisited.blogspot.com/2015/09/difference-between-primitive-and-reference-variable-java.html#ixzz3xVBhi2cr

  1. Java有八种基本types:int,double,float,long,short,byte,char,boolean。 这意味着程序员不能定义新的原始types。
  2. 引用types是用户定义的,所以它们的数量是无限的。 4个基本的引用types是:类,接口,数组,枚举。
  3. 原始types代表单个值。 引用types聚合types,它们保存零个或多个原始值或对象。
  4. 原始types需要一到八个字节的内存。 当原始值存储在variables中或传递给方法时,计算机会复制字节并保存值。 另一方面,对象可能需要更多的内存。