类型转换(java基础)

由于Java是强类型语言,所以要进行有些运算的时候,需要进行类型转换

<------------------------------------------------->高
byte,short,char --> int --> long --> float --> double
(低 --> 高  代表着他们的容量   float和double比int和long高是因为小数的优先级大于整数)

运算中,不同类型的数据要进行类型转换,转化为同一类型,然后进行运算

运算实例

public class transformation {
    //类型转换
    public static void main(String[] args) {
        //强制转换   (类名)变量名   从高到低
       int i = 128;
        byte b = (byte)i;

        System.out.println("i===" + i);   //结果为128
        System.out.println("b===" + b);   //结果为-128  byte的范围是127到-128    出现了内存溢出的现象
        System.out.println("==============================================================");
       //自动转换        从低到高
        int a = 128;
        double c = i;
        System.out.println("a===" + a);   //结果为128
        System.out.println("c===" + c);   //结果为128.0
        System.out.println("==============================================================");

        /*
        * 注意点:
        *   1.布尔类型不能进行转换
        *   2.不能把对象类型转换为不相干的类型
        *   3.在高容量转换为低容量的时候, 是强制转换
        *   4.转换的时候可能会出现内存溢出或者精度问题
        * */
//        精度问题
        System.out.println((int)23.7);      //23
        System.out.println((int)47.76f);    //47
        System.out.println("===============================================================");

        //字符强转
        char f = 'a';       //每个字符都有相对的编码
        int d = f+1;
        System.out.println(f);  //a
        System.out.println(d);  //98
        System.out.println((char)d);  //b

    }
}

操作比较大的数时,要注意溢出问题

//操作比较大的数时,要注意溢出问题
//JDK7的新特性,数字之间可以用下划线进行分割
int money = 10_0000_0000;
int years = 20;
System.out.println("money =" + money);
int total = money*years;
System.out.println("total =" + total);      //-1474836480  计算的时候溢出了
long total1 = money*years;
System.out.println("total1 =" + total1);//-1474836480   默认类型是int,说明在计算之前就有问题
long total2 = money*((long)years);
System.out.println("total2 =" + total2);  //20000000000   先把year转化为long类型,再进行计算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值