Java运算符?
Java中进行运算时所需要运用到的一些符号。
需要参加运算的数据的类型相同,
如果参加的运算类型不同,会有类型转换过程发生。
转换成同一类型再进行计算。
如何进行强制转换?
例如byte:
int i = 1;
byte b = i;
这样肯定是不行的,因为i是int类型的数,把i转换成byte类型
必须要经过强制转换,因此要写成下面这样。
int i = 1;
byte b = (byte)i;
字符串数据和任何数据做+运算,都没有加法的含义,
这个+是一个连接符,任何数据和字符创相连接都会变成一个新的字符串
例如:System.out.prinitln(“5+5=”+5+5);
输出是5+5=55
**
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
byte b3 = b1 + b2;
编译失败,
因为计算机不知道b1是多少,b1是一个变量
byte b4 = 3 + 4;
编译通过。计算机在编译时判断3+4是否在byte范围内,如果是
即可编译通过。
算数运算符-----------------------------
+ 加 - 减 * 乘 / 除
% 取余(就是一个数除以另一个数的余数)
对于取余运算来说
例如2%3
当左边小于右边,结果是左边,
左边等于左边,结果是0
如果出现负数,结果指依赖于左边的符号。
常见用法:
对2进行取模运算,结果不是0,就是1,可以完成一个切换算法。
++ 自增(前) ++a
++ 自增(后) a++
-- 自减(前) --a
-- 自减(后) a--
前++ 和 后++的区别?
a++ 与 ++a 执行之后a的值是一样的,不同的是,
++a是先让a+1,然后取出a的值进行计算;
a++是先取出a的值进行计算,然后a+1。
例如
int a = 3,b=4;
int c = b + a++;
System.out.println(c);
c的值是7
int a = 3,b=4;
int c = b + ++a;
System.out.println(c);
c的值是8
赋值运算符-----------------------------
= , += , -= , *= , /= ,%=
例示:
int a,b,c;
a = b = c = 3;
int a = 3; a += 5等同于运算a = a+5;
**
short s = 3;
s = s+2;和s += 2;
有什么区别?
s = s+2 不会通过编译,因为2是int型的,
是四个字节的,而s是两个字节的,所以会出现错误。
而s += 2不会出现编译错误,因为 += 是赋值运算符
这是一个赋值语句,所以会有一个自动转换动作。
比较运算符--------------------------------
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
Instanceof 检查是否是类的对象
逻辑运算符--------------------------------
& 与
| 或
^ 异或
! 非
&& 短路与
|| 短路或
&& 和 & 的区别?
&是无论左边是true还是false,两边都运算
&&是当左边卫false时,右边就不用计算了。
&可以表示位运算符
||和|的区别
|是两边都计算
||当左边是true右边就不用计算了
|可以表示位运算符
位运算符------------------------------------
<< 左移
>> 右移
>>> 无符号右移
& 与运算
| 或运算
^ 异或运算
~ 反码
位运算符的特点
6的二进制数是110, 3的二进制数是011
反码其实就是取反,对二进制取反,将0变1,1变0.
如何求负数的二进制?
负数的二进制其实就是对应的整数,进行取反+1;
-6 = 1111-1111 1111-1111 1111-1111 1111-1010;
负数的二进制,最高位都是1.
如何计算&运算?
异或:
一个数异或另一个数两次,结果还是这个数。
怎样不通过第三方变量交换两个变量的值?
int a = 3;
int b = 5;
a = a^b;
b = a^b;
a = a^b;
这样就交换了,因为第一步a=a^b,第二步b=a^b相当于b=a^b^b=原a;
第三步a = a^b就相当于a = a^b^a^b^b=原b
在简单的加密软件中可以用的到
X就相当于那个密钥,只要知道了x的值,和的值就全都知道了
什么是<<(左移)运算符?
左移运算符就是将一个数字转换成二进制数,让整体向左移。
例如6的二进制数是第一行,第二行是左移之后的二进制数。
6<<1 = 12;相当于 6*2 = 12;
但是左移的运算效率很高。
左移的特点:乘以2的次幂(移几位,就是几次幂)
什么是>>(右移)运算符?
右移运算符就是将一个数字转换成二进制数,让整体向右移。
例如6的二进制数是第一行,第二行是左移之后的二进制数。
右移:就是一个除以2的次幂动作(移几位,就是2的几次幂)
什么是>>>(无符号右移)运算符?
一般的>>右移是最高位为0,右移后,最高位的空位用0补。
如果最高位为1,右移后,最高位的空位用1补。
而>>>无符号右移是无论最高位是0还是1,右移后,出现空位,都用0补。
>>>(无符号右移)的用法?
例如 第一行是60的二进制表现形式
第二行是15的二进制表现形式
第三行是 60 & 15 的二进制表现形式(12)。
12的二进制是1100,而1100是六十的二进制表现形式的最后四位,
如果想要获取60二进制数的最后的4--8位,可以用无符号右移运算符
int num = 60;
num = num >>> 4;
分享到:
相关推荐
Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java...
Java运算符Java运算符Java运算符Java运算符Java运算符Java运算符Java运算符Java运算符
java 移位运算符 java 移位运算符 java 移位运算符
JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零基础学JAVA+运算符JAVA+零...
13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位...
9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip...
35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元...
32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系...
30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值...
10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术...
java 转型运算符 java 转型运算符 java 转型运算符 java 转型运算符
33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33...
这是java的条件运算符的基本例子,可参照代码来学习。
java 算术运算符 java 算术运算符
这是从java 私塾跟我学系列-java篇中摘出来的运算符部分,着重学习学习,加深一下对运算符的掌握
28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符...
Java 三目运算符
java 逻辑运算符 java 逻辑运算符
java位运算符&AND操作视频!!!!
Java运算符+(优先级、目数)