A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 yangchao313 于 2013-8-7 20:57 编辑

public class Test {
   public 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);
   }
}


打印结果是4,为什么呢 ?帮忙解释一下

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 神马都是浮云

查看全部评分

7 个回复

倒序浏览
大哥,你调用的方法没有返回值啊,方法执行完了直接出栈了,那么你输出语句就自动找到你上面定义的I=4输出.

点评

基情四射啊  发表于 2013-8-8 15:28
怀疑有基情,说,你们是不是在搞基  发表于 2013-8-7 21:55
so da si le  发表于 2013-8-7 21:20

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
肥猫 发表于 2013-8-7 20:52
大哥,你调用的方法没有返回值啊,方法执行完了直接出栈了,那么你输出语句就自动找到你上面定义的I=4输出. ...

哦 谢谢了  
回复 使用道具 举报
leftshift(int i, int j) 没返回值,主函数掉不调用一个效果,最后获取的还是主函数里的初始值!
回复 使用道具 举报
{:soso_e123:}一个值类型也就是i = 4 ,j = 2这样的。leftshift(i, j)这个是引用类型的,两个不牵扯。i 的值不会改变还是4
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马