今天学习了Java的各类运算符及数据类型转换

一、算术运算符

运算符

含义

+

求和

-

相减

*

乘积

/

商(取整除或取商)

%

求余数(求模)

++

自加一

--

自减一

           ++:单目运算符,自加1的操作,如果放在前面,先自加,再参加运算
                如果放在后面,先参加运算,再自加
           --:单目运算符,自减1的操作,如果放在前面,先自减,再参加运算
                如果放在后面,先参加运算,再自减

public class OperatorDemo{
    public static void main(String[] args){
        int a = 1;
        int b = 2;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
        System.out.println(a++);
        System.out.println(--b);
}
}

二、赋值运算符

一个等于号=是赋值,两个等号==是关系运算符

三、扩展运算符

扩展赋值运算符:+=,-=,*=,/=

//扩展运算符
		int c = 10;
		//c加2的操作
		//两种写法得到的结果是一样的,所以建议大家都使用扩展运算符
		//c = c + 2;
		c += 2;

四、关系运算符

关系运算符: >,<,>=,<=,==,!=

前面几个就是数学中常用的大于,小于,大于等于,小于等于,这些就不需要再多说

“==”表示左边的值与右边的值是否相等

“!=”表示输出结果与!后面的结果相反

//关系运算符
		System.out.println(4 > 5);
		System.out.println(4 < 5);
		System.out.println(4 >= 5);
		System.out.println(4 <= 5);
		System.out.println(4 == 5);
		System.out.println(4 != 5);

五、逻辑运算符

逻辑运算符:&&,&,||,|

/*
		逻辑运算符:
			&&:短路与,自左向右执行,如果第一个表达式返回false,那么后面的表达式就不再执行
				&:逻辑与,自左向右执行,不管第一个表达式返回true还是false,后面表达式都会执行
			||:短路或,自左向右执行,如果第一个表达式返回true,那么后面的表达式就不再执行
				|:逻辑或,自左向右执行,不管第一个表达式返回true还是false,后面表达式都会执行
		*/
		
		System.out.println( 2 > 3 && 5 > 4);
		int i = 1;
		//System.out.println( 2 > 3 && i++ > 1);
		//System.out.println(i);//1
		System.out.println( 2 > 3 & i++ > 1);
		System.out.println(i);//2
		System.out.println( 2 > 3 || 5 > 4);
		System.out.println(!false);
		System.out.println(!true);
		System.out.println(!(2 > 3));

六、位运算符

位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)

>>:有符号右移,对正数而言,右移几位就是除几个2
            <<:有符号左移,对正数而言,左移几位就是乘几个2
            >>>:无符号右移

对于这些位运算符我不是特别了解,今天老于讲的我也不是听的很懂,所以这点我就不解释啦,仅作了解。

七、条件运算符

条件运算符 ?:

条件运算符:又叫三目运算符,当第一个表达返回为true,则取?后面的值,第一个表达式返回为false,则取:后面的值

System.out.println(2 < 3 ? 2 : 3);\\2
		System.out.println(false ? false : true ? false : true);\\false

 八、基本数据类型的转换

基本数据类型之间的转换:
1、自动转换(隐式转换)
      赋值运算符=左边数据范围大,右边数据范围小,并且一般是同一种数据类型的情况下,则会发生自动转换
 2、强制转换
       赋值运算符=左边数据范围小,右边数据范围大,并且一般是同一种数据类型的情况下,则必须使用强制转换
语法:(datatype)
强制转换可能会有数据精度的丢失

byte bb = 10;
		//bb = (byte)(bb + 2);
		bb += 2;
		System.out.println(bb);