上篇文章我们刚刚研究了java中的变量和数据类型,这节课我们来介绍一下java中的运算符。java中的运算符主要分为:

算数运算符,赋值运算符,关系运算符,逻辑运算符,位运算符和三目运算符。我们分别来看。

1. 算数运算符

    算数运算符主要包括:+、-、*、/、%、++和--

    +:代表加法运算

    -:代表减法运算

    * :代表乘法运算

    /: 代表求商的运算

    %:代表取余数的运算

    这几个里边要注意,整数和整数相运算得到的还是整数,如果想要的到小数,那么需要让小数参与运算。详见如下的代码

System.out.println(15/2);//7,得到的结果还是整数
System.out.println(15%2);//1,取余数
System.out.println(1.0*15/2);//7.5,让小数参与运算
System.out.println(15/2*1.0);//7.0,注意运算顺序,第一步得到7,7*1.0=7.0

    接下来我来看一下++ 这个运算符,这个++ 运算符是分为前++和后++两种运算,而--的运算规则和++一样。

    前++和后++ 在单独使用的时候,运算规则是一样的,就是单纯的加1操作。

int a= 0;
int b= 0;
a++;
b++;
System.out.println(a);//1
System.out.println(b);//1

    但是在和其他运算符放到一起的时候,使用起来就是有区别的。前加加的运算规则是先加1在运算(包括赋值,打印等),后加加的运算规则是先运算后加1;

int a = 0;
int b = 0;
int c = a++;
int d = ++b;
System.out.println(a);//1,做了+1操作
System.out.println(b);//1,做了+1操作
System.out.println(c);//0,后加加,先做运算,这里的运算指的就是赋值,所以先赋值,c变成0,赋值后,a+1变成1;
System.out.println(d);//1,前加加,先+1,b变成1,再运算,即赋值运算,把1赋值给d

同时要注意,这个打印语句,也属于运算。

int a = 0;
int b = 0;
System.out.println(a++);//0,后加加,先运算,即打印,打印完了以后,a+1变成1
System.out.println(++b);//1,前加加,先加1,b变成1,在打印。

ok,减减的用法和加加一样。


2. 赋值运算符

    赋值运算符中,最常见的就是“=”,a=4;实际就是把等号右边的4赋值给等号左边的变量a,所以a的值变成了4.

    在赋值运算符中,除了等号以外,还有这么几种,

    分别是:+=,-=,*=,/=,%=

    这几个也是比较常见的,需要注意的是,赋值运算符的左边必须是变量,不能是常量。

    而这个+=的运算规则是这样的,

    a+=b;就相当于a=a+b;

    只不过在+=中实际上包含了一个强制的类型转换。这个我们通过一道经典的面试题来了解一下。

    short s = 1;

    s=s+1;和s+=1;哪句代码编译成功,哪句代码编译失败

    s=s+1;这句代码是有问题的,为什么呢,因为等号的右边是一个short类型的s和int类型(整数的默认类型是int)的1相运算,我们上节课提到过,byte,short,char不能直接运算,需要转换成int才能运算,所以,等号右边的结果实际上是int类型的,把一个int类型的变量赋值给一个short类型的s是会有问题的。

    s+=1;这句代码是没有问题的,因为我们说过+=运算符中包含了一个强制类型转换,所以也就相当于:

        s= (short)(s+1);

如果大家有其他疑问,可在文章下留言,如果觉得文章对自己的学习有帮助,请关注我的博客,后面会有更多的文章发布。也可以添加qq群:767375013(请备注CSDN)。里边有更多的文档视频资料,及线上免费公开课。希望和大家一起探讨。