运算符:
两原一封
–两个原则:
1、不同类型数据做运算时,一定会先转换成较大类型范围
再做运算
2、byte,short,char这些类型运算时,一定先转换成int类型
在做运算,结果是int类型
–封:
一定要注意封闭式运算

算术运算符:+,-,*,/,%,++,–

/:
1、参与的类型都是整型时,做取整运算
即,商 n 余 m ,输出 n ;
将范围变成一个固定值,可以用除法取整;
2、只要有一个浮点数参与,就会做类似精确运算

%:
取余运算符号,也叫取模运算符号
即,商 n 余 m ,输出 m ;
1、参与运算的都是整数时,余数是精确值
2、有浮点数参与时,余数不一定是精确值,但接近精确值

取余运算一般被用来判断某个数能否被另外一个数整除
取余算法的结果取正取负,只看被除数
被除数为正,结果为正
被除数为负,结果为负

++/–:
是自增自减运算符
符号与变量一起使用,表示自动+1或-1;
如:

a++/++a  <=>  a = a+1
    a--/--a  <=>  a = a-1

与变量在一起,不与其他变量连用时(单独使用)
此时,变量一定会+1或-1;
自增自减运算与其他符号连用时,需要考虑表达式的值
a++/a–/++a/–a 整体看成表达式
符号(++/–)在前,先运算(自增自减),再赋值(给表达式)
符号(++/–)在后,先赋值(给表达式),再运算(自增自减)

/**
 运算符:(两原一封)
 1.算数运算符:+,-,*,/,%,++,--
*/

public class CalDemo01{
    public static void main(String[] args){
        byte a = 1;
        byte b = 2;
        byte c = (byte)(a+b);//a+b为int类型,再强制转换成byte

        short s1 = 1;
        char c1 = 'A';
        int result = s1+c1;//两个变量先转换成int类型,再运算
        System.out.println(result);//66
        short s2 = (short)(s1+c1);
        System.out.println(s2);//66
        char c2 = (char)(s1+c1);
        System.out.println(c2);//B
        int m1 = 10;
        long m2 = -1;
        long m3 = m1-m2;//m1转成long再与m2运算,结果是long类型
        System.out.println(m3);//11

        int n1 = 10;
        double n2 = 2;
        double n3 = n1*n2;
        System.out.println(n3);


        System.out.println("----------------------------");
        int x1 = 10;
        int x2 = 3;
        int x3 = x1/x2;
        System.out.println(x3);
        x3 = x2/x1;
        System.out.println(x3);

        long x4 = x2/10l;
        System.out.println(x4);

        double x5 = 2.5;
        long x6 = 5;
        double x7 = x6/x5;
        System.out.println(x7);
        double x8 = 3.1415926;
        int x9 = 2;
        double x10 = x8/x9;
        System.out.println(x10);


        System.out.println("----------------------------");
        int y1 = 3;
        int y2 = 10;
        int y3 = y1%y2;
        System.out.println(y3);//3
        y3 = y2%y1;
        System.out.println(y3);//1


        float y4 = 2.7f;
        float y5 = y4%y1;
        System.out.println(y5);//2.7
        y5 = y1%y4;
        System.out.println(y5);
        System.out.println("----------------------------");
        /*

        */
        int z = 1;
        int r = ++z;
        System.out.println(z+"  "+r);
        int q = 1;
        int v = ++q;
        System.out.println(v);//2
        q = 1;
        v = q++;
        System.out.println(v);//1
        q = 10;
        v = --q;
        System.out.println(v);//9
        q = 100;
        v = q--;
        System.out.println(v);//100

        int w = 10;
        int p = 5;
        w = w++ + ++w + p-- + --p - w;
        //  10  +  12 + 5   +  3  - 12 = 18
        //w 11     12
        System.out.println(w);//18
        System.out.println(p);//3

        System.out.println("---------------------");
        int b01 = -3;
        int b02 = -2;
        int b03 = b01/b02;
        System.out.println(b03);
        int b04 = b01%b02;
        System.out.println(b04);

    }
}

运算符之关系运算符:
<,>,<=,>=,==,!=
用来判断条件是否成立,一般都用在分支结构或循环结构中
运算符之逻辑运算符:
当有多个条件进行判断是否成立时,需要使用逻辑运算符
即 &&, ||, !

数学:      1<a<5
JAVA语言:  a>1&&a<5

&&: 用于判断多个条件是否同时成立
一假则假
||: 用于判断是否存在条件成立
一真则真
!: 用于条件的否定

又称之为:短路运算符
当使用&&和||运算符时,第一个条件能确定结果时,
不执行后面的条件,这种现象我们视之为短路现象
单个符号的 &(与) |(或)没有短路现象——一般不使用

运算符之赋值运算符 :
=,赋值运算,给前面的变量赋值

扩展赋值运算符
+=,-=,*=,/=,%=
a+=b –> a = a+b;
其余的同理

运算符之字符串拼接符号:
+
+前后只要有一个字符串类型就做拼接操作
结果是字符串类型

运算符之三目运算符(三元运算符):
关系运算和逻辑运算统称为条件运算

变量类型名 变量 = 条件表达式(判断)? 值1(true):值2(false)
变量类型:需要与值1或值2类型相同
    而值1,值2类型要么相同
    要么可以相互转化
例:
int a = 1;
int b = 2;
int c = a>b?a:b;
System.out.println("c:"+c);//c:2
int min = a<b?a:b;
System.out.println("min:"+min);//min:1

嵌套: 条件表达式?(三目运算):(三目运算)