一、基本规则
和四则运算方法相同(+、-、*、/、%)
public static void main(String[] args) {
int i1 = 10;
int i2 = 4;
System.out.println(i1+i2);
System.out.println(i1-i2);
System.out.println(i1*i2);
System.out.println(i1/i2);
System.out.println(i1%i2);
System.out.println("=====================================");
double i3 = 4;
System.out.println(i1+i3);
System.out.println(i1-i3);
System.out.println(i1*i3);
System.out.println(i1/i3);//(如果除不尽则一直显示到最值)
System.out.println(i1%i3);
输出结果:14
6
40
2
2
=====================================
14.0
6.0
40.0
2.5
2.0
}
二、溢出问题
public static void main(String[] args) {
//整数溢出问题
int a = 2147483640;
int b = 15;
int sum = a + b;
System.out.println(sum);
//浮点数溢出问题
double d1 = 0.0 / 0; // NaN
double d2 = 1.0 / 0; // Infinity无穷大
double d3 = -1.0 / 0; // -Infinity负无穷
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
//int a1 = 10/0;
//System.out.println(a1);整型0不能做除数会报错
}
三、类型之间的相互转
public static void main(String[] args) {
/*
*自动类型转换是小范围转成大范围
*强制类型转换是大范围转成小范围
*具体格式:小范围+名 = (小范围)+大范围名
*long整型转float类型是自动转换是因为在底层浮点数类型的范围要远大于整型的范围(并不根据几位字节来判断)
*/
//自动类型转换
byte a = 127;
short b = a;
System.out.println(b);
char c = 65;
long d = c;
System.out.println(d);
System.out.println(c);
float e = 3.14f;
double f = e;
System.out.println(f);
//强制转换
short h = 128;
byte i = (byte)h;
System.out.println(i);
}
四、不同类型间的相互运算
public static void main(String[] args) {
//对应byte, short,char在进行运算时会自动进行类型提升
byte b1 = 10 ;
byte b2 = 1;
int b3 = b1+b2;
byte b4 = (byte)(b1+b2);
System.out.println(b3);
System.out.println(b4);
//在计算时遵照按大范围来输出结果的类型
int b5 = b1+1;
//java.c在编译时已经进行了加法运算
byte b = 12+2;
}