运算符 对常量或者变量进行操作的符号
表达式 用运算符把常量或变量连接起来符合java语法的式子
字符的+操作
字符A的值为65 A-Z是连续的
字符a的值为97 a-z的值是连续的
字符0的值是48 0-9的值是连续的
算数表达式中包含多个基本数据类型的值的时候,整个表达式的类型会自动提升
byte类型,short类型,char类型将被提升到int
整个表达式的类型将被提升到最高等级数类型同样的类型,等级顺序:byte,short,char<int<long<float<double
字符串的+操作
当+操作中出现在字符串时,这个+是字符串连接符,不是算数运算符,如:“itheima”+666
当+操作中出现了字符串时,就是连接运算符,否则就是算数运算符。当连续出现+操作时,从左到右逐个执行,如:1+99+“ithema”,得到“l00ithema”
赋值运算符
= ,赋值,如:a =10,将10赋值给a的变量
+=,加后赋值
-=,*=,/=,%=
重点:扩展的赋值运算符,隐含了强制类型转换
short a=10; a +=10;会报错,不兼容的类型,需要强转 a = (short)(a+10);
关系运算符
==
!=
>
>=
<=
在打印中,如果条件满足,打印true,否则false
如果使用==时,不小心写成=,会把赋值结果打印出来,如:System.out.println(a=b),会打印b的值
逻辑运算符
我们可以这样说,逻辑运算符,是用来连接关系表达式(a>b)的运算符,当然逻辑运算符也可以直接连接布尔类型的常量和变量
& 逻辑与 a&b a和b同时为true,结果才为ture
| 逻辑或 a|b a和b一个为ture,结果为ture
^ 逻辑异或 a^b,a和b,同为ture或false,结果为false,一个为ture,一个为false,结果为ture
! 逻辑非 结果和a的结果相反
短路逻辑运算符
&& 短路与 作用和&相同,但有短路效果
|| 短路或 作用和|相同,但有短路效果
区别
&,无论左边真假,右边都执行,&&,如果左边为ture,左边执行,如果左边为false,右边不执行
|,无论左边真假,右边都执行,||,如果左边为ture,右边不执行,如果左边为false,右边执行
最常用的逻辑运算符,&&,||,!
三元运算符
格式:关系表达式?表达式1:表达式2
如:a>b?a:b
执行流程:首先计算关系表达式的值,如果为ture,表达式1就是运算结果,否则表达式2就是运算结果