基本数据类型

本文深入讲解Java中的8种基本数据类型,包括4种整型、2种浮点型、1种字符型和1种布尔类型。详细介绍每种类型的特点、存储需求及取值范围,并解释类型之间的自动转换和强制转换过程。

    java是强类型语言,必须为每一个变量声明一种类型。

    一、共有8种基本类型:4种整型,2种浮点型,1种字符型,1种布尔类型。位(bit)是计算机最小单位,用0或1表示,也就是2进制。1个字节(byte)是8位。

    1. 整型:表示没有小数部分的数值,可以是负数。

类型存储需求取值范围
byte1字节-128~127
short2字节-32768~32767
int4字节-2147483648~2147483647(正好超过20亿)
long8字节-9223372036854775808~9223372036854775807

    通常情况下,int最常用。特殊情况下,例如地球上的居住人数,那就要使用long,要加后缀L(推荐)或者l。byte和short用于特定场合,例如底层文件处理


    2. 浮点类型:表示有小数部分的数值,可以是负数。不能出现正无穷大、负无穷大、NaN(不是一个数字)的情况。

类型存储需求取值范围
float4字节大约±3.40282347E+38F(有效位数为6~7位)
double8字节大约±1.79769313486231570E+308(有效位数为15位)

    double的数值精度是float的两倍,通常情况下都采用double。如果需要使用float类型,要加后缀F(推荐)或者f。没有后缀的浮点型数值,默认为double类型


    3. 字符型char:占2字节。表示单个字符,用单引号括起来,例如'A',但有些Unicode字符需要两个char值。在java中,char类型描述了UTF-16编码中的一个代码单元。不建议在程序中使用char类型,除非确实需要处理UTF-16代码单元。最好将String作为抽象数据类型。


    4. 布尔类型boolean:只有true(成立)和false(不成立)两个值,用来判断逻辑条件。


    二、相互间的转换

    b38e5aaaeb997677e194780ce1bdef1d56a5f10e

    以上都是小转大,属于自动转换,其中:实线箭头表示无精度损失的转换,虚线箭头表示可能有精度损失的转换。如果是大转小,需要强制类型转换,也有可能有精度损失。

int a = 10;  
double b = 10.5;  
/**  
 \* ①a从int类型自动转换为double类型  
 \* ②计算a+b  
 \* ③得到double类型的值  
 */  
double num0 = a + b;  
System.out.println(num0);// 输出20.5  
/**  
 \* ①②③相同  
 \* ④double类型的值赋给int类型,强制类型转换。  
 */  
int num1 = (int)(a + b);  
System.out.println(num1);// 输出20,出现精度丢失的情况。

    对两个数值进行运算操作,需要先将两个操作数转换为同一类型,然后再进行计算:

  •     如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
  •     如果其中一个操作数是float类型,另一个操作数将会转换为float类型。
  •     如果其中一个操作数是long类型,另一个操作数将会转换为long类型。
  •     都不是上述类型,两个操作数都将被转换为int类型。

     即double>float>long>int,但long占8个字节,float占4个字节,但为什么实际上float会比long大呢? https://blog.youkuaiyun.com/hexu8080/article/details/53924178
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值