Java语言基础-引用数据类型、类型转换、运算符

引用数据类型(字符串)

类型:String ;取值范围:任何“  ”之间的内容都是字符串,包括空格;字符编码:Unicode字符序列。

String类型的字面取值示例:String str1 = “Hello”;String str2 = “分布式架构师”;

类型转换

自动类型转换:两种类型互相兼容;目标类型大于源类型。

示例:

short s = 123;
        int i = s;//验证自动类型转换是否成功
        System.out.println(i);//123 成功;两种类型兼容;目标类型大于源类型。
        
        float f = 3.5F;
        double d = f ;
        System.out.println(d);//3.5
        
        byte b = 10;
        double d2 = b;
        System.out.println(d2);//10.0
        
        /*float d3 = 100.0;
        long l = d3;
        System.out.println(l);
        Error;无法完成自动类型转换;整数无法保留小数的精度。*/

强制类型转换

强制类型转换:两种类型相互兼容;目标类型小于源类型。

整数长度足够,数据完整。整数长度不够,数据截断。(符号位变化,可能变为负数)

字符与整数互转,数据完整。

通过在源类型前面加上(目标类型);达到强制转换的目的,但是,有可能失去精度,如:小数强转为整数,则失去精度,小数点之后的值,无法保留。

boolean的取值为true/false,不可与其他类型转换。

示例:

short  ss = 123;
        byte  bb = (byte)ss ;//强制类型转换
        System.out.println(bb);//123
        
        double d4 = 123.999;
        int in =(int)d4;//数据截断,失去小数精度
        System.out.println(i);//123

--------------------------------------------------------------------------

short s =256;
    byte b = (byte)s;//强转  s:256→0;s:257→1;
    System.out.println(b);//0
    /*
    short 2个字节 16位 
    257     0000 0001 0000 0001
    
    byte  1个字节 8位
    257     0000 0001[此处截断]0000 0001   结果是1;
    256     0000 0001[此处截断]0000 0000   结果是0;
    */
 --------------------------------------------------------------------------
    short  s2 = 128;
    byte b2 = (byte)s2;
    System.out.println(b2);//-128
    /*
    short 2个字节 16位 
    128     0000 0000 1000 0000
    byte 1个字节  8位
    128     0000 0000 1000 0000    此时首位是1即代表128,又代表负数,因此结果是-128。
    */

----------------------------------------------------------------------------

//字符与整数的转换
    char c = 65;
    
    short s3 = 97;
    char c2 = (char)s3;//整数强转字符
    System.out.println(c2);//c2 = a;
    
    byte b3 = (byte)c2;//字符强转整数
    System.out.println(b3);//97

运算符

算数运算符:两个操作数进行计算

+(加、求和);-(减、求差);*(乘、求积);/(除、求商);%(模、求余)

算术运算符:一元运算符(只有一个操作数)

++(递增,变量值+1);--(递减,变量值-1)

注意:单独使用放前后是没有区别的;非单独使用:在变量前,先进行变量自增/自减,再使用变量。

        int  g =5;
        int  h = g++; //++g先加再赋值;g++先赋值再加
        System.out.println(h);//5
        System.out.println(g);//6

赋值运算符:等号右边赋值给等号左边

=(直接赋值);+=(求和后赋值);-=(求差后赋值);*=(求积后赋值);

/=(求商后赋值);%=(求余后赋值)

  示例:

    int a = 10;
    a += 5;//a = a + 5;
    System.out.println(a);
    
    int d = 20;
    d %=3;
    System.out.println(d);//d = d % 3;>>>20/3,求余数,结果为2

关系运算符:两个操作数进行比较

>(大于); <(小于); >= (大于等于);   <=(小于等于);  ==(等于);   !=(不等于)

        int a  =10;
        int b  =20;
        System.out.println(a>b);//false
        
        boolean bool = a > b;
        System.out.println(bool);//false
        
        //--------------------
        
        int c = 10;
        int d = 5;
        System.out.println(c == d);//false
        System.out.println(c != d);//true

逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较

&&:与(并且);两个操作数,同时为真,结果为真

||:或(或者);两个操作符,有一个为真,结果为真

!:非(取反);意为“不是”,真即是假,假即是真

示例:

        boolean a =true;
        boolean b =true;
        System.out.println(a && b);
        
        boolean c = 10>5;
        boolean d = 8<20;
        System.out.println(c && d);
        
        //运算符:逻辑与;同时为真,结果为真
        double javaScore = 100.0;
        double webScore = 98.5;
        //                        true      &&          false
        System.out.println(javaScore==100 && webScore==100);//false;两门课程都是满分结果为true
        
        //运算符:逻辑或;有一个为真,结果为真
        System.out.println(javaScore==100 || webScore==100);//true;
        
        //运算符:逻辑非

----------------------------------------------------------------------------------------------------------

三元运算符:将判断后的结果赋值给变量

操作符: ? :

语义:布尔表达式?结果1:结果2

描述:当表达式结果为真,获得结果1;当表达式结果为假,获得结果2

示例:

        double score = 98.5;
        //1.三元运算符可以进行逻辑判断;
        System.out.println(score == 100 ? "真棒" : "加油");//加油
        
        //2.三元运算符可以在判断后为变量赋值
        String result = score == 100 ? "真棒" :"加油";
        System.out.println(result);//加油
        
        //3.赋值,判断,结果为true赋值给变量1,结果为flase赋值给变量2
        int i = score ==100.0? 1 : 2;
        System.out.println(i);//2
        //注意:得到的结果应该跟接收的变量的类型一致。

习题:

//判断b是不是a的因子
        int a = 10;
        int b = 5;
        boolean result = a % b ==0? true : false;
        System.out.println(result);
        
        //拆解个位、十位、百位
        int n = 123;
        int ge = n % 10;
        int shi = n / 10 % 10;//先缩小10倍,再对10求余数
        int bai = n / 100 ;
        System.out.println(ge);
        System.out.println(shi);
        System.out.println(bai);

猜你喜欢

转载自blog.csdn.net/m0_64563365/article/details/121587280