运算符很多,但是绝大部分是很简单的,这里挑几个容易让新手混淆的讲一下
int a = 3; int b = a++; //a = a + 1;(a++这里是相当于在此语句后面执行了a=a+1) System.out.println(a);//4 //a = a + 1;(++a这里相当于在执行此语句之前执行了a=a+1) int c = ++a; System.out.println(a);//5 System.out.println(b);//3 System.out.println(c);//5自减和上面一样
幂运算:
经常我们会算到2^3=8这类型的吧,但是java中没有这种表示方式啊,那么很多人肯定想到可以表示为
2* 2 * 2 = 8
其实这样幂指数很小还可以,一旦大起来,就很难受了啊,这里介绍一个工具类Math里面的pow()方法
Math.pow(2,3);//8,表示2的三次方这三个很简单,我就说一下与吧,这里涉及一个短路运算,很多人容易出错
public class operator { public static void main(String[] args) { int a = 1; boolean b = (a>2) && (a++>4); System.out.println(b);//false System.out.println(a);//1 } }在上述中a++ 并没执行,与运算前面为false后面就不会算了,这就是短路运算
这里说一道常见的面试题目:
怎么样让2*8最快算出来?
2 * 2 * 2 * 2=2<<3
将2左移三位
总结:<< 左移相当于*
>>右移相当于 /
下面是常见的一道面试题
public class operator { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a + b);//30 System.out.println(""+a+b);//1020 System.out.println(a+b+"");30 } }在左边加上“”,就会转成字符串拼接起来,但是在右边却不会
三元运算符其实在实际开发中经常用到,虽然可以用if来代替,但是这种一行它不香吗?
举个例子:
String m = BAT面试成功?"走向人生巅峰":"咸鱼一枚";//这个幽默一下哈上面表示的是面试如果成功,m=“走向人生巅峰”,否则,m=“咸鱼一枚”