Java基本数据类型自动转换规则

Java基本数据类型自动转换规则

Java的基本数据类型

Java提供了八种基本类型,包括数字类型(整形、浮点型),字符类型和布尔型。

  • 整型: short, int, long, byte
  • 浮点型:float, double
  • 字符型:char
  • 布尔型:boolean

Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或操作系统的改变而改变。

自动转换规则

  1. 布尔型不参与转换
  2. 转换规则(总): byte/char/short -> int -> long -> float -> double
  3. 转换规则(详)
    3.1 操作数之一为double,则另一个操作数先被转化为double,再参与算术运算;
    3.2 操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算;
    3.3 操作数均不为double或float,当操作数之一为long,则另一操作数先被转换为long,再参与算术运算;
    3.4 操作数均不为double、float或long,则操作数先被转换为int,再参与运算。
  4. 特殊:
    4.1 如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。
    4.2 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;

几道面试题

  1. 精确浮点数计算一般使用哪个类
    BigDicemal
  2. Java的char能否存汉字
    当然可以 Java的char类型占两个字节,存的是Uicode码,其中就包含了汉字。
  3. 如下代码有什么问题
public static void main(String[] args) {
        short s1 = 1;
        /* 
        s1+1运算时会自动转换为int型 赋值给short型会报错    
        Type mismatch: cannot convert from int to short
        需要强制类型转换
        */
        s1 =  (s1 + 1);
        
        /*
         += 系统会自动强制将运算结果转换为short类型
         */
        s1 += 1 ;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值