范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

必踩的坑之Java方法中形参实参传递

  首先亮明Java中方法参数传递的规则,这两点很重要: 如果实参是基本类型(包括包装类型)或者String,则实参不会变(传的是值); 如果实参是对象集合或者数组,则实参会改变(传的是引用)。
  上面这两条比较简单,笔者就不展开说了,这里只说一点,关于方法中引用的传递,很多人会踩坑,如下:
  我们先以数组举例,如下代码,很简单的几行,大家猜一下会最终输出的结果是什么样子的呢?
  public class PassByValueDemo {
  public static void main(String[] args) {
  int[] i = {0};
  new PassByValueDemo().Demo(i);
  // 这个地方还是0
  System.out.printf(Arrays.toString(i));
  } public void Demo(int[] i){
  // 这个实参为数组,传的是引用,其值会改变??? nonono,只是在这个方法中改变了,回到main方法栈中还是{0}。
  i = new int[]{1,2,3};
  System.out.println(Arrays.toString(i));
  }
  }
  根据第二条规则如果实参是对象集合或者数组,则实参会改变(传的是引用),大家很容易想到,这个实参为数组,传的是引用,其值会改变,那就大错特错了。这个只会在方法中短暂改变数组的值,回到main方法栈中还是{0}。
  实际输出如下:
  [1, 2, 3]
  [0]
  Process finished with exit code 0
  为什么会这样呢?具体分析如下: 我们先看main方法中第一行操作int [] i ={0},这个操作会在内存中开辟一个4字节大小的内存空间,然后返回其该数组的首地址,我们假设该数组的首地址值为0x1111,那么此时i就指向了内存中0x1111这么一个空间。内存地址为0x1111的空间存储了0; 继续往下指看,调用Demo方法,此时会保存mian方法栈的状态,包括i在mian方法中指向的内存空间,这里点很重要,很重要,重要,重要的事情说三遍。 在Demo方法中 new Int[] {1,2,3},这个操作会重新在内存中开辟一个空间,然后返回该数组的首地址的值,我们把这个地址值假设为0x2222,内存为0x2222存储了1,2,3;此时i的值指向了0x2222;那么这个时候输出i,当然会打印1,2,3; 执行完了Demo方法,我们回到main方法中,此时从虚拟机栈中恢复刚才进入Demo方法前保存的栈信息,在进入Demo方法前i是指向0x1111这么一个地址空间,进入前已经保存了栈中的局部变量表中(局部变量表可参考笔者该篇博文:点击我),我们现在取出来,那么i的指向的就是0x1111,而不是0x2222,此时打印的是0x1111指向的值,也就是0;
  虽然我们不能改变引用地址,但是可以改变引用指向的地址空间里的值,如下:
  public class PassByValueDemo {
  public static void main(String[] args) {
  int[] i = {0};
  new PassByValueDemo().Demo(i);
  System.out.printf(Arrays.toString(i));
  }
  public void Demo(int[] i){
  i[0] = 1;
  System.out.println(Arrays.toString(i));
  }
  }
  输出结果:
  [1]
  [1]
  Process finished with exit code 0
  熟悉C或C++的同学可以类比int *const(允许更改存储在地址中的值),而不是int const*(允许指针指向其他地址)。

