Java之运算符

一、运算符

对字面量或者变量进行操作的符号

二、表达式

用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。

不同运算符连接的表达式体现的是不同类型的表达式。如:  

        int a =10;

        int b = 20;

        int c = a+b;

+        :(算术)运算符

a+b    :(算术)表达式

三、算术运算符

 //1、加
        System.out.println(1+2);//3
                    System.out.println(1.1+1.01);//2.1100000000000003
        //2、减
        System.out.println(6-4);//2
        System.out.println(1.1-1.01);//0.09000000000000008
        //3、乘
        System.out.println(2*3);//6
        System.out.println(2.1*3.21);//6.7410000000000005
        //4、除
        //整数参与计算结果为整数
        System.out.println(6/2);//3
        System.out.println(10/3);//3
        System.out.println(10.0/3);//3.3333333333333335
        //5、取余(取模)
        System.out.println(10%2);//0
        System.out.println(10%3);//1

1、可以看到,在使用小数参与运算时可能导致结果不精确

2、类型转换

(1)、隐式转换(自动类型提升)

取值范围小的数值-->取值范围大的数值

    int a = 10;
    double b = a;//10.0

隐式转换的两种提升规则: 

1、取值范围小的,和取值范围大的进行运算,小范围提升为大范围,再进行运算

2、byte short char三种数据类型的数据在运算时,都会先提升为int,再进行运算

(2)、强制转换

取值范围大的数值-->取值范围小的数值

1、如果把一个取值范围的数值,赋值给取值范围的变量,是不被允许赋值的。此时便需要加入强制转换

2、格式:目标数据类型 变量名=(目标数据类型)被强制转换的数据;

    double a = 10.01;
    int b = (int)a;//10

    //需要注意数据的大小范围

 3、字符串的"+"

1、当"+"操作中出现字符串时,"+"代表字符串连接符,而不是算术运算符。

"+"会将前后数据进行拼接,并产生一个新的字符串。

2、当进行连续"+"操作时,从左到右逐个执行

    System.out.println("123"+123);//123123
    System.out.println(1+99+"年计划");//100年计划

4、字符相加

字符相加通过把字符转为ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)表完成。

ASCII码一览表,ASCII码对照表 (biancheng.net)

四、自增自减运算符

符号        作用                说明

 ++            加              变量的值加一

  --             减              变量的值减一    

++和--既可以放在代码前面,也可以放在代码后面              

        int a=6;
        int b=a++;    //先用后加            
        System.out.println(b);//6
        int c=++a;    //先加后用
        System.out.println(c);//8

 五、赋值运算符

分类

Java之运算符_第1张图片

扩展的赋值运算符隐含了强制类型转换

六、关系运算符(比较运算符)

 分类

Java之运算符_第2张图片

关系运算符的结果都是boolean类型,只有true和false

"=="和"="不同 

七、逻辑运算符

 分类

Java之运算符_第3张图片

 短路逻辑运算符(提高代码运行效率)

Java之运算符_第4张图片

$ | :无论左边为true或者false,右边都要执行

&& ||:如果这边能确定整个表达式的结果,右边便不会执行

八、三元运算符

 格式:关系表达式?表达式1:表达式2;

        int b =1;
        int c =2;
        System.out.println(b>c?true:false);//false

九、运算符优先级

Java之运算符_第5张图片

你可能感兴趣的:(java,开发语言)