基本数据类型与引用数据类型
注意:
- 如果需要使用float类型的常量,则需要在小数后面加一个字母f
- java常量整数类型默认为int,常量浮点型默认为double
数据类型转换之隐式转换
数据类型表示范围的比较:
- byte < short = char < int < long < float < double
注意事项:
- byte、short、 char、int在相互运算时,会直接统统提升为int类型,而非较大类型
- int以及int以上的类型,在相互运算时,会提升为较大类型
数据类型转换之强制转换
- 大的范围的数据类型的数据,要转成小范围的数据类型,就需要使用强制转换。
- 转换格式:
(要转成的数据类型)需要转换的数据
运算符
算数运算符
此处重点讲解/、%
/:除法运算符:
- 如果是两个整数相除,结果还是一个整数 (此地方需注意)
- 如果任意一个操作数是小数,那么结果就是小数
%:取模运算符、取余运算符获取两数相除的余数
- 注意事项:取余的结果的符号只和%前面的操作数的符号有关
- 作用:获取余数;判断是否整除;判断奇偶
自增自减运算符
++、–
此处讲解符号在不同位置的执行规则:
++在前,先进行自增,再去执行其他操作
++在后,先去执行其他操作,再在原有的基础上自增1
int a = 10;
System.out.println(a++);//10
System.out.println(++a);//12
一行代码,不论要执行什么操作,当遇到分号时,所有的操作都应当执行完毕
所以,当变量自增自减作为语句的时候,不论在前在后,效果一致
int c=5;
//--c;
c--;
System.out.println(c);//无论上面谁执行,结果都为4
赋值运算符
分类:
- 基本的赋值运算符:=
- 扩展的赋值运算符:+= -= *= /= %= 均属于数学运算
ex:a+=1 等同于 a=a+1
比较运算符
分类:
- == !=:可以比较任意的数据类型
- > >= < <=:可以比较数值类型(整数类型、小数类型、字符类型)
逻辑运算符
分类:
- 普通的逻辑运算符:& | ^ !
- 短路的逻辑运算符:&& ||
1、&逻辑与。全真为真,否则为假
true & true true
true & false false
false & true false
false & false false
2、|:逻辑或。全假为假,否则为真
true | true true
true | false true
false | true true
false | false false
3、^:逻辑异或。相同为假,不同为真
true ^ true false
true ^ false true
false ^ true true
false ^ false false
4、!:逻辑非。遇真为假、遇假为真【常用】
!true false
!false true
5、 短路逻辑运算符【常用】:逻辑运算符前后的两个表达式中,第一个表达式计算完成之后,一定可以确定整个逻辑表达式的值,那么就不再计算第二个表达式的值。
总结:短路运算符和非短路运算符的运算规则相同,只不过是效率更高
详解:&& ||短路与和短路或,当第一个条件满足判断时,不会再去判断第二个条件,可以提高系统效率
位移运算符
1、对于数据在内存中的表示,进行按照位来移动,以此达到对数据进行运算的目的。
2、说明:只能操作整数类型的数据,运算结果还是整数
3、罗列:<< >> >>>
4、<<:左移运算符,每次移动一位,会将原来的数字扩大2倍
5、>>:右移运算符,每次移动一位,会将原来的数字缩小为原来的二分之一
6、>>>:无符号右移,每次移动一位,会将原来的数字缩小为原来的二分之一,这个运算符只能针对正数操作。效率高于右移运算符。
7、总结特点:
运算比直接乘以2或者除以2的效率要高很多
三元运算符(三目运算符)
int a = 10,b=20,c=30,d=40;
int max = (a > b ? a : b) > (c > d ? c : d) ? (a > b ? a : b) : (c > d ? c : d);
System.out.println("四个数中的最大值为:" + max);//40