Java基础之运算符

// 运算符和表达式
// 变量 使用 运算符链接就是表达式

/*
 * 运算符
 *   + - * / % ++ -- 同python基本一样 但是 如果 是整数 不会得到一个浮点
 * byte short char 在运算的时候会被自动提高到 int 类型,char类型和int类型的映射关系为 ascii unicode表
 *                 右侧的数据类型可以小于左侧,但是不能超过左侧的数据范围 没有超过的话隐式强转成左侧的
 *  + 运算在字符串上是拼接  这点和python 是一样的
 *    优先级别 String + int 会int直接转成字符串 这一点和python是不一样的
 *
 *
 *   ++ -- 自增 自减 ++num num++ --num num--
 *       1 单独使用 不和其他任何操作混合 自己独立成为一步骤
 *       2 混合使用  和其他操作混合 例如和赋值混合
 *       3 区别 :
 *           单独使用 ++num num++ 没区别
 *           混合使用 :
 *                   a ++num 那么变量立马+1 然乎拿着结果进行使用 先加后用
 *                   b num++ 那么首先使用本变量 然乎再让变量+1   先用后加
 *
 *  赋值运算符
 *    基本 同python
 *    复合 += -= *= %= /= 同python一样
 *    int a=33;
 *    a/=6    a=a/6
 *    a%=6    a=a%6
 *
 *  比较运算符
 *       == <> <= >= != 同python一致
 *
 *  逻辑运算符
 *        && 与 单个& 在python中用于集合取交集 并且python中的与是and
 *        || 或 python中是or
 *        ! 非  python 中的not
 *       且 & | 用于字符串 则实际转化为二进制
 *            & 若 相同位置 都为1 则为1 否则为0
 *            | 若 相同位置 有一个为1 则为1 都则为0
 *
 *       && || 具备短路效果 python中同样
 *
 *   三元运算符
 *      python a if a>b else b
 *      java a>b?a:b
 *              同时要注意 如果三元运算符 赋值给左侧变量 注意 返回值需要同左侧变量数据类型一致
 *                        并且返回结果要被使用 哪怕是用在打印语句中
 *
 * */

public class OperatorAndExpress {
    public static void main(String[] args) {
        testInt();
        testSelfAdd();
        testBoolean();
        System.out.println(threeOperator());
        testPrivate();
        testShort();
    }

    public static void testInt() {
        // 整数运算 如果出现带浮点的情况 下 会取整数位 其实就是拿到的商
        int a = 1234;
        float b = 1234;
        System.out.println(a / 1000 / 1000); // 直接得到0
        System.out.println(b / 1000);

        // 优先级
        String str1 = "Java";
        System.out.println(str1 + 10 + 20); // Java1020 整数强转字符
        System.out.println(str1 + (10 + 20)); // Java30 小括号优先级高

    }

    public static void testSelfAdd() {
        // 独立使用
        int num = 10;
        System.out.println(num);
        ++num;
        System.out.println(num);
        num++;
        System.out.println(num);
        // 混合使用
        // 先加后用
        int num2 = 20;
        System.out.println(++num2);
        System.out.println(num2);

        // 先用后加
        int num3 = 30;
        System.out.println(num3++);
        System.out.println(num3);
    }

    public static void testBoolean() {
        System.out.println(!true);
    }

    public static int threeOperator() {
        int a = 1;
        int b = 2;
        int c = a > b ? a + 1 : b - 1;
        return c;
    }
    private static void testPrivate(){
        System.out.println("in test testPrivate");
    }
    public static void testShort(){
        short a =5;
        short b =8;
        // short c =a+b; a b 都是int 所以c应该是int类型
        int c = a + b;
        System.out.println(c);

    }
}

  

posted @ 2021-06-25 15:07  Yuan_x  阅读(24)  评论(0编辑  收藏  举报