现在的位置: 首页 > 综合 > 正文

java基础–运算符(operator)

2013年08月24日 ⁄ 综合 ⁄ 共 1980字 ⁄ 字号 评论关闭

       java运算符分为4类:算术运算符,关系运算符,逻辑运算符,位运算符。

       1. 算术运算符

       java的算术运算符分为一元运算符和二元运算符。算术运算符的操作数必须是数值类型。

          (1) 一元运算符

               一元运算符只有1个操作数,一元运算符有:正(+),负(-),加1(++)和减1(--)4个。

               变量的自加(++),在变量的后面

int a = 3;
int b = a++;
		
System.out.println(a); //4
System.out.println(b); //3

              以上过程,其实分为2步:

int a = 3
int b = a; //3
a = a + 1; //4

              变量的自加(++),在变量的前面

int a = 3;
int b = ++a;
		
System.out.println(a); //4
System.out.println(b); //4

              以上过程,其实分为2步:

int a = 3;
a = a + 1; //a = 4
int b = a; // b = 4

           
 自减(--)和自加(++)一样,其实只要看运算符在变量的前后位置,在前面变量先加上1,再使用该变量;如果在变量后面,那么先使用该变量,然后该变量再加上1.

          (2) 二元运算符

             二元运算符有2个操作数,二元运算符有:加(+),减(-),乘(*),除(/)和取模(%)。

             注意点,当有若干个变量进行运算时,结果类型取决于这些变量中范围最大的那个变量的类型。

int a = 3;
int b = 2;
		
double c = a / b; // c=1.0

             取模(%)示例

int a = 4;
int b = 3;
int c = a % b;
		
System.out.println(c);  //c = 1

             上面例子a为正数,b为正数,c为正数

int a = -4;
int b = 3;
int c = a % b;
		
System.out.println(c); // c = -1

             上面例子a为负数,b为正数,c为负数

int a = 4;
int b = -3;
int c = a % b;
		
System.out.println(c); // c = 1

             上面例子a为正数,b为正数,c为正数

             由此可以得出一个规律:取模的结果符号与被除数相同

       2. 关系运算符

      java的关系运算符用于比较两个数值之间的大小,其运算的结果是个boolean值。关系运算符有6种:大于(>),小于(<),等于(=),不等于(!=),大于等于(>=),小于等于(<=)。这边就不再赘述。

       3. 逻辑运算符

      java的逻辑运算符要求操作数的数据类型为boolean型,其运算结果也为boolean型的。逻辑运算符有逻辑与(&&和&),逻辑或(||和|),逻辑非(!),逻辑异或(^)。
      其中:逻辑与&&和&,逻辑或||和|,运算规则基本上相同,其区别是:&和|运算是把逻辑表达式全部计算完;&&和||运算具有短路功能。
      逻辑运算符的短路特性
         (1) 逻辑与: 若第一个操作数为false,那么结果肯定就是false,那么将不会执行运算符后面的运算了。
int a = 10;
int b = 11;
int c = 12;
int d = 13; 
		
boolean e = (a > b) && ((b = c) < d);
		
System.out.println(e); // e = false
System.out.println(b); // b = 11

         但是如果第一个为true,那么就是会正常执行到运算符后面的运算了,举例(这个只是验证短路特性的)

int a = 10;
int b = 11;
int c = 12;
int d = 13; 
		
boolean e = (a < b) && ((b = c) > d);
		
System.out.println(e); // e = false
System.out.println(b); // b = 12

        (2) 逻辑或: 若第一个操作数为true,那么结果肯定就是true,那么将不会执行运算符后面的运算了。例子与逻辑与的类似,这边不再赘述。

      4. 位运算符

      java的位运算符是以二进制为单位进行运算的,其操作数和运算结果都是整型。位运算符共有7个: 位与(&),位或(|),位非(~),位异或(^),右移(>>),左移(<<),0填充的右移(>>>)。

     
位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。
      这边就不举例了,对有计算机基础的同学来说完全没有问题的。有个经典笔试题:
/*
* java中用什么办法实现2×8效率最高
 */
   System.out.println(2 << 3);  // 16

     
下一回,复习java基础--流程控制语句。

【上篇】
【下篇】

抱歉!评论已关闭.