基本的数据运算符都能轻松地搜索到,这里只写我在复习的过程中新的感悟。
- / : 除法, 但是如果是两个int类型相除,得到的还是int类型;
- %: 其实就是取余数, 但是有一个更正式的名字:取模运算
int x = 1;
int y= 5;
int z =2;
System.out.println(x/y); // 0 1/5=0.2, 取整数部分是0
System.out.println(y%z); //1 5/2=2...1, 取余数为1
另外,在数据运算过程中,默认向高类型转换:
- 如果a+b 中最高类型是double, 那么结果也会是double类型;
- 如果最高类型是long, 那么结果也是long类型;
- 其他类型的计算结果都是int类型:
package superlily.datatype;
public class Demo1 {
public static void main(String[] args) {
long a = 12345765432456L;
int i = 123;
short s = 34;
byte b =2;
System.out.println(a+i+s+b); // long 类型 12345765432615
System.out.println(i+s+b); // int 159
System.out.println(s+b); //int 36
System.out.println((double)s + b); //double 36.0
}
}
这一段warning再一次印证了short类型的数和byte类型的数相加(s+b) 结果是个int类型的数:
Java中更复杂的运算我们一般可以直接使用一些工具类来进行 例如:幂运算 2^3 = 2*2*2
/*Java中更复杂的运算我们一般可以直接使用一些工具类来进行
例如:幂运算
2^3 = 2*2*2
*/
double d = Math.pow(2,3);
System.out.println(d); //8.0