java中的数据结构及数据类型转换

基本数据类型(4类8种)

数据类型关键字内存占用取值范围说明
字节byte1个字节-128 ~ 127
短整型short2个字节-32768 ~ 32767
整型int(默认)4个字节-231 ~ 231-1(21个亿)
长整型long8个字节-263 ~ 263-)
单精度浮点数float4个字节1.4013E-45 ~ 3.4028E+38能表示7为小数
双精度浮点数double(默认)8个字节4.9E-324 ~1.7977E+308能表示16位小数
字符型char2个字节0 ~ 216-1
布尔型boolean1个字节true、false

引用数据类型(5种)

  1. 数组
  2. 接口
  3. 枚举
  4. 注解
  5. 记录

数据类型转换

  1. 什么时候会发生数据类型转换?
    ① 等号左右两边类型不一致时
    ② 不同类型的数据做运算时
  2. 什么时候会发生自动类型转换?
    ① 将取值范围小的数据类型赋值给取值范围大的数据类型时:小自动转大
    ② 取值范围小的数据类型与取值范围大的数据类型做运算时:小自动转大
  3. 什么时候会发生强制类型转换?
    ① 将取值范围大的数据类型赋值给取值返回小的数据类型时
  4. 基本数据类型按范围从小到大排序
    byte、short、char < int < long < float < double
  5. 强制数据类型转换案例
    public class HelloWorld {
    	public static void main(String[] args) {
    		float num1 = 10.5; // 10.5默认是double类型,需要强制转为Float类型,否则会报错
    		float num2 = 10.5F; // 声明是float类型
    		float num3 = (float)10.5; // 强转
    	}
    }
    
  6. 强转注意事项
    ① 强转可能会导致精度损失、数据溢出问题
    ② byte、short定义的时候如果等号右边是整数常量并不超出取值范围jvm自动转型了
    ③ byte、short定义的时候如果等号右边有变量参与,自动提升为int,将结果再次赋值给byte、short变量,需要手动强转
    ④ char类型参与运算会提升为int型,并转为ASCII对应的数值,如果ASCII中没有,则会去unicode中查找
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值