表达式
以分号;结尾的一段代码叫做表达式。表达式由变量、操作符以及方法调用组成,例如:
单个分号也是一条合法的表达式,例如:
表达式是一个简单的知识,我们只需要知道它是什么意思就可以,后面,随着我们对JAVA程序的学习以及练习,表达式就会顺其自然地融入我们的大脑的知识库。
运算符
JAVA为我们提供了丰富的运算符。在中学的数学里面我们已经接触过很多运算,对于运算我们并不陌生,不过程序里面的运算更丰富。
在JAVA中,有6类运算:
1、算数运算符
(1)加法(+)、减法(-)
int a = 1;
int b = 2;
int c = a + b;
(2)乘法(*)、除法(/)、求余数(%)
int a = 1;
int b = 2;
int c = a * b;
int d = c / b;
int e = c % b;
(3)算数表达式:包含算数运算符和括号的算式叫做算数表达式,例如:12 *(2 + 3)/ 10
int a = 1;
int b = 2;
int c = a * b;
int d = 12 / (a+b);
int e = 21 % (11 - b) * 2;
(4)算术运算中的数据转化
①8种基本类型中,出了boolean,其他7种(byte、short、int、long、float、double、char)都能参与算术运算。
②char类型底层是通过int的表示的,因此我们可以用int来表示char
③算数运算中,存在自动子类转化现象,当byte、short、char参与运算时,会被默认转化为int,例如:
byte b1 = 1;
byte b2 = 2;
short s1 = 3;
short s2 = 4;
char c1 =‘A’;
char c2 =‘B’;
int i = 5;
b1 + b2的结果是int类型;
s1 + s2的结果是int类型;
c1 + c2的结果是int类型;
b1 + s1的结果是int类型;
b1 + c1的结果是int类型;
b1 + s1 + c1 + i的结果也是int类型;
④当long参与运算的时候,所有整数都会被默认转化为long
⑤当浮点数参与运算的时候,整数会被默认转化为浮点数
2、单目运算符
所谓单目运算符,就是说只需要一个数据参与运算。下面介绍两个单目运算符以及它们的使用方式:
(1)自增++:++有两种使用方式(++在变量前面、++在变量后面)
(2)自减--:--有两种使用方式(--在变量前面、--在变量后面)
(3)通过上面两个程序总结:
①++或者--是用来实现变量的自增或者自减的单目运算符
②当++在变量前面的时候,就对变量先自增,然后再输出自增后的结果
③当++在变量后面的时候,就先输出变量的值,然后再对变量自增
3、关系运算符
关系运算符,用来比较两个变量的关系,比较的结果是boolean类型,当关系成立的时候,结果是true,否则是false。关系运算符一共有6种,如下图:
关系运算符很容易理解,关系运算符经常用在条件表达式里面,所以我们将会在后面的内容再次提到关系运算符。
4、逻辑运算符
逻辑运算是对boolean类型的变量进行运算。
(1)逻辑与运算
①当左右两个变量全部为真(true)时,返回真(true),否则返回假(false)
②与运算符分为短路与“&&”和非短路与"&"
③与运算的规则是有假则假,所以如果第一个数是false的话,短路与“&&”就不在判断第二个数。这一点就是&&和&的区别。
(2)逻辑或运算
①当两个操作数全部为假(false)时,返回假(false),否则返回真(true)
②或运算符分为短路或“||”和非短路或"|"
③在或运算中,只要有一个为真,其运算结果为真,当两个都为假,其运算结果才为假,因此,当第一个是真的时候,短路或“||”就不在对后面的数据做判断,这一点就是短路或“||”和非短路或“|”的区别。
(3)逻辑非运算
①若操作数的值为真(true),则返回假(false),若操作数的值为假(false),则返回真(true)
②用符号“!"标识
③测试程序如下:
(4)逻辑亦或运算
①若两个操作数不一样,则返回真(true),若两个操作数的值一样,则返回假(false)
②程序:
5、位运算符
(1)位运算应用的数据类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)
(2)位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:
(3)下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:
6、三元运算符
三元运算又叫做条件运算,该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量:
Java运算符优先级
当多个运算符出现在一个表达式中,就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。
例如:(1+3)+(3+2)*2,如果按加号最优先计算,答案就是18,如果按照乘号最优先,答案则是14。
下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部:
领取专属 10元无门槛券
私享最新 技术干货