java的8大基本数据类型,表示范围是多少?

java的基本数据类型

 在Java中,共有8种基本数据类型,其中有4种整形,2种浮点型,1种char类型,1种表示真值的boolean型。

  1. 整型

整型用于表示小数点后没有值得类型,共有四种,主要是表示范围的差别:

类型所占空间取值范围
int32位/4字节[-231,231-1]即[-2147483648,2147483647],大概表示正负20亿的范围
short16位/2字节[-215,215-1]即[-32768,32767]即正负3万左右
long64位/8字节[-263,263-1]
byte8位/1字节[-128,127]
  • java与C/C++在整型上的区别?
    • java整型所占空间是固定的,可移植性强,相反C/C++会在不同机器上选择最高效的整型,导致一个可以在32位操作系统上运行的程序可能在16位系统上无法运行
  • int知识点
    • 为什么负值比正值多表示一位?
      • 因为在计算机中有0000…00(+0)与1000…00(-0)都表示0,但显然,我们不需要2个0,所以,用-0来表示最小的那一位,所以负数比正数多表示一位。
    • 为什么正数的最大值是2^31-1?
      • 一个int是32位,即32个二进制位,由于要表示正负,所以要去掉一位标志位,即用来表示数据的位数为31,所以最大值应该是011…(共31个1)…11,最大值再加1即为231,所以,最大值为231-1
    • 使用中怎么获取最大值最小值?
      • Integer.MIN_VALUE获取最小值
      • Integer.MAX_VALUE获取最大值
      • Integer.SIZE获取int位数
  • 整型表示方法
    • long类型:200000000L2000000l即在数字后加上L或者l
    • 2进制:0b10010B1001即在数字前加上0b或者0B
    • 16进制:数字前加0X0x
    • 1_000_000可在数字中加下划线,使其更加直观。
  1. 浮点类型

 java中的浮点型遵循IEEE754规范,采用一位符号位、多位指数位、多位位数位的形势存储数据。

类型所占空间可表示小数位
float4字节6-7位小数
double8字节15位小数
  • 由于float的精度只有double类型的一半,所以通常情况下都用double类型,float在很多情况下并不适用。
  • 表示方法
    • 3.14便表示一个double类型的小数,不需要加任何修饰
    • 3.14f3.14F表示float类型小数
  • 溢出与出错情况表示
    • Double.NEGATIVE_INFINITY表示-Infinity(负无穷)
    • Double.POSITIVE_INFINITY表示Infinity(正无穷)
    • Double.isNaN(3.14)判断一个值是否是一个数
  • 由于浮点数采用IEEE规范来存储,即采用指数加位数的形势来表达一个数,所以很难把一个十进制的数表示为他本身,举个例子2.00-1.10的运算结果为0.8999999999999999,总有无法舍弃的小数,所以在涉及到必须精确无比的计算时,不能用double,可以使用大数运算类BigDecimal.
  1. char类型

 java采用了UTF-16编码,而char类型则表示了UTF-16编码的一个代码单元,表示方法如下:

  • 'A'表示的是一个字符,也可以用16进制数来表示,'A'的16进制为'\u0041'
  1. boolean类型

 boolean类型表示逻辑判断有truefalse两个值

  • 值得注意的是,与C++/C不同,在java中,0不再表示false,非0值也不再表示true,这使得一些在C中很难发现的bug在java中不会发生。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值