Java操作符(一)
Java的操作符分为好几类,包括算术运算符、自动递增和递减、关系操作符、逻辑操作符、按位操作符、移位操作符、三元操作符(if-else)以及字符串操作符(+和+=)。我们这里先浅学一下前六种。
1.算术运算符
我们通过一段代码来理解算术运算符
public class Example01{
public static void main(String[] args){
int a=1;
int b=2;
int c=a/b;
int d=b/a;
System.out.println(c);
System.out.println(d);
}
}
运行结果为:
0
2
a/b这个结果明显为0.5,为float型,但是d却为int型,因为直接转换为int型,在转换过程中直接去掉了小数部分,故输出结果为0.
这里我们要提到一个原则:变量或常量自动转型,且向右转型(即往能够容纳更大数据类型转换)
byte→short(char)→int→long→float→double
举例如下:
public class Example02{
public static void main(String[] args){
int a=1;
int b=2;
byte c=a/b;
byte d=b/a;
System.out.println(c);
System.out.println(d);
}
}
代码报错如下:
Main.java:5: error: incompatible types: possible lossy conversion from int to byte
byte c=a/b;
^
Main.java:6: error: incompatible types: possible lossy conversion from int to byte
byte d=b/a;
^
2 errors
从代码可以看到,此次报错就是因为int类型的不能向byte转换。
2. 一元加与一元减:
一元加:类型提升为int,对于大于int类型的数据不起作用
一元减:将数值取反。例如-(+1),-(-1)=1.
举例如下:
public class Example03{
public static void main(String[] args){
byte a=2;
double b=2.5;
int c=1*(-a);
double d=2*(-c);
System.out.println(getType(+a));
System.out.println(getType(+d));
System.out.println(c);
System.out.println(d);
}
public static String getType(Object o){
return o.getClass().toString();
}
}
运行结果如下:
class java.lang.Integer
class java.lang.Double
-2
4.0
版权声明:本文为qq_62086412原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。