java支持的数据类型

Java语言支持基本类型和引用类型,基本类型包括boolean、数值类型(整数和浮点),数值类型中的字符型char是一种整数类型。引用类型涉及类、接口、数组和null类型。整数类型有byte、short、int、long,浮点类型有float和double。boolean类型用于逻辑判断,仅包含true和false。Java中的数值可以以十进制、二进制、八进制和十六进制表示,浮点数可能存在精度问题。null是特殊的引用类型,只能赋值给引用类型变量,不能赋值给基本类型。
摘要由CSDN通过智能技术生成

Java语言支持的类型分为两类:基本类型(Primitive Type)和引用类型(Reference Type)。
–基本类型包括boolean类型和数值类型。数值类型有整数类型和浮点类型。整数类型包括byte、short、int、long、char,浮点类型包括float和double。
提示:
char代表字符型,实际上字符型也是一种整数类型,相当于无符号整数类型。
–引用类型包括类、接口和数组类型,还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是Java语言里不再使用指针这个说法。
空类型(null type)就是null值的类型,这种类型没有名称。因为null类型没有名称,所以不可能声明一个null类型的变量或者转换到null类型。空引用(null)是null类型变量唯一的值,空引用(null)可以转换为任何引用类型。
在实际开发中,程序员可以忽略null类型,假定null只是引用类型的一个特殊直接量。
注意:
空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个null值赋给基本数据类型的变量。

Java的基本数据类型分为两大类:boolean类型和数值类型。
而数值类型又可以分为整数类型和浮点类型,整数类型里的字符类型也可被单独对待。因此常把Java里的基本数据类型分为4类,Java只包含这8种基本数据类型,值得指出的是,字符串不是基本数据类型,字符串是一个类,也就是一个引用数据类型。

在这里插入图片描述
通常所说的整型,实际指的是如下4种类型。
byte : 一 个 byte 类 型 整 数 在 内 存 里 占 8 位 , 表 数 范 围是-128(-2的7次方)~127(2的7次方-1)。
short:一个short类型整数在内存里占16位,表数范围是-32768(-2的15次方)~32767(2的15-次方1)。
Int:一个 int 类 型 整 数 在 内 存 里 占 32 位,表数范围是-2147483648(-2的31次方)~2147483647(231-1)。
long:一个long类型整数在内存里占64位,表数范围是(-2的63次方)~(263-1)。
int是最常用的整数类型,因此在通常情况下,直接给出一个整数
值默认就是int类型。除此之外,有如下两种情形必须指出。
如果直接将一个较小的整数值(在byte或short类型的表数范 围内)赋给一个byte或short变量,系统会自动把这个整数值当成byte或者short类型来处理。
如果使用一个巨大的整数值(超出了int类型的表数范围)时,Java不会自动把这个整数值当成long类型来处理。如果希望系统把一个整数值当成long类型来处理,应在这个整数值后增加l或者L作为后缀。通常推荐使用L,因为英文字母l很容易跟数字1搞混。

Java中整数值有4种表示方式:十进制、二进制、八进制和十六进制,其中:
二进制的整数以0b或0B开头;
八进制的整数以0开头;
十六进制的整数以0x或者0X开头,其中10~15分别以a~f(此处的a~f不区
分大小写)来表示。

字符型通常用于表示单个的字符,字符型值必须使用单引号(') 括起来。

浮点型
Java的浮点类型有两种:float和double。Java的浮点类型有固定的表数范围和字段长度,且字段长度和表数范围与机器无关。Java的浮点数遵循IEEE 754标准,采用二进制数据的科学计数法来表示浮点数,
对于float型数值,第1位是符号位,接下来8位表示指数,再接下来23位表示尾数;
对于double型数值,第1位是符号位,接下来的11位表示指数,再接下来52位表示尾数。
注意:
因为Java浮点数使用二进制数据的科学计数法来表示浮点数,因此可能不能精确表示一个浮点数。例如把5.2345556f值赋给一个float类型变量,接着输出这个变量时看到这个变量的值已经发生了改变。使用double类型的浮点数比float类型的浮点数更精确,但如果浮点数的精度足够高(小数点后的数字很多时),依然可能发生这种情况。如果开发者需要精确保存一个浮点数,则可以考虑使用BigDecimal类。
double类型代表双精度浮点数,float类型代表单精度浮点数。
一个double类型的数值占8字节、64位,
一个float类型的数值占4字节、32位。
Java语言的浮点数有两种表示形式:
–十进制数形式:这种形式就是简单的浮点数,例如5.12、512.0、.512。浮点数必须包含一个小数点,否则会被当成int类型处理。
–科学计数法形式:例如5.12e2(即5.12×102),5.12E2(也是5.12×102)。必须指出的是,只有浮点类型的数值才可以使用科学计数法形式表示。例如,51200是一个int类型的值,但512E2则是浮点类型的值。
Java语言的浮点类型默认是double类型,如果希望Java把一个浮点类型值当成float类型处理,应该在这个浮点类型值后紧跟f或F。例如,
5.12代表一个double类型的值,占64位的内存空间,默认是double的;
5.12f或者5.12F才表示一个float类型的值,占32位的内存空间。
当然,也可以在一个浮点数后添加d或D后缀,强制指定double类型,但通常没必要。
Java还提供了三个特殊的浮点数值用于表示溢出和出错:
正无穷大:使用一个正数除以0将得到正无穷大,通过Double 或 Float类的POSITIVE_INFINITY 表 示 ;
负无穷大:使用一个负数除以0将得到负无穷大,通过Double 或 Float类的NEGATIVE_INFINITY表示;
非数:0.0除以0.0或对一个负数开方将得到一个非数,非数通过Double或Float类的NaN表示。
必须指出的是,
–所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的;
–NaN不与任何数值相等,甚至和NaN都不相等。
注意:
1.只有浮点数除以0才可以得到正无穷大或负无穷大,因为Java语 言会自动把和浮点数运算的0(整数)当成0.0(浮点数)处理。如果一个整数除以 0,则会抛出异常:ArithmeticException:/by zero(除以0异常)。

当程序中用到的数值位数特别多时,程序员眼睛“看花”了都看不清到底有多少位数。为了解决这种问题,Java 7引入了一个新功能:程序员可以在数值中使用下画线,不管是整型数值还是浮点型数值,都可以自由地使用下画线。通过使用下画线分隔,可以更直观地分辨数值中到底包含多少位。如下面程序所示:double a = 4.56_67777_56777;

布尔型:
布尔型只有一个boolean类型,用于表示逻辑上的“真”或 “假”。在Java语言中,boolean类型的数值只能是true或false,不能用0或者非0来代表。其他基本数据类型的值也不能转换成boolean类型。
提示:
Java规范并没有强制指定boolean类型的变量所占用的内存空 间。虽然boolean类型的变量或值只要1位即可保存,但由于大部分 计算机在分配内存时允许分配的最小内存单元是字节(8位),因此
bit大部分时候实际上占用8位。
boolean类型的值或变量主要用做旗标来进行流程控制,Java语言中使用boolean类型的变量或值控制的流程主要有如下几种。
➢ if条件控制语句
➢ while循环控制语句
➢ do while循环控制语句
➢ for循环控制语句
除此之外,boolean类型的变量和值还可在三目运算符(?:)中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值