Primitive vs. Reference Data Types

转载 2016年06月01日 16:42:43

转自:http://pages.cs.wisc.edu/~bahls/cs302/PrimitiveVsReference.html

Primitive vs. Reference Data Types

Primitives vs. References

  • primitive types are the basic types of data
    • byte, short, int, long, float, double, boolean, char
    • primitive variables store primitive values
  • reference types are any instantiable class as well as arrays
    • String, Scanner, Random, Die, int[], String[], etc.
    • reference variables store addresses

Assignment

  • copies the contents of RHS variable into LHS variable
    • primitives: the primitive value is copied
    • references: the address is copied
  • implications: for references the object is not copied, it is shared (reference variables are aliases)

Comparisons (e.g. ==)

  • compares the contents of the variables
    • primitives: the primitive values are compared
    • references: the addresses are compared
  • implications: for references the contents of the objects are not compared

Passing Parameters

  • terminology:
    • formal parameter: the parameter variable that is listed (along with its type) in the method declaration
    • actual parameter: the parameter that is given when the method is called
  • copies the contents of actual parameter into the formal parameter (i.e., pass-by-value)
    • primitives: the primitive value is copied
    • references: the address is copied
  • implications: for references the object is not copied, it is shared (i.e., actual parameter and formal parameter are aliases)
  • primitives: changing the formal parameter's value doesn't affect the actual parameter's value
  • references: changing the formal parameter's address doesn't affect the actual parameter's address but changing the formal parameter's object does change the actual parameter's object since they refer to the same object

Returning Values

  • returns a result to where the method was called
    • primitives: the primitive value is returned
    • references: the address is returned
  • recall: local variables and parameters are destroyed when the method finishes execution
  • implications: a locally created object can survive if it is returned or if it is stored in a data member
译文:

原始与参考数据类型

基元与参考

  • 原语类型的基本类型的数据
    • byte, short, int, long, float, double, boolean, char
    • 原始变量存储的原始值
  • 引用类型的实例化类以及阵列
    • String, Scanner, Random, Die, int[], String[]等等。
    • 引用变量存储地址

分配

  • 副本RHS变量的内容到LHS变量
    • 原语:原始值被复制
    • 引用:地址复制
  • 影响 :为参考对象是不可复制的,它是共享的(引用变量是别名 )

比较(如==)

  • 比较变量的内容
    • 原语:原始值进行比较
    • 引用:地址比较
  • 影响 :为参考对象的内容不相

传递参数

  • 术语 :
    • 形式参数:即在方法声明中列出(连同其类型)的参数变量
    • 实际参数:即当调用该方法给出的参数
  • 副本实际参数的内容到形式参数(例如, 通过按值 )
    • 原语:原始值被复制
    • 引用:地址复制
  • 影响 :为参考对象是不可复制的,它是共享(即实际参数和形式参数是别名)
  • 原语 :改变形参的值不会影响实际的参数值
  • 引用 :改变形式参数的地址不影响实际参数的地址, 改变形式参数的对象不改变实际参数的对象,因为它们指的是同一个对象

返回值

  • 返回一个结果给其中该方法被称为
    • 原语:返回原始值
    • 参考文献:地址返回
  • 记得:局部变量和参数被破坏时,该方法执行完毕
  • 影响 :如果返回它本地创建对象可以存活,或者如果它被存储在一个数据成员

相关文章推荐

Primitive Types and Reference Types in Javascript

给出翻译原文地址不得不说,还是阅读国外的技术文章收获大,即使翻译的再好,原著和翻译版的之间的差距是不可消除的,就像水浒传英文版的名字是水边发生的故事一样,WTF!我们经常说变量是用来存储值的,但是这个...
  • dhassa
  • dhassa
  • 2017年02月28日 16:13
  • 370

The Data types reference sheet

The Data types reference sheet The columns 8, 9, 10 shows what versions of SQL Server that suppor...
  • colddie
  • colddie
  • 2012年08月14日 14:57
  • 403

Specializing for primitive types

      转自 http://www.scala-notes.org/2011/04/specializing-for-primitive-types/ One interesting featur...

Professional JS(三-statements&function)&(四-primitive&reference type)&黑画(5-another road)

一.Statements---flow control statements 1.if语句 ①if(condition)statement1 else statement 2.do wh...

java——reference类型和Primitive类型

本文产生于自己在对object  reference操作后的预期结果的错误。开始之前,先简单说说reference(引用)类型和 primitive(基本)类型。                 J...

Java的数据类型分为两类:primitive和reference类型

Java的数据类型分为两类:primitive和reference类型  Java虽然是个面向对象的语言,也声称“Everything is object”- 一切都是对象。但是,我觉得还不够纯粹和...

第三节:原生数据类型使用陷阱 Pitfall of Primitive Data Type

1.Java中的原生数据类型共有8种: 1)整型:使用int表示(32位)。2)字节型:使用byte表示(表示-128~127之间的256个整数)。3)短整型:使用short表示(16位)。4)长整型...
  • lwlgkg
  • lwlgkg
  • 2011年04月26日 12:00
  • 351

【北京圣思园学习笔记】第03讲:原生数据类型使用陷阱(Pitfall of Primitive Data Type)

【Java中的原生数据类型】 1) 整型:使用int表示。(32位) 2) 字节型:使用byte表示。(表示-128~127之间的256个整数, 8位)。 3)短整型:使用short表示。(16位) ...

JavaSE第二讲:原生数据类型 Primitive Data Type

(1)编辑工具    Windows: notepad, editplus, ultraedit, gvim    Linux: vi, vim, gedit (2)Java中的数据...

JavaSE第三讲:原生数据类型使用陷阱 Ptifall of Primitive Data Type

1. Java中的原生数据类型共有8种:     1) 整型:使用int表示。(32位)     2) 字节型:使用byte表示。(表示-128~127之间的256个整数, 8位)。     3...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Primitive vs. Reference Data Types
举报原因:
原因补充:

(最多只允许输入30个字)