Java基础教程之类型转换

1由于Java是强类型语言,所以有些类型需要强制转换,

低-----------------------------------------------高

baty,short,char->int->long->float->double

整数类型

byte占一个字节   范围-128到127

short占两个字节范围:-32768到32767

int占四个字节    范围2147483648-2147483647

long占八个字节  范围-9223372036854775808到9223372036854775807

浮点类型

float 只占四个字节

double占八个字节

 字符类型char只占两个字符

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

int i =128;
byte b=(byte) i;//内存溢出
//强制转换  (类型)变量名    高————————低
//自动转换 (类型)变量名      低---高
System.out.println(i);
System.out.println(b);
/*
注意点:
1.不能对布尔值进行转换,(因为布尔是按位的是完全不相干的)
2.不能把对象类型转换成不相干的类型,(比如说中不能把人变成猪吧)
3.在把高容量转换成低容量的时候,强制转换
4在转换的时候可能存在溢出,或者精度问题(在小数的时候能遇到)
 */
System.out.println("===================================");
System.out.println((int)99.77);//  99                  精度问题
System.out.println((int) -88.66f);// -88               精度问题
System.out.println("===================================");
char d='a';//a=98
int d1=d+1;
System.out.println(d1);
System.out.println((char) d1);//强转 所以d+1变成b所以输出结果变成了b

 

  //操作比较大的时候,注意溢出问题
//        JDK7以后数字类型之间可以用下划线分割
        int money=10_0000_0000;
        int years=20;
        int tota1=money*years;//-1474836480 ,计算的时候溢出了
        long tota2=money*years;//默认是int,转换之前已经存在问题了

        long tota3=(money*(long)years);//先把一个数转换为long
        System.out.println(tota3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值