java运算符面试题_Java运算符相关面试题

共同点:都可以表示并列关系,有false,则false

都可以表示或者关系,有true,则true

区别:逻辑双与&&,如果左边的表达式位false,则符号右边的表达式不会执行,称为扩展的逻辑运算符的短路效果

同理逻辑双||,如果左边的表达式为true,则右边不执行,具有短路效果

面试题2:请使用有效的方式表达式 2的三次方 2^3

2 << 2 结果:8

面试题3:

定义两个变量

int x = -8 ;

int y = 10 ;

System.out.println(x | y) ;

思路:-8的原码------>反码---->补码 与10的补码进行|运算(有1则1)

-8

10000000 00000000 00000000 00001000(原码)

11111111 11111111 11111111 11110111(反码)

11111111 11111111 11111111 11111000(补码)

10

00000000 00000000 00000000 00001010(补码)

11111111 11111111 11111111 11111010(补码)

11111111 11111111 11111111 11111001(反码)

10000000 00000000 00000000 00000110(原码)

输出结果: -6

面试题4:

请设计一个程序,实现两个变量数据值的交换

(面试官的思路:能否想到位异或的特点?)

//定义两个变量

int a = 10 ;

int b = 20 ;

System.out.println("a:"+a) ;

System.out.println("b:"+b) ;

System.out.println("----------------") ;

//方式1:使用第三方变量进行赋值 ,在开发过程中使用最多的!

/*

int temp = a ; // temp = 10

a = b ; //a = 20

b = temp ;//b = 10

System.out.println("a:"+a) ;

System.out.println("b:"+b) ;

*/

//方式2:位异或特点:一个数据对另一个数据位异或两次,其值是它本身

//左边:a,b,a

//右边:a ^ b

a = a ^ b ;

b = a ^ b ;//b = a ^ b ^ b ; b = a = 10

a = a ^ b ;//a = a ^ b ^ a = 20 ;

System.out.println("a:"+a) ;

System.out.println("b:"+b) ;

//方式3: 变量的基本赋值

/*

a = a + b ;

b = a - b ;

a = a - b ;

System.out.println("a:"+a) ;

System.out.println("b:"+b) ;

*/

/*

b = (a+b) - (a=b) ;

System.out.println("a:"+a) ;

System.out.println("b:"+b) ;

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值