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
  • 486

C++ 基本类型(Primitive Type) 的(const reference type) 参数有何用处?

我们知道,C++ 的const reference 参数duiy
  • ly8838
  • ly8838
  • 2014年08月17日 13:39
  • 751

Code First Entity Framework和Lambda表达式First/Where可能会组成的陷阱

Lambda表达式First和Where在取一条数据时可以互换。但是当关联多表并使用First时就会出现错误...
  • lihui_830501
  • lihui_830501
  • 2013年11月23日 03:44
  • 2474

Working with Primitive Data Types

Working with Primitive Data TypesC# 2005 has a number of built-in types called primitive data types....
  • zhujianyun
  • zhujianyun
  • 2006年07月02日 16:07
  • 933

java——reference类型和Primitive类型

本文产生于自己在对object  reference操作后的预期结果的错误。开始之前,先简单说说reference(引用)类型和 primitive(基本)类型。                 J...
  • daqing5569
  • daqing5569
  • 2013年12月17日 00:59
  • 893

Java两种变量值类型和引用Primitive和Reference

主数据类型有int,long,byte,float,boolean等8种,java虚拟机会给每个主数据类型分配存储空间,每个有独立存储空间,不能共享。         int c = 10;     ...
  • IBelieve1974
  • IBelieve1974
  • 2017年03月02日 11:25
  • 368

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
  • 429

原生数据类型(Primitive Data Type)

原生数据类型(Primitive Data Type) int 32位 byte -128~127 short 16位 long 64位 char character ” boolean true ...
  • willchun
  • willchun
  • 2016年10月18日 22:12
  • 272

Type Fundamentals (.NET: Primitive types, reference types and value types )

Type Fundamentals Jeffrey Richter ...
  • bright60
  • bright60
  • 2007年12月02日 12:12
  • 672

spark2 dataframe map报错

在spark2中使用dataframe的map操作时候报错: Error:(34, 20) Unable to find encoder for type stored in a Dataset. ...
  • u013090676
  • u013090676
  • 2017年10月06日 23:03
  • 199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Primitive vs. Reference Data Types
举报原因:
原因补充:

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