java中的运算符

来源:互联网 发布:亦众中文安卓编程 编辑:程序博客网 时间:2024/04/30 03:37
gassion永刚、期待与您交流! ----------

Java中的运算符分为
1. 算术运算符
 符号:加+(可以连接字符串)  减-(可以当做负号)  乘*  除/   模%  自增++ 自减--
其中 / 是整除的意思也就是小数舍弃例如9/2=4;
其中 % 是取模 也就是取余数 9%2=1
自增分为a++和 ++a 其中a++ 和++a 就相当于a=a+1 在运算的时候先后顺序不一样

例如:
int a=5,b;
b=a++ ;
System,out.println(a);
System,out.println(b);
这样输出的a=6  b=5 因为 b=a++ 是先把 a的值赋给b然后a自己再+1
b=++a;
System,out.println(a);
System,out.println(b);
这样输出的a=6 b=6这是因为a先+1然后把+1后的值赋给b;
自减(--)也是同样的
比较特殊的例子
int a =1,b=-5;
int c=1%-5;
System .out.println(c);
将会输出 1
int a=-1,b=5;
int c=-1%5;
System .out.println(c);
将会输出-1

2. 赋值运算符
符号:= += -= *= /=
例: int i=3; (把右边的值赋给左边的变量)
      b+=1;(和b=b+1表达意思是一样的)
下面同上
-= *= /=
注意:
  short b=5;
   b=b+1;和b+=1;的区别:
b=b+1;在编译的时候会报错,因为b被转换成int类型+1然后赋值给short类型的b 会发生类型不一致;
b+=1;可以正常输出结果,因为+=只是一个运算符;
3. 比较运算符
(比较数值相等)==  (不等于)!=  (大于等于) >= (小于等于)<=  (大于)> (小于)<   (检查是否是类的对象)instanceof 例 “Hello”instanceof String
比较运算符的结果都是boolean型的 要么是 true, 要么是false.
4. 逻辑运算符
 
其中需要注意的是& 和&&  |和||的区别:
 &是表达式两边都判断
 && 第一个表达式是假就是假,不在判断第二个表达式(俗称短路)
 | 是表达式两边都判断
|| 第一个表达式是真就是真,不在判断第二个表达式(俗称短路)

5. 位运算符


<<左移的位数越大 原来的数值就是 乘以2的倍数
>>又移的位数越大 原来的数值就是 除以2的倍数
移n位就是乘以或者除以2的n次幂
例如:
3<<2 在内存中是怎么表现的呢?
这是3的二进制表现形式
0000 0000 0000 0000 0000 0000 00000 0011
左移2位
00 0000 0000 0000 0000 0000 00000 001100
右边空出来的两位用00来补齐。
这样就能看出3<<2=12
6>>2呢?
6的二进制是:
0000 0000 0000 0000 0000 0000 00000 0110
右移2位
000000 0000 0000 0000 0000 0000 00000 01
左边空出2为用00补齐
所以6>>2=1
>>>无符号又移和 >> 的区别是
>>又移以后缺少的位数用最高位的数字补齐,(负数用1补齐,正数用0补)
>>>无论什么数又移以后缺少的用0来补
&可以作为位运算存在
例如:
6&3
6的二进制是   0000 0000 0000 0000 0000 0000 00000 0110
            &
3的二进制是   0000 0000 0000 0000 0000 0000 00000 0011
            -----------------------------------------------------
              0000 0000 0000 0000 0000 0000 00000 0010
所以6&3=2
|可以作为位运算存在
例如:
6|3
6的二进制是   0000 0000 0000 0000 0000 0000 00000 0110
            |
3的二进制是   0000 0000 0000 0000 0000 0000 00000 0011
            -----------------------------------------------------
              0000 0000 0000 0000 0000 0000 00000 0111
所以6|3=7
^ 可以作为位运算存在
6^3
6的二进制是   0000 0000 0000 0000 0000 0000 00000 0110
            ^
3的二进制是   0000 0000 0000 0000 0000 0000 00000 0011
            -----------------------------------------------------
              0000 0000 0000 0000 0000 0000 00000 0101
所以6^3=5
~ 可以作为位运算存在
~6
6的二进制    0000 0000 0000 0000 0000 0000 0000 0110
6的反码      1111 1111 1111 1111 1111 1111 1111 1001
6的反码是-7
6. 三元运算符
   三元运算符只有两种值 true or false
语法是
  数据类型  变量名=(boolean表达式)?值一:值二
我们可以这样去阅读理解 boolean表达式的值是true 返回值一 ,否则返回  值二
例如:
int number=3;
int result=(number>5)?20:200;

 System.out.println(result);

应为3大于5不成立,返回200;

原创粉丝点击