JAVA的基本数据类型和引用数据类型的区别

 我来答
帐号已注销
2019-06-29 · TA获得超过1.2万个赞
知道答主
回答量:25
采纳率:0%
帮助的人:6136
展开全部

JAVA的基本数据类型和引用数据类型的区别:

1、基本数据类型有:byte:Java中最小的数据类型;short:短整型;int:整型;long:长整型;float:浮点型;double:双精度浮点型;char:字符型;boolean:布尔类型。

引用数据类型有:类、接口类型、数组类型、枚举类型、注解类型。

2、基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。

而引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

3、在数据做为参数传递的时候,基本数据类型是值传递,而引用数据类型是引用传递(地址传递)。

小星星教育知识分享
高粉答主

2019-12-03 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67136

向TA提问 私信TA
展开全部

一、作用的不同

1、引用类型一般都是通过new关键字创建对象,然后把这个对象赋予给相应的变量,最常用的引用类型是String类型,它也比较特殊,可以直接通过关键字new来创建对象,也可以通过字符串直接赋值,比如:

Strings=newString("abc");

Strings="abc";

2、基本类型就是直接赋值就可以了,比如:

inta=123;

floatb=123.0;

boolean=true;

二、参数方面传递的不同

引用类型是引用传递

基本类型是值传递

三、比较方面的不同

引用类型比较的是引用地址(没有重写equals方法)

基本类型比较的是值

五、类型的不同

1、引用类型分为四种

强引用(StrongReference)

软引用(SoftRefernce)

弱引用(WeakReference)

虚引用(PhantomReference)

强引用-StrongReference

2、八种基本类型

整型byte8位

整型short16位

整型int32位

整型long64位

浮点型float32位

浮点型double64位

字符型char16位

布尔型boolean位数不确定

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
man0306
推荐于2017-11-26 · TA获得超过958个赞
知道小有建树答主
回答量:707
采纳率:33%
帮助的人:401万
展开全部
java中的数据类型分为两大类:基本数据类型和引用数据类型

基本数据类型,包括数值型,字符型和布尔型。

数值型:1)整型:byte 1个字节;short 2个字节;int 4个字节;long 8个字节。

2)浮点型:float 4个字节;double
8个字节;可以采用十进制和十六进制两种表示方式,其中十六进制表示方法只能采用科学计数法,例如:0x1.2p3,表示的是的是1乘以16加上2乘以16的-1次方的和乘以2的三次方;浮点型的默认类型为DOUBLE型,如果声明float型浮点数,要在数值后面加上f或F,例如:float
f1 = 3.14F;否则会报精度错误。

字符型:char 采用unicod的16位编码方式进行编码。

布尔型:true,false;

引用数据类型:类、接口类型、数组类型、枚举类型、注解类型;

基本数据类型和引用数据类型的区别主要在存储方式上:

基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

引用数据类型在被床架时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

例如:我有一个类MyDate,其中有属性day,mouth,year等,有构造方法(带参数);

现在为其创建一个对象MyDate d1 = new
MyDate(8,8,2008);

在内存中的具体创建过程是:

1)首先在栈内存中位其d1分配一块空间;

2)然后在堆内存中为MyDate对象分配一块空间,并为其三个属性设初值0,0,0;

3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;

4)调用构造方法,为三个属性赋值为8,8,2008;(注意这个时候d1与MyDate对象之间还没有建立联系)

5)将MyDate对象在堆内存中的地址,赋值给栈中的d1;通过句柄d1可以找到堆中对象的具体信息。

呵呵,引用数据类型的创建还真是挺复杂的一个过程。。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑛夫科技
2018-07-30 · TA获得超过8331个赞
知道大有可为答主
回答量:3426
采纳率:89%
帮助的人:647万
展开全部
java的8种基本类型:
byte,short, char, int, long,float,double,boolean.
与此对应的,java提供了8种包装类型:
Byte,Short,Character,Integer,Long,Float,Double,Boolean.
它们之间的相互转换:例如:
double a=1;
//把double基本类型转换为Double包装类型
Double b=new Double(a);
//把Double包装类型转换为double基本类型
a=b.doubleValue();

所谓引用,就是指针了,就是说对象指向的不是数据本身,而是它所在的内存地址.
数组就是引用类型!
一般在传参的时候用的最多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喵喵喵喵喵咪c7
2019-02-18 · TA获得超过4024个赞
知道小有建树答主
回答量:2277
采纳率:100%
帮助的人:73.8万
展开全部
数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格。
数据类型是语言的抽象原子概念,可以说是语言中基本的单元定义,Java语言提供了八种基本类型。六种数字类型(四个整数型(默认是int 型),两个浮点型(默认是double 型)),一种字符类型,还有一种布尔型。

一、整数类型:
byte、short、int、long都是表示整数的,只不过他们的取值范围不一样。
1、byte:
byte数据类型是8位、有符号的,以二进制补码表示的整数;(256个数字),占1字节。最小值是-128(-2^7);最大值是127(2^7-1);默认值是0;
byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;
例子:byte a = 100,byte b = -50。
2、short:
short数据类型是16位、有符号的以二进制补码表示的整数,占2字节。最小值是-32768(-2^15);最大值是32767(2^15 - 1);
Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是0;
例子:short s = 1000,short r = -20000。
3、int:
int数据类型是32位、有符号的以二进制补码表示的整数;占3字节。最小值是-2,147,483,648(-2^31);最大值是2,147,485,647(2^31 - 1);一般地整型变量默认为int类型;默认值是0;
例子:int a = 100000, int b = -200000。
4、long:
long数据类型是64位、有符号的以二进制补码表示的整数;占4字节。最小值是-9,223,372,036,854,775,808(-2^63);最大值是9,223,372,036,854,775,807(2^63 -1);这种类型主要使用在需要比较大整数的系统上;默认值是0L。
可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。
二、浮点型:
浮点型包括单精度浮点型(float)和双精度浮点型(double)。double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的。
1、float (单精度浮点型)
一个float 32位,占用4个字节,例3.2F,默认是0.0f, 3.402823e+38 ~1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)。
2、double (双精度浮点型)
一个dobule 64位 占用8个字节,例3.2,默认是0.0, 1.797693e+308~4.9000000e-324 占用8个字节
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true和false;
这种类型只作为一种标志来记录true/false情况;
默认值是false;
例子:boolean one = true。
三、字符型
char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空。
四、布尔型
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式