美文网首页
Java数据类型与运算符

Java数据类型与运算符

作者: 白玩VAC | 来源:发表于2019-03-28 22:57 被阅读0次

    隐式转换

    在这段代码中就发生了隐式数据类型转换,本来是byte数据类型的y因为与int x相加,byte被隐式提升为int;

    int x = 3 ; 
    byte y = 4 ;
    x = x + y ;
    ------------ 
    x = 7
    

    不同数据类型之间的运算

    byte与byte(short,char)运算,会提升为int数据类型,把int赋值给byte会损失精度.

    byte b1 = 3 ;
    byte b2 = 4 ; 
    byte b3 = b1 + b2  ; //报错,因为b1 + b2过程中会升到int数据类型,不可以赋值给byte类型的b3;
    byte b4 = 4 + 3 ;  //正常,并不会报错;
    System.out.println ( 'a' + 1 ) ;  //会输出98是因为在ASCII码中,字符a的值为97;
    ---------------------------------------
    98
    

    强制转换

    在值前加(byte)强制设定byte数据类型.

    int x = 3 ; 
    byte b = 4 ; 
    b = (byte)(x+6) ;
    System.out.println((byte)(126+4));  //-126因为byte类型范围是-128~127
    
    

    字符串拼接

    任何数据类型用+与字符串连接会产生新的字符串.
    java用Unicode编码,用两个字节存储char,所以可以保存汉字.

    System.out.println("hello"+1) ; //输出hello1
    System.out.println(1+1+"hello"); //输出2hello
    

    自增(减)

    a++与++a的区别:两者都是自增,但a++是先赋值,后自增

    int a = 3;
    int b ;
    b = a ++ //因为是先赋值,在自增.所以此时b = 3 , a = 4 ; 
    b = ++a //如果执行这条语句,那么b = a = 4 ;
    

    下面一个较难的例子

    int x = 4 ; 
    int y = (x++)+(++x)+(x*10); //4+6+60 
    System . out .println (y); //输出70
    

    逻辑运算符

    &与&&的区别

    &&当左边为false的时候.就不会执行&&右边的式子了.这种现象也叫短路效果.但用&和用&&的效果是一样的.
    同样的|与||也有短路效果.

    System.out.println( 6&3) ; //&只有两者都为true(相同)才为true;
    //6 =>110
    //3 => 011 
    //6&3 => 2
    

    同理:6|3 => 7 (有true(1)则为true)

    位运算符

    "^" 异或
    "~ "取反
    "<<"左移,左移n位则为乘以2的n次幂.
    ">>"右移,右移n位则为除以2的n次幂.

    一个可以输入的demo

    import java.util.Scanner;    //导包
    class test {
        public static void main (String [] args){
           Scanner sc = new Scanner (System . in);
            System.out.println("请输入一个整数");
            int a = sc. nextInt ();
        }
    }
    

    相关文章

      网友评论

          本文标题:Java数据类型与运算符

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