美文网首页
Java se 1.2 数据类型转换

Java se 1.2 数据类型转换

作者: 起名字真难难难 | 来源:发表于2019-12-06 14:01 被阅读0次

    数据类型转换

    数据类型不一样时,会发生类型转换

    自动类型转换:将取值范围小的类型自动提升为取值范围较大的类型。

    (小转大可自动,大赚小不可)

    public class Demo01{
        public static void main(String[] args){
            int a=10;
            short b=2;
            int result=a+b;
            System.out.println(result);
        }
    }
    
    自动转换结果

    转换规则:byte、short、char-->int-->long-->float-->double

    强制类型转换:将取值范围较大的类型强制转换成取值范围较小的类型。

    特点:代码需进行特殊格式处理,不能自动完成。(右边加括弧,括弧里面填转换类型)
    格式:范围小的类型 范围小的变量名=(范围小的类型)原本大的数据
    int num=(int)10000L;
    注:不推荐使用,会造成精度损失、数据溢出。

    精度损失:浮点转化成整数,直接取消小数点

    数据损失:强制转换,例如int转换成short,砍掉两个字节,数据丢失。

    public class Demo01{
        public static void main(String[] args){
            int a=10;
            short b=2;
            short result=a+b;
            System.out.println(result)
    
    强制转换数据损失

    运算

    1、byte/short/char可进行数学运算

    char进行运算时,会根据一定规则翻译成一个数字。一般根据ASCII码或者Unicode码。Unicode码前127位与ASCII码一样。

    public class Demo01{
        public static void main(String[] args){
            char zifu='A';
            System.out.println(zifu+1);
       }
    }
    
    运算结果

    这里的A在ASCII种对应的数字就是65。

    2、byte/short/char运算时,首先会提升为int。

    public class Demo01{
        public static void main(String[] args){
            //char zifu='A';
            //System.out.println(zifu+1);
            byte num1=40;
            byte num2=50;
            int result=num1+num2;
            System.out.println(result);
        }
    }
    
    首先提升结果

    最后得出的结果是byte-->int

    3、boolean类型不能发生数据类型转换
    常记:0-->48、A-->65、a-->97

    运算符

    “+”:数字相加 或 连接表达式

    注:一旦有不同类型数据相加,结果的类型是范围大的那个
    int+double-->double+double=double
    优先级问题   string+int+int=string 、string+(int+int)=string+int

    自增++、自减--

    使用方法
    单独使用:a++与a--无区别
    混合使用:++a 变量立刻+1,先加后用

    int a=1;
    System.out.println(++a);
    

    输出的结果是2!

    a++先使用原来的数值,先用后加

    int a=1;
    System.out.println(a++);
    

    输出的结果是1!
    注:只有变量时才用自增、减,常量不可用。

    赋值运算符

    += a+=1-->a=a+1
    -= b-=1-->b=b-1

    比较

    1、比较运算符结果是boolean值
    2、进行判断时不可连写 1<x<3是错误写法

    逻辑

    与(并且)&&
    或(或者)||
    非(去反)!
    &&和||具有短路效果
    根据左边判断结果得到最终结果。
    &&:左边是false,结果一定是false。||:左边是true,结果一定是true。

    一、二、三元函数符

    一元函数符:只需一个数据 去反、自增、自减
    二元:加法、赋值
    三元:数据类型  变量名称=条件判断?表达式A:表达式B

    int a=10;
    int b=2;
    int max;
    int max=a>b?a:b
    

    注:1、同时保证两个选项符合数据类型要求
    int num=3>4?2.5:3这就是错误的
    2、三元运算符结果必须被使用,不能直接写。

    相关文章

      网友评论

          本文标题:Java se 1.2 数据类型转换

          本文链接:https://www.haomeiwen.com/subject/ystegctx.html