网站首页 > 精选教程 正文
1.1. 运算符
1.1.1. 赋值运算符
符号:= , +=, -=, *=, /=, %=
例子1:加号和赋值符号是可以合在一起使用的。
例子2:比较s += 4;和s = s + 4;的不同。
在执行s+=4;语句时,编译器在编译的时候,默认进行了强制类型转换,也就是将int类型的数据转换成byte类型的数据。
在执行s = s + 4;语句时,编译器在编译的时候,默认并没有强制类型转换。所以,s是short类型,4是int类型,s会自动提升为int类型,相加的和也是int类型,赋值给short类型的变量肯定会损失精度。这时候就需要进行强制类型转换:s = (short)(s + 4);。
1.1.2. 比较运算符
注意:
1、比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2、比较运算符“==”不能误写成“=” 。
例子:
1.1.3. 逻辑运算符
"&"符号的运算特点:
true & true = true;
true & false = false;
false & true = false;
false & false = false;
"&"符号运算规律:
运算的两边只要有一个是false,结果肯定是false。
只有两边都为true,结果才是true。
例子1:
"|"符号的运算特点:
true | true = true;
true | false = true;
false | true = true;
false | false = false;
"|"符号运算规律:
运算的两边只要有一个是true,结果肯定是true。
只有两边都为false,结果是false。
例子2:
"^"符号的运算特点:
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
"^"符号运算规律:
^符号的两边结果如果相同,结果是false。
两边的结果不同,结果是true。
例子3:
"!"符号运算规律:
true = false
!false = true
!!true = true;
例子4:
注意:
&&:和&运算的结果是一样的,但是运算过程有点小区别。
&:无论左边的运算结果是什么,右边都参与运算。
&&:当左边为false时,右边不参加运算,这样可以提升效率
||:和|运算的结果是一样的,但是运算过程有点小区别。
|:无论左边的运算结果是什么,右边都参与运算。
||:当左边为true时,右边不参加运算,这样可以提升效率。
使用&&和||比使用&和|更高效一些。
注意:
逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x<6 。
1.1.4. 位运算符
位运算是直接对二进制位进行运算。
与运算例子:
6 & 3 = 2
110
& 011
-------
010
技巧:
用“与运算”可以很方便提取某一二进制数的其中几位数。
例如,取17476二进制数的后四位:
0100010001000100
& 0000000000001111
------------------------
0000000000000100
或运算例子:
6 | 3 = 7
110
| 011
--------
111
异或运算例子:
6 ^ 3 = 5
110
^ 011
-------
101
注意:
一个数异或同一个数两次,结果还是这个数。
例如:
6 ^ 3 ^ 3 = 6
6 ^ 3 = 5
110
^ 011
-------
101
^ 011
-------
110
技巧:
利用异或运算可以实现对数据简单地进行加密,例如对一幅图片的所有数据异或3进行加密,那么这幅图片就无法查看了。解密只需要再对图片的数据执行异或3操作即可。
取反运算例子:
左移运算例子:
3 << 2 = 12 相当于 3 * 2(2) = 12
00000000000000000000000000000011
00000000000000000000000000001100
3 << 3 = 24 相当于 3 * 2(3) = 24
00000000000000000000000000000011
00000000000000000000000000011000
总结:
左移几位其实就是该数据乘以2的几次方。
<<:可以完成2的次幂运算。
右移运算例子:
6 >> 1 = 3 相当于 6/2(1)=3
00000000000000000000000000000110
00000000000000000000000000000011
6 >> 2 = 1 相当于 6/2(2) = 1
00000000000000000000000000000110
00000000000000000000000000000001
总结:
右移几位其实就是该数据除以2的几次幂。
附:
以上例子中括号表示次幂的意思。
注意:
>>:对于高位出现的空位,原来高位是什么,就用什么补这个空位。
>>>:无符号右移,数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。
练习:
1.最有效率的方式算出2乘以8等于几?
答案:
2.对两个整数变量的值进行互换(可以使用第三方变量)。
答案:
3.对两个整数变量的值进行互换(不可以使用第三方变量)。
答案1:
答案2:
1.1.5. 三元运算符
格式:
(条件表达式) ? 表达式1 : 表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2。
示例1:
示例2:
获取两个整数中的较大的整数。
示例3:
获取三个整数中的较大的整数。
注意:
表达式:就是具有一定语法规则的语句。
猜你喜欢
- 2024-11-05 Java基础语法二 java基础语法教程
- 2024-11-05 java8流式语法掌握这6点,程序员基本业务代码就可以玩转了
- 2024-11-05 Shell基本语法 shell常用命令及示例
- 2024-11-05 「零基础编程培训系列—JAVA基础」4.Java基本语法(三)
- 2024-11-05 Android开发-java基本语法第二讲 java开发安卓app的流程
- 2024-11-05 Java基本语法——流程控制 java中流程控制语句
- 2024-11-05 Java语法入门006 java语法一览表
- 2024-11-05 Java基础语法&数组 java数组菜鸟教程
- 2024-11-05 Java编程基础阶段笔记 day03 Java基本语法(中)
- 2024-11-05 八、Java基本语法元素-变量与常量
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)