转自:http://hi.baidu.com/wanghepeng1986/blog/item/291d3617848b590fc83d6d3c.html
1. 算术运算符与算术表达式
(1) 加减运算符 +,-.例如 2+39,908.98-23等.
加减运算符是双目运算符,即连接两个操作元的运算符.加减运算符的结合方向是从左到右.例如: 2+3-8,先计算2+3,然后再将得到的结果减8.加减运算符的操作元是整型或浮点型数据,加减运算符的优先级是4级.
(2) 乘,除和求余运算符 *,/,%.例如 2*39 908.98/23等.
*,/,%运算符是双目运算符,即连接两个操作元的运算符.*,/,%运算符的结合方向是从左到右,例如 2*3/8,先计算2*3,然后再将得到的结果除以8.乘除运算符的操作元是整型或浮点型数据.*,/,%运算符的优先级是3级.
用算术符号和括号连接起来的符合java语法规则的式子,如x+2*y-30+3*(y+5).
2 自增,自减运算符 ++,--
自增,自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后.操作元必
须是一个整型或浮点型变量.作用是使变量的值增1或减1,如
++x,--x表示在使用x之前,先使x的值加 减 1 .
x++,x— 表示在使用x之后,使x的值加 减 1.
粗略的看,++x和x++的作用相当于x=x+1.但++x和x++的不同之处在于,++x 是先执行x=x+1再使用x的值,而x++是先使用x的值再执行x=x+1.如果 x的原值是5,则
对于y=++x y的值为6.
对于y=x++ y的值为5,然后x的值变为6.
3 算术混合运算的精度
精度从”底”到”高”排列的顺序是
byte short int long float double
Java将按运算符两边的操作元的最高精度保留结果的精度,例如
5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2.
char型数据和整型数据运算结果的精度是int.例如
byte x=7;
那么
‘B’+x;
的结果是int型,因此下列写法是不正确的,
char ch=’B’+x;
应当写成
char ch=(char)(’B’+x);
4 关系运算符与关系表达式
关系运算符用来比较两个值的关系.关系运算符的运算结果是boolean 型,当运算符对应的关系成立时,运算结果是true,否则是false.例如,10<9的结果是false,5>1的结果是true,3!=5的结果是true,10>20-17的结果为true,因为算术运算符的级别高于关系运算符,10>20-17 相
当于10> 20-17 ,结果当然是true.
结果为数值型的变量或表达式可以通过关系运算符形成关系表达式.如,4>8,(x+y)>80.
关系运算符
5 逻辑运算符与逻辑表达式
逻辑运算符包括 &&,||,!.其中&&,||为二目运算符,实现逻辑与,逻辑或 为单目运算符,实现逻辑非.逻辑运算符的操作元必须是boolean 型数据 ,逻辑运算符可以用来连接关系表达式.
给出了逻辑运算符的用法和含义
逻辑运算符
结果为boolean型的变量或表达式可以通过逻辑运算符合成为逻辑表达式.
用逻辑运算符进行逻辑运算
例如,2>8&&9>2 的结果为false,2>8||9>2 的结果为true.由于关系运算符的级别高于&&,||的级别,2>8&&8>2相当于 2>8 && 9>2 .
逻辑运算符”&&”和”||”也称做短路逻辑运算符,这是因为当op1 的值是false 时,”&&”运算符在运算时不再去计算op2 的值,直接就得出op1&&op2 的结果是false.当op1 的值是true时,”||”运算符号在运算时不再去计算op2的值,直接就得出op1|op2的结果是true.比如,x
的初值是1,那么经过下列逻辑比较运算后,
((y=1)==0))&&((x=6)==6));
x的值仍然是1.经过下列逻辑比较运算后,
((y=1)==1))&&((x=6)==6));
x的值将变为6.
6 赋值运算符与赋值表达式
赋值运算符 =.
赋值运算符是双目运算符,左面的操作元必须是变量,不能是常量或表达式.设x 是一个整型变量,y 是一个boolean 型变量,x=20 和y = true 都是正确的赋值表达式,赋值运算符的优先级较低,是14 级,结合方向右到左.赋值表达式的值就是”=“左面变量的值.注意不要将赋值运算符”=“与等号运算符”==“混淆.
7 位运算符
我们知道整型数据在内存中以2 进制的形式表示,比如一个int 型的变量在内存中占4个字节共32位,int 型数据7的2进制表示是
00000000 00000000 00000000 00000111
左面最高位是符号位,最高位是0表示正数,1表示负数.负数采用补码表示,比如-8 的进制是
111111111 111111111 1111111 11111000
这样我们就可以对整型数据进行按位的运算,比如,对两个整型数据对应的位进行运算得到一个新的整型数据
1 ”按位与”运算符
“&”是双目运算符,对两个整型数据a,b 按位进行运算,运算结果是一个整型数据c.运算法则是 如果a,b 两个数据对应位都是1,则c 的该位是1,否则是0.如果b 的精度高于a,那么结果c的精度和b相同.
2 ”按位或”运算符
“|”是双目运算符.对两个整型数据a,b 按位进行运算,运算结果是一个整型数据c.运算法则是 如果a,b 两个数据对应位都是0,则c 的该位是0,否则是1.如果b 的精度高于与a,那么结果c的精度和b相同.
3 ”按位非”运算符
“~”是单目运算符.对一个整型数据a 按位进行运算,运算结果是一个整型数据c.运算法则是 如果a对应位都是0,则c的该位是1,否则是1.
“按位异或”运算符
4 ”^”是双目运算符.对两个整型数据a,b按位进行运算,运算结果是一个整型数据c.运算法则是 如果a,b 两个数据对应位相同,则c 的该位是0,否则是1.如果b 的精度高于与a,那么结果c的精度和b相同.
由异或运算法则可知
a^a=0,
a^0=a.
因此,如果c=a^b,那么a=c^b,即用同一个数对数a进行两次”异或”运算的结果又是数a.在下面的例子1 中,利用”异或”运算的性质,对几个字符进行加密并输出密文,然后再解密.
例子1
class Example1
{ public static void main(String args[])
{char a1='十',a2='点',a3='进',a4='攻';
char secret='8';
a1=(char)(a1^secret); a2=(char)(a2^secret);
a3=(char)(a3^secret); a4=(char)(a4^secret);
System.out.println("密文:"+a1+a2+a3+a4);
a1=(char)(a1^secret); a2=(char)(a2^secret);
a3=(char)(a3^secret); a4=(char)(a4^secret);
System.out.println("原文:"+a1+a2+a3+a4);
}
}
位运算符也可以操作逻辑型数据,法则是
当a,b都是true时,a&b是true,否则a&b是false.
当a,b都是false时,a|b是false,否则a|b是true.
当a是true时,~a是false 当a是false时,~a是true.
位运算符在操作逻辑型数据时,与逻辑运算符&&,||,, 不同的是 位运算符要计算完a和b的之后再给出运算的结果.比如,x的初值是1,那么经过下列逻辑比较运算后,
((y=1)==0))&&((x=6)==6));
x的值仍然是1,但是如果经过下列位运算之后,
((y=1)==0))&((x=6)==6));
x的值将是6.
位运算符也可以操作字符数据,但运算结果是int 型数据,例如
char x=’a’,y=’b’;
那么
x^y,x&y,x^y, x
的结果是int型.
通过下面的例子可以比较出短路逻辑运算和位运算的不同.
例子2
class Example2
{ public static void main(String args[])
{ int x,y=10;
if(((x=0)==0)||((y=20)==20))
{ System.out.println("现在y的值是:"+y);
}
int a,b=10;
if(((a=0)==0)|((b=20)==20))
{ System.out.println("现在b的值是:"+b);
}
}
}
8 instanceof 运算符
该运算符是双目运算符,左面的操作元是一个对象 右面是一个类.当左面的对象是右面的类创建的对象时,该运算符运算的结果是true ,否则是false.
9 运算符综述
Java 的表达式就是用运算符连接起来的符合Java 规则的式子.运算符的优先级决定了表达式中运算执行的先后顺序.例如,x<y&&!z相当于(x<y)&&(!z),没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号 运算符号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序.运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3 相当于 8-5 +3.逻辑否运算符 的结合性是右到左, x 相当于!(!x).表3.4是Java所有运算符的优先级和结合性,有些运算符我们没有介绍,可参见相关书籍.
运算符的优先级和结合性
相关推荐
总的来说,Java语言2-Java运算符与表达式这一主题涵盖了编程中不可或缺的部分,无论你是初学者还是有经验的开发者,深入理解和应用这些概念都将有助于提高编程效率和代码质量。通过实践和练习,你可以更加灵活地运用...
本章“第3章:Java基础程序设计”着重讲解了运算符、表达式与语句这三个核心概念,它们是构建任何Java程序的基础。 首先,我们来探讨运算符。Java中的运算符用于执行特定的数学或逻辑操作。它们可以分为多种类型,...
在Java编程语言中,运算符和表达式是构建程序的基础元素,它们用于处理变量和值之间的操作。本文将深入探讨Java中的关系运算符、逻辑运算符以及表达式,旨在帮助理解如何有效地使用这些概念。 首先,让我们从关系...
Educoder题目:Java入门 - 运算符和表达式答案解析
在Java编程语言中,运算符、表达式与语句是构建程序的基础元素,它们构成了代码的基本逻辑。在《第3章:Java基础程序设计》中,我们深入探讨了这些核心概念,以帮助初学者理解如何有效地编写Java程序。 首先,我们...
在“java课件1-2章25个例题Java语言概述、基本数据类型、运算符与表达式”中,我们将深入探讨Java语言的基础知识,包括语言概述、基本数据类型以及运算符与表达式。 首先,Java语言概述是理解任何编程语言的起点。...
JAVA运算符和表达式 、 分支结构.mp4
在提供的视频课程 "[Java4Android]07_运算符与表达式[学习库www.xuexi111.com].mp4" 中,你可以期待看到更多关于Java运算符和表达式的实例解析,帮助你巩固这些知识并提升编程技能。视频可能会涵盖如何在实际场景中...
Java运算符和表达式是编程基础中的重要组成部分,它们用于操控和组合变量,形成复杂的逻辑。在Java中,运算符大致分为六类:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符和其他运算符。 算术运算符...
JAVA中的关键字、标识符、注释 JAVA中的数据类型、变量、运算符、表达式 JAVA类中方法的调用
这个练习不仅涵盖了基本的Java运算符和表达式,还涉及到了控制流程(如循环和条件判断),因为绘制棋盘需要根据行和列的索引来遍历并处理每个面板。此外,它也涉及到图形用户界面(GUI)编程,包括组件的绘制和事件...
Java 2实用教程第4版_第3章_运算符、表达式与语句.ppt
通过这个视频可以学习JAVA的基础程序设计,运算符/表达式和语句,进行简单的程序设计。JAVA学习资料
变量、运算符和表达式是编程语言的基础元素,它们在编写任何程序时都起着至关重要的作用。 首先,变量是存储数据的容器。在Java中,我们通过`int i = 1;`这样的语句来声明并初始化一个整型变量`i`,其值为1。变量...
java第3章 运算符表达式和语句,相当好的东西,值得参考!希望对你有用!
在编程学习中,控制台输入输出以及运算符与表达式是基础且至关重要的部分。本文将深入探讨这些概念,帮助学生更好地理解和应用。 首先,控制台输入输出是程序与用户交互的基本方式。在命令行环境下,我们通过控制台...
### Java程序设计基础:运算符与表达式 #### 一、引言 在Java程序设计中,理解和掌握运算符与表达式的使用是非常重要的基础技能。本文将深入探讨Java中的各种运算符及其用法,并通过实例讲解如何正确地使用这些...
在JAVA程序设计中,运算符与表达式是编程的基础元素,它们构成了程序的基本逻辑。"JAVA程序设计实用教程(第3版)习02.01 运算符与表达式"这部分内容主要讲解了如何在Java语言中使用各种运算符进行计算、比较和逻辑...