java在运算的时候,会存在数据类型的转换,其中一种是自动类型转换,也称为隐式类型转换,这种转换需要满足一定的条件:
1.这两种类型是兼容的,例如同时都是整数类型或者都是数字类型
2.目的类型数的范围要大于来源数据的范围
运算时数据类型转换还有一种是强制类型转换,也称为显示类型转换,这种转换有的时候会发生截断和缩小,例如将一个小数强制转换成整数,则会丢弃小数部分。
所有byte型和short型在运算时会自动转换为int型,两个byte型运算的结果是int型而不是byte型;如果表达式中有操作数是long型,则整个表达式提升为long型,即结果是long型如果表达式中有操作数是float型,表达式提升为float型;如果有操作数是double型,则表达式提升为double型。
在java中有四大类运算符,分别是算术运算符、位运算符、关系运算符和逻辑运算符。
算术运算符:+、-、*、/、%(取余或者叫取模,即余数)、++(递增或者叫自增)、--(递减或者叫自减)、+=、-=、*=、/=、%=;需要注意的是,自增和自减运算时,符号在后时先使用后运算,符号在前时先运算后使用。在进行除法运算的时候,整数运算的结果会舍去小数位。%运算与c++不一样的是,在java中也可以用在小数上。
位运算符:暂时阶段几乎不用。
关系运算符:>、<、==、>=、<=、!=;在java中,一个=表示赋值,两个=才表示等于。
逻辑运算符:&、|、!、&&、||、^、&=、|=、^=、==、!=、?:;其中&&和||与&和|的不同在于前者有短路功能,?:代表三目运算,或者叫三元运算,?前是逻辑表达式,结果是true则取?和:之间的值,否则取:之后的值。