java数据类型的转换和运算符

一、数据类型的转换

1.1分为自动转换和强制转换。

从取值范围小的数据类型转换为取值范围大的数据类型为自动转换,相反,从取值范围大的数据类型转换为取值范围小的数据类型称为强制转换,强制转换会导致数据丢失,一般不推荐使用。

1.2.1自动转换:byte→char→short→int→long→float→double,基本类型中的boolean类型不能转换

    例如:

            byte b = 10;

            int i = b; //byte类型转换为int类型

1.2.2强制转换:公式为:被转换后的数据类型 变量名 = (被转换后的数据类型)要被转换的数据

    例如:

            int i = 200;

            byte b = (byte)i;   //int类型强制转换为byte类型

二、算术运算符

    +  -  *  /  %  ++  --

    2.1  +代表加法或字符串连接

        (1)+做连接作用时,将一个字符串和其他数据连接起来

        (2) +遇到字符串,就会自动变成连接符,所有的数据都变成字符串类型

            例如System.out.println("5+5="+5+5);   //输出5+5=55

    2.2 i++和++i的区别

            ++写在变量前面和写在后面的区别:

             例如   a = 1;a++;和a=1;++a;两者的值都是2,即在变量自己单独计算时,++写在前面或后面没有区别

               当变量参与其他运算时,就有区别了:

              例如  j=i++;  ++后算,现将i的值赋给j,之后i再自己++

                       n=++m;  ++先算,算完得出的结果再赋值给n

                    可以简单的理解为++写在变量前面的就先算,写在后面的就后算

                    代码例子:

                    public class Operator_1{

                   public static void main(String[] args){
                int i = 5;
                int j = i++;
                System.out.println(i);            //6
                System.out.println(j);            //5

                int m = 5;
                int n = ++m;
                System.out.println(m);            //6
                System.out.println(n);            //6
                    }

                       }

三、赋值运算符

3.1用来完成数据的赋值(如 int a = 100;)

3.2 +=,-,*=,/=这样的赋值运算符包含了一个强制转换的操作,会将左右两边运算后的结果,强制类型转换后赋值给左边

                    int n = 10;

                    byte by = 20;

                    by += n; // 运算完毕后,by的值为byte类型30, 相当于代码 by = (byte)(by + n);

 

四、 比较运算符

4.1用来比较数据的大小(如 3>4),比较运算符也称为条件运算符。

4.2比较后的结果为布尔类型Boolean的值

4.3“==”两个等号代表比较是否相等,“=”一个等号代表赋值。

五、 逻辑运算符

5.1逻辑与& 和逻辑短路与&&:代表着并且的意思,左右两边都要条件成立,结果才为true;

5.2逻辑或| 和逻辑短路或||:代表着或者的意思,左边两边有一个条件成立,结果就为true;

5.3 逻辑非!:代表着相反的意思,原先是false,结果就为true;原先是ture,结果就为false;

5.4逻辑异或^: 左右两边条件结果相同,结果就为false,左右两边条件结果不同,结果就为true;

六、三元运算符

书写格式:(条件表达式)?表达式1:表达式2

根据判断条件运算结果,执行不同的表达式值;条件为true,执行表达式1,否则,执行表达式2。


            

猜你喜欢

转载自blog.csdn.net/zamaque/article/details/80218181