这一章主要是总结一下,我们学的基础知识,查漏补缺:
首先我们要了解一下运算符的种类:
一:算数运算符:
二元运算符:+(加法),-(减法),*,/
一元运算符:+(整数),-(负数)++,--
运算特点:
(1)当byte,short,char运算时,会先转换为int类型,也就是说混合类型运算时候,会先转换成范较大的类型,而后运算。
(2)当+运算时,如果一个操作数是字符串,其他操作数自动转换成字符串。
加法值得注意的是字符串和数字的加法问题:
举个例子来说:
String test= 1+2+"abc"+1+2;
结果为:3abc12
二:赋值运算符
基本运算符:=
涉及到类型转换的问题:先让我们复习点基本知识:
Java数据类型:
1. 基本数据类型:8种。
2. 引用数据类型:数组、类、接口、枚举等。
Java采用了Unicode编码。
基本数据类型:八种
boolean:在java种boolean只能取true或者false;
整数类型:byte、short、int、long。整数类型默认是int
byte:1个字节,八位。取值范围:-2的七次方~ 2的7次方-1也就是-128~127
short:2个字节,16位。取值:-2的15次方~ 2的15次方-1
int: 4个字节,32位。取值:-2的31次方~ 2的31次方-1。
long:8个字节,64位。取值:-2的63次方~ 2的63次方-1。
字符型:char是单引号中的内容,且只能有一个字符。2个字节,16位。
char型可以看做一个无符号的整数,取值0-65535.有数字和字符的双重特性,能够参与数学运算。
浮点型:java中小数默认是double类型。
float:4个字节。
double:8个字节。
1.基本数据类型间的自动转换:
(1)byte,short,char------->int----------->long------>float-------->double
(2)小范围到大范围能自动转换。比如:byte m = 127;
(3)子类到父类的转换。
(4)基本数据类型和包装类之间
2.如果不能自动转换,只能使用强制类型转换:
语法:(要转换的类型)要转换的变量。
扩展运算符:+=,-+,*=,/=,%=
三:位运算符 & | ^ ~
四:布尔逻辑运算符 && || !
三和四的区别是:
逻辑运算符只能操作boolean表达式,会产生短路。
位运算符中除了~之外也可以操作布尔表达式,还可以操作整型数据。且不会产生短路
五:条件运算符 条件? true:flase(三目运算符)
其次我们要了解一下运算符的优先级:
(1)赋值运算符的优先级最低,因为赋值运算符要用到表达式的值。
(2)关系运算符的优先级比布尔逻辑运算符的优先级高。
(3)++,--,(),!,~,[ ],的优先级最高。
(4)一元运算符的优先级也比较高
(5)算术运算符比关系运算符和二元逻辑运算符的优先级高
来一张图,形象的说明一下: