JAVA中值类型和引用类型的区别

Python014

JAVA中值类型和引用类型的区别,第1张

(1)值类型:数据存储在内存的堆栈中,从堆栈中可以快速地访问这些数据,因此,值类型表示实际的数据。

(2)引用类型:对象、数组、函数。

1、值类型:包括:sbyte、short、int、long、float、double、decimal(以上值类型有符号)byte、ushort、uint、ulong(以上值类型无符号)bool、char

2、引用类型:包括:对象类型、动态类型、字符串类型。二、具体区别:

1、值类型:byteb1=1byteb2=b1Console.WriteLine("{0},{1}。",b1,b2)b2=

2Console.WriteLine("{0},{1}。",b1,b2)Console.ReadKey()解释:byteb1=1声明b1时,在栈内开辟一个内存空间保存b1的值1。byteb2=b1声明b2时,在栈内开辟一个内存空间保存b1赋给b2的值1。Console.WriteLine("{0},{1}。",b1,b2)输出结果为1,1。b2=2将b2在栈中保存的值1改为

2。Console.WriteLine("{0},{1}。",b1,b2)输出结果为1,2。

2、引用类型:复制代码。

[值类型]

也就是基本数据类型 基本数据类型常被称为四类八种

四类:

1,整型 2,浮点型 3,字符型4,逻辑型

八种:

1,整型3种 byte,short,int,long

2,浮点型2种 float,double

3,字符型1种 char

4,逻辑型1种 boolean

[引用类型]

除了四类八种基本类型外,所有的类型都称为引用类型(数组,类,接口,字符串)

在弄清楚值类型与引用类型之后,最后一点就是值传递与引用传递,这才是关键

值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。