学习笔记:java变量取值范围以及类型的提升与转换

本文详细介绍了Java中不同数据类型的取值范围,包括整型、浮点型、布尔型和字符型。对于整型,从byte到long的取值范围依次增大;浮点型如float和double的取值范围也分别给出;布尔型只有true和false两个值;字符型使用Unicode字符集。同时,文章还讨论了Java中的类型转换,包括自动类型转换和强制类型转换,以及在算术运算中的类型提升规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.取值范围

        1.1整形的取值范围:

类型字节二进制取值范围十进制取值范围
byte1字节-2 ^ 7 ~ 2 ^ 7-  1-128 ~127
short2字节-2 ^ 15 ~ 2 ^ 15-  1-32768 ~ 32767
int4字节-2 ^ 31 ~ 2 ^ 31-  1-2147483648 ~ 2147483647
long8字节-2 ^ 63~ 2 ^ 63-  1-9223372036854775808 ~9223372036854775807

        1.2.浮点型的取值范围:

类型字节负数取值范围正数取值范围
float4字节-3.4E + 38 ~ -1.4E-451.4E-45 ~ 3.4E+38
double8字节-1..7E + 308 ~ -4.9E-3244.9E-324 ~ 1.7E + 308

        1.3布尔类型的取值范围:

类型字节取值范围描述
boolean1字节true/false仅可描述真或假

        1.4字符类型的取值范围:

类型字节取值范围字符编码
char2字节0 ~65535Unicode字符集(万国码)

2.类型的提升与转换

        2.1:自动类型转换

                这一类转换需要满足以下条件:

                        1.两种类型相互兼容。

                        2. 目标类型大于源类型。 

                        3. Int 与 char可以互相转换。

                这种类型的转换是系统自动转换的,不会丢失数据。int与char 可以互相转换是因为char类型的数据在计算机中是以Unicode(万国码)的方式进行转换,当然要使用\u转义字符表示为万国码编码。

                另外英文字符可以直接使用十进制的方式转换。

        2.2:强制类型的转换:

                1. 把取值范围大的强制转换为小的。

                2.两种类型相互兼容。

                3.目标类型小于源类型。

                4.强制转换容易出现数据丢失,如double的小数被丢失                        

                这种类型的转换是强制的,语法格式为:(int)i;

        2.3:类型的自动提升:

                在算术运算时:

                1.两个操作数有一个为double,计算结果提升为double。         

                2.如果操作数中没有double,有一个为float,计算结果提升为float。

                3.如果操作数中没有float,有一个为long,计算结果提升为long。

                4.如果操作数中没有long,有一个为int,计算结果提升为int。

                5.如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。

                        

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值