java se 回顾 (二)

一、类型转换

  • 自动类型转换
    类型范围小的变量,可以直接赋值给类型范围大的变量。

在这里插入图片描述
在这里插入图片描述

  • 强制类型转换
package com.study;

public class TypeDemo03 {


    public static void main(String[] args) {

        //理解强制类型转换,并使用
        /*
        int a=20;
        byte b =a;//报错
        问题:类型范围大的数据或者变量,不能直接赋值给类型范围小的变量,可以使用强制类型转换
        注意:强制类型转换会导致数据溢出或者丢失。

         */


        int a = 20;
        byte b = (byte) a;
        System.out.println(b);


        int i =1500;
        byte j= (byte) i;
        System.out.println(j);//数据溢出

        float score = 99.5F;
        int it = (int) score;
        System.out.println(it);//抹除小数部分输出99


    }

}

二、运算符

  • 基本算数运算符
    对字面量或者变量进行操作的符号
package com.study.operator;

public class OperatorDemo01 {

    public static void main(String[] args) {
        //基本的算术运算符:+-*/%
        int a = 10;
        int b = 3;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b); //3
        System.out.println(a % b); //1

        //注意:如果2个整数做除法,其结果一定是整数,因为最高类型是整数。
        System.out.println(3 / 2);//1
        System.out.println(3 / 2 * 1.0);//1.5
    }
}

数据拆分案例:将一个三位数拆分;

package com.study.operator;

import java.util.Scanner;

public class OperatorTest1 {

    public static void main(String[] args) {
        //需求:将一个三位数,拆分成个位,十位,百位,打印在控制台。

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要拆分的三位数:");
        int date = sc.nextInt();
        //个位:
        int ge = date % 10;
        System.out.println(ge);

        //十位
        int shi = date / 10 % 10;
        System.out.println(shi);

        //百位
        int bai = date / 100;
        System.out.println(bai);


    }


}

  • +符号作连接符
    "+"符号与字符串运算的时候是用作连接符的,其结果必然是一个字符串。
package com.study.operator;

public class OperatorDemo02 {

    public static void main(String[] args) {

        //+符号作连接符的识别
        int a = 5;
        System.out.println("abc" + 'a');//abca
        System.out.println("abc" + a);//abc5
        System.out.println(5 + a);//10
        System.out.println("abc" + 5 + 'a');//abc5a
        System.out.println(15 + "abc" + 15);//15abc15
        System.out.println(a + 'a');//102
        System.out.println(a + "" + 'a');//"5"+'a'=5a
        System.out.println(a + 'a' + "ssj");//102ssj
        System.out.println("ssj" + a + 'a');//ssj5a
        System.out.println("ssj" + (a + 'a'));//ssj102

    }

}

  • 自增自减运算符
    在这里插入图片描述
    在这里插入图片描述
package com.study.operator;

public class OperatorDemo03 {

    public static void main(String[] args) {

        //自增自减运算符:++ --
        int a = 10;
        a++;//a=a+1
        //++a; //a=a+1
        System.out.println(a);//11

        int b = 10;
        b--; //b=b-1
        // --b; //b=b-1
        System.out.println(b);//9

        System.out.println("------------------------------");
        //在表达式中或者非单独使用的情况:++ --在变量前后存在区别
        int i = 10;
        int j = ++i; //先把i+1再把i赋值给j
        System.out.println(i);//11
        System.out.println(j);//11


        System.out.println("--------------------------------");
        int i1 = 10;
        int j1 = i1++;//先把i1赋值给j1,再把i1加一
        System.out.println(i1);//11
        System.out.println(j1);//10

        int a1 = 10;
        int b1 = --a1;//先把a1-1,再把a1赋值给b1
        System.out.println(a1);//9
        System.out.println(b1);//9

        System.out.println("------------------------------------");
        int m = 10;
        int n = m--;//先把m赋值给n,再把m减一
        System.out.println(m);//9
        System.out.println(n);//10

    }

}

自增自减案例:

package com.study.operator;

public class OperatorDemo04 {

    public static void main(String[] args) {

        //自增自减案例

        int k = 4;
        int p = 6;
        int res = k++ + ++k - --p + p-- - k-- + ++p + 2;
        System.out.println(k);//5
        System.out.println(p);//5
        System.out.println(res);//11


    }
}

  • 赋值运算符
    基本赋值运算符(“=”),eg:int a=5;
    扩展赋值运算符
    在这里插入图片描述
package com.study.operator;

public class OperatorDemo05 {

    public static void main(String[] args) {

        //赋值运算符的使用:= += -= *= /= %=

        int a = 10;
        int b = 200;
        a += b; //a=(int)a+b;
        System.out.println(a);//210


        byte i = 20;
        byte j = 10;
        i += j;//i=(byte)j+i;
        System.out.println(i);//30

    }


}

  • 关系运算符
    是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(true、false)
    在这里插入图片描述
  • 逻辑运算符
    在这里插入图片描述
package com.study.operator;

public class OperatorDemo07 {

    public static void main(String[] args) {
        //使用逻辑运算符,并能选择合适的逻辑运算符解决问题
        double size = 9.8;
        double storage = 6;
        //需求:尺寸大于等于6.5,内存大于等于8
        //注意:必须前后都是true结果才是true
        System.out.println(size >= 6.5 & storage >= 8);//false

        //需求:要么尺寸大于等于6.5,要么内存大于等于8
        //注意:只要有一个是true,其结果就是true
        System.out.println(size >= 6.5 | storage >= 8);//true

        System.out.println(!true);//false
        System.out.println(!false);//true


        //逻辑异或:必须2个不同结果才是true
        System.out.println(true ^ false);//true
        System.out.println(true ^ true);//false
        System.out.println(false ^ false);//false


    }
}

  • 短路逻辑运算符
    在这里插入图片描述
package com.study.operator;

public class OperatorDemo07 {

    public static void main(String[] args) {
        //使用逻辑运算符,并能选择合适的逻辑运算符解决问题
        double size = 9.8;
        double storage = 6;
        //需求:尺寸大于等于6.5,内存大于等于8
        //注意:必须前后都是true结果才是true
        System.out.println(size >= 6.5 & storage >= 8);//false

        //需求:要么尺寸大于等于6.5,要么内存大于等于8
        //注意:只要有一个是true,其结果就是true
        System.out.println(size >= 6.5 | storage >= 8);//true

        System.out.println(!true);//false
        System.out.println(!false);//true


        //逻辑异或:必须2个不同结果才是true
        System.out.println(true ^ false);//true
        System.out.println(true ^ true);//false
        System.out.println(false ^ false);//false

        System.out.println("-----------------&& 和 & 以及 || 和 | 的区别---------------------");
        int a = 10;
        int b = 20;
        System.out.println(a > 100 && ++b > 10);//false
        System.out.println(b);//20

        int i = 10;
        int j = 20;
        System.out.println(i > 100 & ++j > 10);//false
        System.out.println(j);//21

        int m = 10;
        int n = 20;
//      System.out.println(m > 100 || ++n > 20);//true
        System.out.println(m > 9 || ++n > 21);
        System.out.println(n);//20


    }
}

在这里插入图片描述

  • 三元运算符
    在这里插入图片描述
package com.study.operator;

public class OperatorDemo08 {

    public static void main(String[] args) {

        //使用三元运算符,并理解其流程

        double score = 98;
        String res = score >= 60 ? "通过" : "不通过";
        System.out.println(res);

        //需求:从下列2个数中找出最大值
        int a = 9598494 * 2;
        int b = 5894649 * 3;
        int max = a > b ? a : b;
        System.out.println(max);

    }
}

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值