JAVA基础【3.5】《Java核心技术1》Java的基本程序设计结构-运算符【收集】
2017-01-11 21:34
387 查看
Java运行符可分为以下几种:
1 算术运算符
表格中的实例假设整数变量A的值为10,变量B的值为20:
注意:自增自减运算符
前缀自增自减法(++a,--a):先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--):先进行表达式运算,再进行自增或者自减运算。
代码示例:
运行结果:
2 关系运算符
表格中的实例整数变量A的值为10,变量B的值为20:
3 位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型
下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:
4 逻辑运算符
下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假
短路逻辑运算符
当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
5 赋值运算符
6 条件运算符(?:)
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
7 instanceof运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
8 Java运算符优先级
下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。
Java代码规范针对于运算符优先级,要求用个()表示,以保证程序的可读性。
http://www.runoob.com/java/java-operators.html
1 算术运算符
表格中的实例假设整数变量A的值为10,变量B的值为20:
操作符 | 描述 | 例子 |
---|---|---|
+ | 加法-相加运算符两侧的值 | A+B等于30 |
- | 减法-左操作数减去右操作数 | A–B等于-10 |
* | 乘法-相乘操作符两侧的值 | A*B等于200 |
/ | 除法-左操作数除以右操作数 | B/A等于2 |
% | 取模-左操作数除右操作数的余数 | B%A等于0 |
++ | 自增:操作数的值增加1 | B++等于21 |
-- | 自减:操作数的值减少1 | B--等于19 |
前缀自增自减法(++a,--a):先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--):先进行表达式运算,再进行自增或者自减运算。
代码示例:
publicclassselfAddMinus{
publicstaticvoidmain(String[]args){
inta=5;//定义一个变量;
intb=5;
intx=2*++a;
inty=2*b++;
System.out.println("自增运算符前缀运算后a="+a+",x="+x);
System.out.println("自增运算符后缀运算后b="+b+",y="+y);
}
}
运行结果:
自增运算符前缀运算后a=6,x=12
自增运算符后缀运算后b=6,y=10
2 关系运算符
表格中的实例整数变量A的值为10,变量B的值为20:
运算符 | 描述 | 例子 |
---|---|---|
== | 检查如果两个操作数的值是否相等,如果相等则条件为真。 | (A==B)为假(非真)。 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 | (A!=B)为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A>B)非真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A<B)为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A>=B)为假。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A<=B)为真。 |
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型
下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:
操作符 | 描述 | 例子 |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即00001100 |
| | 如果相对应位都是0,则结果为0,否则为1 | (A|B)得到61,即00111101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A^B)得到49,即00110001 |
〜 | 按位补运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即11000011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A<<2得到240,即11110000 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A>>2得到15即1111 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即00001111 |
下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假
操作符 | 描述 | 例子 |
---|---|---|
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (A&&B)为假。 |
|| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (A||B)为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(A&&B)为真。 |
当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
publicclassLuoJi{
publicstaticvoidmain(String[]args){
inta=5;//定义一个变量;
booleanb=(a<4)&&(a++<10);
System.out.println("使用短路逻辑运算符的结果为"+b);
System.out.println("a的结果为"+a);
}
}
使用短路逻辑运算符的结果为false
a的结果为5
5 赋值运算符
操作符 | 描述 | 例子 |
---|---|---|
= | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | C=A+B将把A+B得到的值赋给C |
+= | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C+=A等价于C=C+A |
-= | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C-=A等价于C=C- A |
*= | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C*=A等价于C=C*A |
/= | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C/=A等价于C=C/A |
(%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%=A等价于C=C%A |
<<= | 左移位赋值运算符 | C<<=2等价于C=C<<2 |
>>= | 右移位赋值运算符 | C>>=2等价于C=C>>2 |
&= | 按位与赋值运算符 | C&=2等价于C=C&2 |
^= | 按位异或赋值操作符 | C^=2等价于C=C^2 |
|= | 按位或赋值操作符 | C|=2等价于C=C|2 |
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
variablex=(expression)?valueiftrue:valueiffalse
publicclassTest{
publicstaticvoidmain(Stringargs[]){
inta,b;
a=10;
//如果a等于1成立,则设置b为20,否则为30
b=(a==1)?20:30;
System.out.println("Valueofbis:"+b);
//如果a等于10成立,则设置b为20,否则为30
b=(a==10)?20:30;
System.out.println("Valueofbis:"+b);
}
}
Valueofbis:30
Valueofbis:20
7 instanceof运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
(Objectreferencevariable)instanceof(class/interfacetype)
classVehicle{}
publicclassCarextendsVehicle{
publicstaticvoidmain(Stringargs[]){
Vehiclea=newCar();
booleanresult=ainstanceofCar;
System.out.println(result);
}
}
true
8 Java运算符优先级
下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。
类别 | 操作符 | 关联性 |
---|---|---|
后缀 | ()[].(点操作符) | 左到右 |
一元 | ++-!〜 | 从右到左 |
乘性 | */% | 左到右 |
加性 | +- | 左到右 |
移位 | >>>>> << | 左到右 |
关系 | >>=<<= | 左到右 |
相等 | == != | 左到右 |
按位与 | & | 左到右 |
按位异或 | ^ | 左到右 |
按位或 | | | 左到右 |
逻辑与 | && | 左到右 |
逻辑或 | || | 左到右 |
条件 | ?: | 从右到左 |
赋值 | =+=-=*=/=%=>>=<<=&=^=|= | 从右到左 |
逗号 | , | 左到右 |
相关文章推荐
- JAVA基础【3.3】《Java核心技术1》Java的基本程序设计结构-数据类型
- JAVA基础【3.8】《Java核心技术1》Java的基本程序设计结构-控制流程
- JAVA基础【3.2】《Java核心技术1》Java的基本程序设计结构-代码注释
- JAVA基础【3.7】《Java核心技术1》Java的基本程序设计结构-输入输出
- JAVA基础【3.9】《Java核心技术1》Java的基本程序设计结构-大数值
- [学习笔记] Java核心技术 卷一:基础知识 Java 的基本程序设计结构(一)
- JAVA基础【3.6】《Java核心技术1》Java的基本程序设计结构-字符串
- JAVA基础【3.10】《Java核心技术1》Java的基本程序设计结构-数组
- Java核心技术(第8版)学习笔记_基本的程序设计结构
- JAVA核心技术(卷I)——java基础程序设计结构
- Java核心技术(二) —— Java的基本程序设计结构
- 【Java核心计算 基础知识(第9版)】第3章 Java的基本程序设计结构
- Java核心技术学习笔记之一:Java的基本程序设计结构
- Java核心技术 卷1 读书笔记 (3 Java基本程序设计结构)
- 【Java核心技术 I】第三章 Java的基本程序设计结构
- java核心技术之基本程序设计结构(一)
- Java技术核心卷I学习笔记——基本的程序设计结构
- java核心技术 卷一 第2-3章 安装java开发工具箱和 java的基本程序设计结构
- Java核心技术:卷1笔记[1] Java基本编程结构
- [学习笔记] Java核心技术 卷一:基础知识 泛型程序设计(五)