1.1算数运算符
int a=10; int b =3; //3 System.out.println(a/b); //1 System.out.println(a%b); //注意小数相加 double a1 = 0.1; double a2 = 0.2; //0.3000000000000004 //一定要注释,千万不要判断小数是否相等 System.out.println(a1+a2);
//注意:优先级 单目>双目> 三目(三元) //++:把值拿出来+1再放回去(会发生赋值) //i++:先赋值再自身+1(先确定I的值) //++i:先自身+1再赋值 int s = 100; // s =s + s ++; s = s + s++; System.out.out.println(s);
//如果k++和++k单独出现,没有任何区别,自身+1完事 //k++:需要单独占用两块空间,一个是k空间,一个是临时空间用来保存+1之前的数据 //++k:需要占用1块空间,只需要保存+1之后的数据即可 //但是,基本可以忽略,因为编译器也会帮助我们进行优化 //在编译器优化之后,++i和i++在这里没有区别,而i++看起来更美观,所以会把单独出现的++i转换为i++ ++k; System.out.println(k); //源码 int i =2; i++; ++i; i = ++i + 2; i = i++ + 2; 编译之后class文件是这样 //int i=2; //i++; //因为是单独出现的,所以把i++也转换成了i++ //i++; //因为是混合运算,所以++i就是++i,i++就是i++不会进行转换 //i = ++i + 2; //i = i++ + 2;
1.2关系运算符
*关系运算符
> >= < <=
*==:判断相等,基本类型比较值,引用类型比较地址 !=:判断不相等
*
*关系运算符的结果是布尔型 true/false
*
public static void main(String[]args){ int a = 10; int b = 11; boolean result = a < b; //true System.out.println(result); //true System.out.println(a<=b); //false System.out.println(a>b); //false System.out.println(a>=b); //fasle System.out.println(a==b); //true System.out.println(a!=b); }
1.3位