—— 本文参照 Learn Java for Android Development (第三版)
相加运算符
在前面介绍的运算符里面有一些具有相加运算性质的运算符,比如加(+)和减(-),后加加(++)和后减减(--),前加加(++)和前减减(--),还有字符拼接符(+),加法运算返回的是两个变量的和,减法运算返回的是两个变量的差,可能是正也可能是负数。后加加是先把变量给人家,然后在进行加1的操作,同理可知后减减。前加加呢就是先将变量进行加1的操作再把变量给人家,同理可得前减减。字符拼接的话就是返回两个字符拼接在一起的新的字符串,比如"A"+"B"就返回"AB"。
上面提到的这些相加的运算很有可能导致运算结果向上或者向下溢出,比如两个比较大的32位的整形数字相加以后很可能就超出了32位,这种情况我们就称之为溢出,在JAVA里面是不会做溢出检查的。
java为字符串运算操作提供了一种比较特殊的向上转型的方式,当字符运算表达式中任何一个操作数不是字符的时候,java会先把非字符先转换为字符以后再进行运算,比如"A"+5,会先将5转换为"5",然后返回"A5"。
下面给出的例子可以让大家体验一下这些相加运算符:
public class addClass
{
public static void main(String[] args)
{
int age = 65;
System.out.println(age + 32);
System.out.println(++age);
System.out.println(age--);
System.out.println("A" + "B");
System.out.println("A" + 5);
short x = 32767;
System.out.println(++x);
}
}
代码都贴了那就一行一行看一下吧。
首先是定义了一个32位的整形age变量并且赋值为了65,然后就开始打印了,第一行的打印是age和32的和,第二行是age先加1再打印,注意这里age本身的值已经变为66了哦,第三行是age先输出再本身减1,第4行是输入两个字符串拼接以后的值,第5行就是上面讲的,最后一行有点特殊,可以猜一下会输出什么,然后我们自己跑一下这段代码看看实际会打印一些什么值:
javac addClass.java
java addClass
看到的结果是:
97
66
66
AB
A5
-32768
不知道猜对没,反正最后一行是溢出了。
Page 55