JAVA中值类型和引用类型的区别
3个回答
2022-11-07 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
(1)值类型:数据存储在内存的堆栈中,从堆栈中可以快速地访问这些数据,因此,值类型表示实际的数据。
(2)引用类型:对象、数组、函数。
1、值类型:包括:sbyte、short、int、long、float、double、decimal(以上值类型有符号)byte、ushort、uint、ulong(以上值类型无符号)bool、char
2、引用类型:包括:对象类型、动态类型、字符串类型。二、具体区别:
1、值类型:byteb1=1;byteb2=b1;Console.WriteLine("{0},{1}。",b1,b2);b2=
2;Console.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、引用类型:复制代码。
(2)引用类型:对象、数组、函数。
1、值类型:包括:sbyte、short、int、long、float、double、decimal(以上值类型有符号)byte、ushort、uint、ulong(以上值类型无符号)bool、char
2、引用类型:包括:对象类型、动态类型、字符串类型。二、具体区别:
1、值类型:byteb1=1;byteb2=b1;Console.WriteLine("{0},{1}。",b1,b2);b2=
2;Console.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、引用类型:复制代码。
展开全部
简单点说,值类型就是基础数据类型,引用类型就是各种类的对象。
具体一点的话。。。看下面=。=
有两个概念叫 堆和栈
在一个程序执行时,堆里放的值有两种,
一种就是数据的值,值类型
一种是地址的值,地址指向堆里某个地址,这个地址里面放的才是对应得数值,引用类型
(学过C的话,可以类比一下指针)
个人理解,堆和栈就是内存里的一片区域。堆是一片连续的区域,先进后出,而堆是一片不一定连续的区域,堆的地址和栈产生关联。
具体一点的话。。。看下面=。=
有两个概念叫 堆和栈
在一个程序执行时,堆里放的值有两种,
一种就是数据的值,值类型
一种是地址的值,地址指向堆里某个地址,这个地址里面放的才是对应得数值,引用类型
(学过C的话,可以类比一下指针)
个人理解,堆和栈就是内存里的一片区域。堆是一片连续的区域,先进后出,而堆是一片不一定连续的区域,堆的地址和栈产生关联。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-06-19
展开全部
简单类型,和非简单类型
~
~
~
~
~
~
~
~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询