首页 > 技术文章 > Java基础07 基本运算符

wuye-bicycle 2021-07-15 23:14 原文

运算符

  • Java语言支持如下运算符:
    • 算术运算符:+,-,*,/,%,++,--
    • 赋值运算符:=
    • 关系运算符: >, <, >=, <=, ==, !=,instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符:&, | , ^,~,>>,<<,>>>(了解!!!)
    • 条件运算符: ?,:
    • 扩展赋值运算符:+=,-=,*=,/=

主要为前四个,后两个偷懒用,位运算符与位有关,了解就行

二元运算符 +,-,*,/

注意:

int a =10;
int b =20;
System.out.println(a/b); //0
这里会输出0,因为结果是int型的,把0.5省掉了
这时我们需要将其中一个转化成double型才能得出正确结果.
    System.out.println(a/(double)b); //0.5
public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //Ctrl  +  D :复制当前行到下一行
        int a =10;
        int b =20;
        int c =25;
        int d =25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);                                     //这里我们将b转换为double
        System.out.println(a/b); //0 因为是int型的,省掉了  System.out.println(a/(double)b); //0.5  正确
    }
}

数据运算时出现的几种情况

  1. 运算时,会先转换为当前值中最高的类型来计算
  2. 整数计算下:计算有Long参与数值类型变为Long.那么有double时,结果一定为double
  3. 特殊类型转换:byte、short、char用运算符运算后自动转型为int类型

证明:(详细看下方代码)

short c =10;
byte d =8;
char g ='a';
System.out.println((String)(c+d+g)); cannot cast 'int' to 'java.lang.String'  不能把int型转换为String
public class Demo02 {
    public static void main(String[] args) {
        long a = 1321231321321L;
        int b = 123;
        short c =10;
        byte d =8;
        float e =10.0f;
        double f =50.0;
        char g ='a';

        System.out.println(c+d+g);//类型转换:byte、short、char用运算符运算后自动转型为int类型

        System.out.println(e+f);//double
        System.out.println(a+b+c+d+e);//float     运算时,会先转换为当前值中最高的类型来计算
        System.out.println(a+b+c+d+e+f);//double
        System.out.println(a+b+c+d);//Long   整数计算下:计算有Long参与数值类型变为Long,那么有double时,结果一定为double
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int


        //System.out.println((String)(c+d)); cannot cast 'int' to 'java.lang.String'  不能把int型转换为String
    }
}

关系运算符 >,<,==,!=,%(取余)

关系运算符返回的结果: 正确,错误

取余:也叫模运算

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果: 正确,错误   布尔值
        //if

        int a = 10;
        int b = 20;
        int c = 21;

        //取余:也叫模运算
        System.out.println(c%a);//   结果为 1      相当于  c / a  21 / 10 = 2 .... 1

        System.out.println(a>b);  //false
        System.out.println(a<b);  //true
        System.out.println(a==b); //false
        System.out.println(a!=b); //true
    }
}

推荐阅读