Java从零开始学六(运算符)
运算符
一、赋值运算符号
No.
|
赋值运算符号
|
描述
|
1
|
=
|
赋值
|
- int num=22;
- System.out.println("num= "+num);
- num=num-3;
- System.out.println("num= "+num);
结果:
num= 22
num= 19
二、一元运算符
No.
|
一元运算符
|
描述
|
1
|
+
|
正号
|
2
|
–
|
负号
|
3
|
!
|
NOT,否
|
- boolean flag=false;
- int x=10; //定义一个正数
- int y=-30; //定义一个负数
- System.out.println("x= "+x);
- System.out.println("y= "+y);
- System.out.println("flag= "+flag+"!b= "+!flag);
结果:
x= 10
y= -30
flag= false !b= true
三、算术运算符
算术运行符和数学中的用法一样
No.
|
算术运算符
|
描述
|
1
|
+
|
加法
|
2
|
–
|
减法
|
3
|
*
|
乘法
|
4
|
/
|
除法
|
5
|
%
|
取模(取余数)
|
- int i = 10;
- int j = 3;
- System.out.println(i+"+"+j +"="+(i+j)); //加法
- System.out.println(i+"-"+j +"="+(i-j)); //减法
- System.out.println(i+"*"+j +"="+(i*j)); //乘法
- System.out.println(i+"/"+j +"="+(i/j)); //除法
- System.out.println(i+"%"+j +"="+(i%j)); //取模求余数
结果:
10+3=13
10-3=7
10*3=30
10/3=3
10%3=1
四、关系运算符
No.
|
关系运算符
|
描述
|
1
|
>
|
大于
|
2
|
<
|
小于
|
3
|
>=
|
大于等于
|
4
|
<=
|
小于等于
|
5
|
==
|
等于
|
6
|
!=
|
不等于
|
五、自增与自减运算符
No.
|
自增与自减运算符
|
描述
|
1
|
++
|
自增,变量值加1
|
2
|
--
|
自减,变量值减1
|
- int a=3,b=3; //定义整型变量a,b
- int x=6,y=6; //定义整型变量x,y
- System.out.println("a= "+a); //输出变量a的值
- System.out.println("a++="+(a++)+" a= "+a); //输入a++和a++之后a的值3,4
- System.out.println("b= "+b);
- System.out.println("++b="+(++b)+" b="+b); //值出++b,和++b之后b的值4,4
- System.out.println("x= "+x);
- System.out.println("x--="+(x--)+" x= "+x); //输出x--和x--之后x的值6,5
- System.out.println("y= "+y);
- System.out.println("--y="+(--y)+" y="+y); //输出--y和--y之后的值5,5
六、逻辑运算符
No.
|
逻辑运算符
|
描述
|
1
|
&
|
AND,与
|
2
|
&&
|
短路与
|
3
|
|
|
OR,或
|
4
|
||
|
短路或
|
No.
|
条件1
|
条件2
|
结果
|
|
&&(与)
|
||(或)
|
|||
1
|
true
|
true
|
true
|
true
|
2
|
true
|
false
|
false
|
true
|
3
|
false
|
true
|
false
|
true
|
4
|
false
|
false
|
false
|
false
|
- &&”与“&”
- &&表示短路与
- 对于“与”来说,要求所有的条件都判断,而如果使用“短路与”如果第一个条件为false,则后面的条件将不再判断。
- “||”与“|”
- ||表示短路或
- 对于“或”来说,要求所有的条件都判断,而如果使用“短路或”如果第一个条件为true,则后面的条件将不再判断。
七、括号运算符
No.
|
括号运算符
|
描述
|
1
|
()
|
提高括号中表达式的优先级
|
八、位运算符
No.
|
逻辑运算符
|
描述
|
1
|
&
|
按位与
|
2
|
|
|
按位或
|
3
|
^
|
异或(相同为0,不同为1)
|
4
|
~
|
取反
|
5
|
<<
|
左移位
|
6
|
>>
|
右移位
|
7
|
>>>
|
无符号右移位
|
位运算的结果表
No.
|
二进制数1
|
二进制数1
|
与操作(&)
|
或操作(|)
|
异或操作(^)
|
1
|
0
|
0
|
0
|
0
|
0
|
2
|
0
|
1
|
0
|
1
|
1
|
3
|
1
|
0
|
0
|
1
|
1
|
4
|
1
|
1
|
1
|
1
|
0
|
九、运算符的优先级
优先级
|
运算符
|
类
|
结合性
|
1
|
()
|
括号运算符
|
由左至右
|
1
|
[]
|
方括号运算符
|
由左至右
|
2
|
!、+(正号)、-(负号)
|
一元运算符
|
由右至左
|
2
|
~
|
位逻辑运算符
|
由右至左
|
2
|
++、--
|
递增与递减运算符
|
由右至左
|
3
|
*、/、%
|
算术运算符
|
由左至右
|
4
|
+、-
|
算术运算符
|
由左至右
|
5
|
<<、>>
|
位左移、右移运算符
|
由左至右
|
6
|
>、>=、<、<=
|
关系运算符
|
由左至右
|
7
|
==、!=
|
关系运算符
|
由左至右
|
8
|
&(位运算符AND)
|
位逻辑运算符
|
由左至右
|
9
|
^(位运算符号XOR)
|
位逻辑运算符
|
由左至右
|
10
|
|(位运算符号OR)
|
位逻辑运算符
|
由左至右
|
11
|
&&
|
逻辑运算符
|
由左至右
|
12
|
||
|
逻辑运算符
|
由左至右
|
13
|
?:
|
三目运算符
|
由右至左
|
14
|
=
|
赋值运算符
|
由右至左
|
十、简洁表达式
No.
|
运算符
|
范例用法
|
说明
|
描述
|
1
|
+=
|
a += b
|
a + b的值存放到a中
|
a = a + b
|
2
|
-=
|
a -= b
|
a - b的值存放到a中
|
a = a - b
|
3
|
*=
|
a *= b
|
a * b的值存放到a中
|
a = a * b
|
4
|
/=
|
a /= b
|
a / b的值存放到a中
|
a = a / b
|
5
|
%=
|
a %= b
|
a % b的值存放到a中
|
a = a % b
|
No.
|
运算符
|
范例
|
执行前
|
说明
|
执行后
|
||
a
|
b
|
a
|
b
|
||||
1
|
+=
|
a += b
|
12
|
3
|
a + b的值存放到a中(同a = a + b)
|
15
|
3
|
2
|
-=
|
a -= b
|
12
|
3
|
a - b的值存放到a中(同a = a – b)
|
9
|
3
|
3
|
*=
|
a *= b
|
12
|
3
|
a * b的值存放到a中(同a = a * b)
|
36
|
3
|
4
|
/=
|
a /= b
|
12
|
3
|
a / b的值存放到a中(同a = a / b)
|
4
|
3
|
5
|
%=
|
a %= b
|
12
|
3
|
a % b 的值存放到a中(同a = a % b)
|
0
|
3
|
6
|
b++
|
a *= b++
|
12
|
3
|
a * b的值存放到a后,b加1(同a = a * b;b++)
|
36
|
4
|
7
|
++b
|
a *= ++b
|
12
|
3
|
b加1后,再将a*b的值存放到a(同b++;a=a*b)
|
48
|
4
|
8
|
b--
|
a *= b--
|
12
|
3
|
a * b的值存放到a后,b减1(同a=a*b;b--)
|
36
|
2
|
9
|
--b
|
a *= --b
|
12
|
3
|
b减1 后,再将a*b的值存放到a(同b--;a=a*b)
|
24
|
2
|
Java从零开始学六(运算符)的更多相关文章
- Java从零开始学三十六(JAVA IO- 字符流)
一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...
- Java从零开始学二十六(包装类)
一.包装类 包装类是将基本类型封装到一个类中.也就是将基本数据类型包装成一个类类型. java程序设计为每一种基本类型都提供了一个包装类.这些包装类就在java.lang包中.有8个包装类 二.包装类 ...
- Java从零开始学十六(多态)
一.什么是多态 多态性是指允许不同类的对象对同一消息作出响应.多态性包括参数化多态性和包含多态性.多态性语言具有灵活.抽象.行为共享.代码共享的优势,很好的解决了应用程序函数同名问题.多态有两种表现形 ...
- Java从零开始学四十六(Junit)
一.软件测试 软件开发: 项目调研--需求分析--软件设计--程序编码--软件测试--运行维护 软件测试:利用测试工具按照测试方案和流程对产品进行功能和性能测试,使用人工或者自动手段来运行或测试某个系 ...
- Java从零开始学四十五(Socket编程基础)
一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...
- Java从零开始学四十四(多线程)
一.进程与线程 1.1.进程 进程是应用程序的执行实例. 进程是程序的一次动态执行过程,它经历了从代码加载.执行到执行完毕的一个完整过程,这个过程也是进程本身从产生.发展到最终消亡的过程 特征: 动态 ...
- Java从零开始学四十一(反射简述二)
一.实例化Class类对象 实例化Class类对象的方法有三种: 第一种:通过forName()方法 第二种:类.class 第三种:对象.getClass() 二.Class类的常用方法 No. 方 ...
- Java从零开始学四十(反射简述一)
一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...
- Java从零开始学三十九(对象序列化)
一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储. 序列化保存对象的“全景图”,构建对象的“ ...
随机推荐
- Uva 5002 - The Queue DFS
On some special occasions Nadia’s company provide very special lunch for all employees of the compan ...
- wikioi 3130 CYD刷题(背包)
题目描述 Description 下午,CYD要刷题了,已知CYD有N题可刷,但他只有M分钟的时间,而且他的智慧值为Q,也就是说他只能做出难度小于等于Q的题目.已知每题可得积分Ai,需花费时间Bi,难 ...
- Alpha冲刺(1/10)——追光的人
1.队友信息 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com/hengyumo/ 221600240 真·大能猫 https://www.cnblogs. ...
- 使用socket.io+redis来实现基本的聊天室应用场景
本文根据socket.io与Redis来实现基本的聊天室应用场景,主要表现于多个浏览器之间的信息同步和实时更新. 只是简单记录了一下, 更详细的内容可以参考后续的一篇补充文章: 使用node.js + ...
- [置顶] 解决EXTJS文本框长度验证在ORACLE数据库下不正确的问题
由于ORACLE数据库里面一个汉字和符号占2 个字节,数字和英文占1个字节,所以用EXTJS的文本框MaxLenght去限制输入的长度是不正确的,因为EXTJS只限制了输入的字数量,而不是字节数量. ...
- [html5]使用localStorage兼容低版本Safari无法使用indexeddb的情况
摘要 简单场景描述:将html5开发的app内嵌入ios app中,有部分数据,需要在本地存储,就想到使用浏览器的localstorage或者indexeddb,另外localstorage存储的方式 ...
- C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序
本篇主要体验:编写C#,IL代码,用"VS2012开发人员命令提示"编译成程序集,并运行程序. □ C#文件编译为程序集 →在F盘创建as文件夹→在as文件夹下创建MyClass. ...
- 如何更改linux文件目录拥有者及用户组
查看用户和组 1 首先对于经验操作之前,我们先看下当前系统下的用户和组.whoami 查看当前登陆用户 2 Passwd文件存储当前系统所有用户,而组文件/etc/group记录. 3 一个用户可 ...
- .NET:何时应该 “包装异常”?
背景 提到异常,我们会想到:抛出异常.异常恢复.资源清理.吞掉异常.重新抛出异常.替换异常.包装异常.本文想谈谈 “包装异常”,主要针对这个问题:何时应该 “包装异常”? “包装异常” 的技术形式 包 ...
- .NET:CLR via C# Shared Assemblies and Strongly Named Assemblies
Two Kinds of Assemblies, Two Kinds of Deployment A strongly named assembly consists of four attribut ...