scjp题目解析(八)

  public class Happy {
public static void main(String args[]) {
int i=4;
int j=2;
methodA(i,j);
System.out.println(i);
}
static public void methodA(int i,int j) {
i<<=j;
}
}
What will be the output ?
a) compilation error
b) 16
c) 64
d) 4
f) runtime exception

以下题目写个程序来测试一下

public class Eddy {
 public static void main(String args[]){
 int i=4;
 int j=2;
 methodA(i,j);
 System.out.println(i);
 }
 static public void methodA(int i,int j) {
 i<<=j;
 }

}

解析如下:

首先把4化成二进制数

4/2=2  0
2/2=1  0

100左移两位就是10000=(decimal)16

i<<=j然后把16重新赋值给j(注意:这里的<<=意思是左移完之后把值赋给j =是赋值操作符==是等于操作符)

而这里的i却一直没有变

Therefore, this issue is the result of:
D:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值