public class Test{ static void leftshift(int i, int j){ i<<=j; } public static void main(String args[]){ int i=4, j=2; leftshift(i,j); System.out.println(i); } } what is the result? A. 16 B. 4 为什么答案是4啊 想不通
因为只是把i的值2传到了上面的方法中,而不是把i传到上面得参数中, 因此,i的值是2,不会改变 public class Test{ static void leftshift(int i, int j){ i<<=j; System.out.println(i); } public static void main(String args[]){ int i=4, j=2; leftshift(i,j); } } 这样写答案回成16的
如果懂得值传递和引用(地址)传递的区别,应该很好理解的
(2):在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义字符串方式:String str = “Java私塾”;
因此,i的值是2,不会改变
public class Test{
static void leftshift(int i, int j){
i<<=j;
System.out.println(i); }
public static void main(String args[]){
int i=4, j=2;
leftshift(i,j);
}
}
这样写答案回成16的