原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2819621.html
英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html
简单赋值操作符
见到的最常用的操作符之一就是简单赋值操作符"=".它把值从操作符的右边赋予到左边:
int cadence = 0; int speed = 0; int gear = 1;
操作符也用以用来把对象赋予给对象引用,参考"创建对象".
算术操作符
java编程语言提供加,减,乘,除的操作符。通过基本运算中,认识它们是一个不错的方法。比较陌生的符号是'%',它执行除操作,返回余数作为结果。
+ 加法操作符 - 减法操作符 * 乘法操作符 / 除法操作符 % 求模操作符
下面的程序,ArithmeticDemo,测试算术操作符:
class ArithmeticDemo { public static void main (String[] args){ // result is now 3 int result = 1 + 2; System.out.println(result); // result is now 2 result = result - 1; System.out.println(result); // result is now 4 result = result * 2; System.out.println(result); // result is now 2 result = result / 2; System.out.println(result); // result is now 10 result = result + 8; // result is now 3 result = result % 7; System.out.println(result); } }
可以把算术操作符和赋值操作符结合起来,形成复合赋值。例如 x+=1;
和x=x+1;
两者都会把x+1的表达式结果赋值给x。
+操作符还可以用来连接两个字符串,如ConcatDemo程序所示:
class ConcatDemo { public static void main(String[] args){ String firstString = "This is"; String secondString = " a concatenated string."; String thirdString = firstString+secondString; System.out.println(thirdString); } }
程序的末尾,变量thirdString的值是"This is a concatenated string.",并输出到控制台。
一元操作符
一元操作符只要求一个操作数;有很多操作,例如 自增/自减 一个值,表达式取反,反转boolean值。
+ 一元+操作符;指示一个正值(但是数值默认是正的) - 一元-操作符; 表达式取反 ++ 自增操作符; 将值自增1 -- 自减操作符; 将值自减1 ! 逻辑操作符,反转boolean值
接下来的程序UnaryDemo,测试一元操作符:
class UnaryDemo { public static void main(String[] args){ // result is now 1 int result = +1; System.out.println(result); // result is now 0 result--; System.out.println(result); // result is now 1 result++; System.out.println(result); // result is now -1 result = -result; System.out.println(result); boolean success = false; // false System.out.println(success); // true System.out.println(!success); } }
自增/自减操作符可以使用在操作数的前面(前缀)和后面(后缀)。代码result++;和++result;两者都可以让result自增1.唯一区别是,前缀版本(++result)计算返回自增后的值,而后缀版本(result++)计算返回原始值。如果只是简单执行自增/自减,不用关心使用哪个版本。但是如果在一个更大的表达式中,使用自增/自减操作符,每个版本都会导致明显的不同结果。
接下来的程序,PrePostDemo,详解前缀/后缀一元操作符:
class PrePostDemo { public static void main(String[] args){ int i = 3; i++; // prints 4 System.out.println(i); ++i; // prints 5 System.out.println(i); // prints 6 System.out.println(++i); // prints 6 System.out.println(i++); // prints 7 System.out.println(i); } }