JAVA面试基本问题及其解答

1.普通类型转换

public class HelloWorld {
    public static void main(String []args) {
        short s=10;
        s=s+1;
       System.out.println("s");
    }
}

结果出错;原因是byte,short,int类型在计算时会自动转换为int类型!

可改为int s=s+1;或者s=(short)(s+1);再或者s+=1;

2.&和&&的区别

public class Test10{
    public static void main (String[] args) {
        boolean a = true ;
        boolean a = true ;
        int c=(!a)&b;
        //&:在逻辑运算时分别计算表达式两边的结果,再作&运算,在做位运算时&表示按位与
        //&&短路与运算,先计算左边的表达式,如果结果是false,那么不用计算右边表达式,直接返回false
        //如果左边的表达式结果是true,再计算右边的表达式,如果右边的表达式为true,结果为true,否则为false
        //|和||的原理同上。
        //所以短路与或短路或的计算效率更高,建议使用。

3.位运算符

面试题:以最快的速度计算8*4结果

public class Test11 {
    public class Test11 {
        //面试题:以最快的速度计算8*4结果
        //int result = 8 *4;这种并不是最快的!
        //0000 1000 8
        //0010 0000 32
        System. out.println(8<<2) ;//最快计算速度

        //8*8
        //8<<3
        //技巧:左移算法:位移数作为2的次幂与操作数相乘


        //40>>2=10  相除得最快,同上!
        //右移算法:操作数除以位移数的2次幂
        
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值