1.2 java运算符

1. 向上转型(隐式类型转换)

        当一个运算中包含多个数据类型时,会默认自动提升至大的数据类型:

        小————大

                        byte,short,char < int <long < float < double

                        byte,short,char默认转化为int

   如果基本类型的运算元素里有double的话,那么结果就是double,因为double最大(不包括boolean);

   如果基本类型的运算元素和String相连接,那么结果就是一个String

        举个栗子:

              String s = 2+3+”hi”+2+4;

              System.out,println(s);   // 5”hi”24

2. 向下转型(强制性类型转换)

        double pi = 3.14;

        int i7 = (int)pi;    //pi强制性转型为int类型

      

3. 算数运算符

                 

        java支持小数求余;

4. 赋值运算符

   赋值运算符中,+=-+*=/=,%=  中,包含隐式类型转换;而直接赋值的运算符=则没有。

   举个栗子:

      example1:

                             byte b = 7;

                             b = 7+1;   //程序报错,右边为int类型,而左侧byte类型;

                example1:

                             byte b = 7;

                             b +=1 ;    //+=符号自带隐式类型转换,因为输出为int型的8

5. 比较运算符

                

   1.用 == 来比较2个基本主类型数据是否相等:

                    int a = 3;

                    byte b = 3;

                    if(a == b)  //true

   2.用来判断2个引用是否指向同一个对象:

                    Test a = new Test();

                    Test b = new Test();

                    Test c = a;

                    if(a ==c)  //true

6. 逻辑运算符

               

    异或:当相同时输出为true,不同时输出为false

    短路与:当左侧为false时直接输出false,不再运行等号右侧;(效率较高,开发中常用)

    短路或:当左侧为true时直接输出true,不再运行等号右侧;(效率较高,开发中常用)

7. 运算符优先级

        

8. 三目运算符

   一般要求2个表达式语句的类型是一样的。

      

9. 位运算符

   仅int型可以进行位运算符,逻辑同上述3.6逻辑运算符,需要将数值转换成二进制后,从个数往高位起,一一对应进行运算。

        位运算符的左移<< 和右移>>  :

           

        负数移位过程:

        

10. 基本数据类型和字符串相连接

    当string的值和基本数据类型相连接后,连接后的整体会组成一个新的string值。

原文地址:https://www.cnblogs.com/May-study/p/7524649.html