马斯克特斯拉进军印度仍面临大量挑战来源盖世汽车占亚娥据外媒报道,1月13日,特斯拉首席执行官埃隆马斯克(ElonMusk)在推特上回答网友有关何时在印度推出电动汽车的问题时表示,特斯拉在印度仍在应对当地政府带来的诸荣耀手表GS3体验是百搭单品,也是腕上专业教练荣耀手表GS3正式开启预售了,作为一款全新黑科技智能穿戴产品,它以双轮驱动作为产品理念,并且引入了AI引擎技术以提升心率监测的准确性。换而言之,在外观设计和功能性上,荣耀都对这款智央视播放不老人生倪光南,新华社下架智慧山河,啥情况?1月6日,CCTV9播放了时长为20分钟的纪录片不老人生倪光南,充分肯定了倪光南院士对中国计算机领域的突出贡献。与此同时,新华社火速下架联想(智慧山河)视频,这是对舆论力量的尊重。诺基亚新6680渲染图自研N1芯片NOKIAUI系统,能否靠自己翻身在苹果手机市值非常高的今天,很多消费者都已经把当年的诺基亚给忘得一干二净了。当年诺基亚手机的销量非常高,很多消费者都以能拥有一部诺基亚手机而兴奋不已。而且诺基亚手机的工业设计能力也200元差价,iQOO9和iQOO8Pro有区别吗?这两款手机购买哪个好?我觉得纠结买iQOO9和iQOO8Pro的兄弟对直屏和曲面无感,反正只要好用,哪种屏幕都能接受。不凑巧的是,iQOO9和iQOO8Pro的屏幕差别还是蛮大的,而且iQOO数字系列即跟着大神回顾栩成云商AI智能外呼电销机器人系统科技在不断地在发展AI智能化浪潮已经来临,比如智能化办公丶智能化驾驶丶智能化办公家居AI智能电销机器人等等人工智能应用已经开始进入大家生活的各个方面,各大小型企业也都开始尝试着将智Windows遭受黑客勒索软件攻击连锁酒店转向ChromeOS系统微软的Windows是全球使用最广泛的操作系统之一,很多行业都离不开,当然它也是黑客攻击最多的系统,北欧一家连锁酒店就因为Windows系统遭遇勒索软件攻击,决定放弃该系统转向谷歌ZOL科技早餐iPhone14全系价格曝光,小米MIXFOLD2配置曝光1月13日晨,为您推送的科技消息01小米MIXFOLD2配置疑似曝光微博博主数码闲聊站曝光一款折叠屏机器配置,该机器搭载骁龙8Gen1芯片,内屏是2K分辨率高刷屏,外屏比例接近于正从iPhone13换到xiaomi12pro,体验两天接受不了,差距也太大了吧作为一个纯果粉,我从iPhone8开始用到iPhone13,觉得苹果就是手机界的尽头,其他牌子没有一部手机能比得上苹果。过年前想买一个备用机回老家用,主要是苹果在老家没信号,听朋友处理器骁龙888的手机realme真我GT骁龙888顶配价格2699vivox60tpro骁龙888顶配价格4299小米11骁龙888顶配价格4099小米11Pro骁龙888顶配价格4699OPPOFi小米12X超强劲敌,曲面屏骁龙870IMX766,到手价仅2079元雷军在上个月28号发布的小米12系列中,除了搭载骁龙8Gen1的小米12和12Pro之外,还有一款定位准旗舰的小米12X,不过这款小米12X很多网友都不看好,尽管该机不少配置和小米
PHEV车型的五大好处现在对很多即将要购买新车的车主而言,因为上牌难的问题头疼着。随着越来越多的新能源车型推出市场,能解决上牌难的问题,不少消费者开始将购车目标锁定在新能源车上。除了解决上牌难的问题外,瞄准影像芯片国内手机厂商加大自主研发力度来源人民网当前,随着短视频产业快速发展,用户越来越重视视频拍摄的质量,对手机提出了更高的摄影要求。可以看出,未来消费者不仅需要手机拍摄分辨率更高帧率更高的视频,还需要手机能实时对视荣耀手表GS3官图发布,极简风格圈粉潮流达人在前不久的荣耀Magic3系列发布会现场,荣耀手表GS3也迎来了首次亮相,虽然目前还未上架开售,也未正式揭晓价格,但仅仅是公布的实拍图就足够让网友们感到惊喜了。根据荣耀智慧生活官微别太相信销量说,以三款手机举例说明,聪明人更看重体验最近看到有一名用户表示销量高的手机一定不会差,不然不会这么多人买。这句话显然很片面,销量高不等于体验好,同样销量低的机型也不是说就值得买,而是要结合自身使用需求,剖析一款产品的优缺为抢占市场拼了!这五款手机8月底大降价,最低仅需2899元2021年,对于国内智能手机市场来说是最具特色的一年,随着昔日王牌巨头的市场逐步缩减,各大智能手机品牌纷纷开始寻求全新的突破,以便能够在短时间内迅速提高自身的市场份额。进入八月之后借开放超充网络布局充电市场,特斯拉胜算几何?近日,特斯拉掌门人埃隆马斯克在其个人推特上表示,特斯拉将在今年晚些时候向其他电动汽车开放其超级充电站网络。当前,特斯拉在全球范围内已经拥有超过2500座超级充电站。一旦对外开放,将移动支付两大巨头登热搜,资金放在支付宝里真的安全吗?欧界报道前段时间,因为阿里女员工的事件,阿里频频登上热搜,可以说存在感很足了,而近段时间的娱乐圈,似乎也不太平。从吴某凡入狱之后,娱乐圈迎来了大变动!很多艺人接连被封杀,而最令我们俄最高法院拒绝在全国境内禁售苹果手机(观察者网讯)据俄罗斯卫星通讯社8月31日报道,俄最高法院民事审判委员会在法院判决数据库中发布的相应裁判书显示,该院已经拒绝在俄罗斯境内禁售苹果公司产品。报道称,俄罗斯发明家阿尔塔广汽埃安超倍速随充随走,中国电动汽车的首个超充技术8月30日,广汽埃安正式发布了超充技术超倍速电池技术及A480超充桩,石墨烯基快充锂电池配合48kW超充桩,创纪录实现充电5分钟续航207公里,让充电像加油一样快,新能源汽车正式进俄最高法拒绝全境禁售苹果手机据俄罗斯卫星通讯社8月31日报道,俄最高法院民事审判委员会在法院判决数据库中发布的相应裁判书显示,该院已经拒绝在俄罗斯境内禁售苹果公司产品。新华社记者才扬摄报道称,俄罗斯发明家阿尔4亿大单!中兴中标,华为出局2021年8月4日,中国移动2021年至2022年PC服务器集中采购(网络云标包)招标公告发布,采购X86服务器14836台。项目不划标包,原则上12家供应商中标,若中标厂商为1家