java操作符(一)

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版权协议,转载请附上原文出处链接和本声明。