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

必踩的坑之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*(允许指针指向其他地址)。

新风守护神,车载好伙伴信山RHT车载便携空气净化器评测引言开车最烦什么?对机器猫来说,一是堵车,二是有人在车内抽烟。堵车浪费时间不说,还会吸入大量有害尾气,不利身体健康,有人在车内吸烟就更别提了,又呛又辣眼睛。但人在江湖飘,不得不低头聊一款具有统治力性价比的显示器小米24。5寸电竞显示器引言小米一直都以价格屠夫而著称,无论涉足哪一个领域,都是奔着把该行业洗牌重来的目标去的。小米在显示器领域算是个新丁,可是新丁实力不俗,迄今为止推出的五六款显示器口碑都还不错,至少没买芯片送手机,最便宜的骁龙865IQOONEO3体验评测引言如果你看了IQOONEO3的线上发布会,你一定记得,当价格页面的PPT出现在屏幕上的时候,弹幕瞬间爆炸,如雪花般几乎把整个屏幕盖得严严实实,那壮丽场面让机器猫印象极深。观众们对拉闸限电后,海运价格已经快速下跌拉闸限电小半个月后,海运价格快速下跌。从9月份开始,全国多个省份开始陆续拉闸限电,截至28日,辽宁吉林江苏浙江广东云南等地都相继发布有序用电或者限电通知很多企业都受到产能影响,多数realmeGT大师版2399元起,三千档对决小米,问鼎价格天花板?7月21日下午1400,realme的空中发布会现场准时发布了realmeGT大师探索版和大师版。这款宣称颜值巅峰影像巅峰屏幕巅峰的旗舰手机新品也确实调足了人们的胃口,从发布前的猛蒲公英X1智能旁路低成本建私有云组NAS,还能云打印最近发现丢三落四的毛病又严重了,经常早上慌慌张张去上班后发现辛苦赶了半宿的PPT没带,或者某个表格又忘在了家里,真的十分耽误事。当然也想到过用云文档等来解决这个问题,但是遇到大的图9。9就能在宜家买到的10样家居好物,便宜好用不翻车9。9就能在宜家买到的10样家居好物,便宜好用不翻车宜家相信大家都很熟悉了,它并只是一个简单的家居卖场,对于消费者来说,它所提供的还有良好的服务质量以及符合现代年轻人审美的高颜值产油烟机选购指南!发现优质油烟机,打造高品质居家环境油烟机选购指南!发现优质油烟机,打造高品质居家环境高质量的厨房是现代人的追求,如今厨房不仅是制作没事的地方,还是主人生活品质和审美的体现。所以现在的人愿意在厨房装修上下很大功夫,但红米K40游戏版信息全部被曝光,价格或成为唯一槽点?随着红米K40游戏版发布会逐渐临近,可以说整个手机的全部信息均已经被曝光了。可以说现在这款手机已经让人满怀期待,某东上该机的预约量早已经突破了20万人,可见网友们对这款机型有多期待红米官宣游戏手机,天玑1200大电池,卢伟冰价格让人无法拒绝目前手机游戏越来越流行,但是游戏手机始终是一个很小的类目。究其原因,主要还是因为目前游戏手机除了游戏体验出色之外,其他方面表现实在太离谱了,比如厚重的机身拉胯的拍照以及夸张的造型,折叠屏中的价格屠夫,小米MIXFOLD明日首销,恐一机难求最近几年,手机厂商中小米的进步是有目共睹的。去年小米凭借小米10成功站稳了40005000元档位的市场,即便放到现在,小米10的整体配置和体验依然不过时。今年小米春季发布会更是发布
营收2459亿,智能手机以外,小米收获智能家居红利文杨剑勇过去一年全球遭遇新冠大流行,不少企业经营受到一定冲击,营收与利润呈现双双下滑的局面。不过,在面向消费科技市场,全球消费者对智能手机智能家居等智能设备依旧保持了强劲的需求,营远离不靠谱的共享男友共享网络才是真爱如果要问当下最热的商业模式是什么?那么无疑非共享经济莫属了。滴滴优步等率先开辟共享租车时代,摩拜OFO随即部署共享单车市场,共享雨伞兴起,共享充电试水,共享按摩落地一时间,天下生意翼联EDUP5Gwifi终于来了!什么是5GCPE?本来4G已经够快,这不又冒出个5G来。最高速率从300Mbps跃升到Gbps级别,5G着实令人期待。要尝鲜5G,就必备最新最贵的5G手机吗?不然,只需一台5GCPE,任意手机和电脑小身材大能量翼联EDUP1683千兆双频USB无线网卡带你自由飞翔毫无疑问,WiFi已经成为人们生活的一部分。笔记本和手机联接WiFi轻而易举,台式机怎么办?拆机插卡装驱动,有没有简单的无线上网方式?小白玩家如何是好?翼联EDUP1683无线网卡翼联EDUP4G路由器WAN口和LAN口有何不同不同大小SIM卡如何区分随着4G路由器的广泛适用,4Gwifi为人们带来了更为经济又快又稳的上网体验。4G路由器,WAN口LAN口在有线上网时是否支持盲插?各有什么不同作用呢?可插卡的全网通4G路由器,内翼联EDUP爱上科普4G网速到底有多快什么是4G比3G快,比5G省,这是人们对于4G的印象。那么,4G究竟有多快?5G汹涌演进之下,迭代升级的4G是什么东东?且让翼联EDUP带您略窥一二。4G到底有多快?4GLTE允许最多110翼联EDUPCPEMiFi和WiFi傻傻分不清?一文读懂4G无线路由器假洋鬼子中英夹杂的做派已不大流行,孔乙己指间茴香豆的四种写法也早已散尽,计算机网络和通讯电子的蓬勃发展见证了一个世纪的盛衰兴替。如今,4GLTE已全面覆盖,无线WiFi成为日常所需翼联EDUP家用和工业4G路由器有何不同工业4G路由和DTU有啥区别4G路由器是一种无线通信路由器,利用4G无线网络为用户提供数据联网传输的功能。家用级和工业级的4G路由器虽然主要都是为了提供上网功能,但在实际使用过程中还是有很大区别的。翼联EDU超远距离WiFi如何传输?论无线网桥的重要性什么是无线网桥?无线网桥顾名思义就是无线网络的桥接,它利用无线传输方式实现在两个或多个网络之间搭起通信的桥梁。无线网桥除了具备有线网桥的基本特点之外,无线网桥工作在2。4G或5。82021年首航启辰D60PLUS幸福启程全满意,幸福启程。3月12日,东风日产启辰D60PLUS正式上市,售价为8。88万9。98万元。同时推出启辰D602021款,售价6。98万。D60系列价格与在售车型一致,价值有了硬核K世代OPPOK5凭这几方面领衔双十一千元机市场随着智能手机的发展,千元机的性能已经有了显著的提升,而各大手机厂商也是为了赢得更多消费者的关注推出了不少性能强大的千元机。说到千元机,OPPO在10月分发布的OPPOK5就在刚刚结