游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

值传递与引用传递

  值传递intn1;intn1n;n120;System。out。println(nnn1n1);
  上面n和n1的输出结果分别为1,20。这就说明n1值的改变,不影响n的值
  基本数据类型之间赋值,属于值传递(值拷贝)
  下面从jvm层面分析下原理。使用javapvxxx。class命令,获取字节码文件的汇编指令publicstaticvoidmain(java。lang。String〔〕)throwsjava。io。IOException;descriptor:(〔LjavalangString;)Vflags:ACCPUBLIC,ACCSTATICCode:stack3,locals3,argssize10:iconst1将常量1压入栈中1:istore1常量1出栈,保存到局部变量表,槽点为1的位置2:iload1常量1入栈3:istore2常量1出栈,保存到局部变量表,槽点为2的位置4:bipush20将常量20压入栈中6:istore2常量20出栈,保存到局部变量表,槽点为2的位置7:getstatic2FieldjavalangSystem。out:LjavaioPrintStream;10:new3classjavalangStringBuilder13:dup14:invokespecial4MethodjavalangStringBuilder。init:()V17:ldc5Stringn19:invokevirtual6MethodjavalangStringBuilder。append:(LjavalangString;)LjavalangStringBuilder;22:iload123:invokevirtual7MethodjavalangStringBuilder。append:(I)LjavalangStringBuilder;26:ldc8Stringn128:invokevirtual6MethodjavalangStringBuilder。append:(LjavalangString;)LjavalangStringBuilder;31:iload232:invokevirtual7MethodjavalangStringBuilder。append:(I)LjavalangStringBuilder;35:invokevirtual9MethodjavalangStringBuilder。toString:()LjavalangString;38:invokevirtual10MethodjavaioPrintStream。println:(LjavalangString;)V41:returnLineNumberTable:行号表,代码的行号与指令索引的映射关系line58:0line59:2line60:4line61:7line79:41LocalVariableTable:局部变量表StartLengthSlotNameSignature0420args〔LjavalangString;2401nI4382n1I
  从字节码指令中,不难看出,变量n,n1分别存储在局部变量表的槽点1,2位置上。执行intn1,在LocalVariableTable中的槽点1的位置存放变量n,值为1执行intn1n,在LocalVariableTable中的槽点2的位置存放变量n1,值为1执行n120,将20赋值给槽点2的变量n1,槽点1中的变量n的值不变。
  以上得出,基本数据类型赋值,是值传递,后面再对任一变量修改,其实改的是不同地方,所以互不影响。引用传递int〔〕arr{1,23,3};int〔〕arr1arr;arr1〔0〕120;
  问题:
  上面代码执行完了,数组arr的第一个元素的值是否也变成了120?
  下面咱们从字节码指令进行分析publicstaticvoidmain(java。lang。String〔〕)throwsjava。io。IOException;descriptor:(〔LjavalangString;)Vflags:ACCPUBLIC,ACCSTATICCode:stack4,locals3,argssize10:iconst3常量3入栈1:newarrayintnew一个长度为3的数组3:dup复制数组对象引用地址入栈4:iconst0数组角标常量0入栈5:iconst1常量1入栈6:iastore出栈,将栈顶int型数值1存入数组的索引0的位置7:dup复制数组对象引用地址入栈8:iconst1数组角标常量1入栈9:bipush23常量23入栈11:iastore出栈,将栈顶int型数值23存入数组的索引1的位置12:dup复制数组对象引用地址入栈13:iconst2数组角标常量2入栈14:iconst3常量3入栈15:iastore出栈,将栈顶int型数值3存入数组的索引2的位置16:astore1数组对象引用地址出栈,保存到局部变量表,槽点1的位置,变量名为arr17:aload1槽点1中的变量arr引用地址入栈18:astore2栈顶变量arr引用地址出栈,保存到局部变量表,槽点2的位置,变量名称为arr119:aload2槽点2中的变量arr1引用地址入栈20:iconst0角标常量0入栈21:bipush120常量120入栈23:iastore出栈,将栈顶int型数值120存入数组的索引0的位置24:returnLineNumberTable:line63:0line64:17line65:19line77:24LocalVariableTable:StartLengthSlotNameSignature0250args〔LjavalangString;1781arr〔I1962arr1〔IExceptions:throwsjava。io。IOExceptionMethodParameters:NameFlagsargs
  从字节码指令中可以看出,数组arr,arr1都指向了同一个数组对象地址,当对数组某个角标的值进行改变,引用这个数组的所有变量的值都发生了改变。

一元二次方程的应用教学反思一元二次方程的应用是在学习了前面的一元二次方程的解法的基础上,结合实际问题,讨论了如何分析数量关系,利用相等关系来列方程,以及如何解答。列方程解决实际问题,最重要的是审题……欧洲早期封建国家教学目标了解和掌握法兰克王国的建立,查理大帝和查理曼帝国,凡尔登条约和法国、得意志、意大利三个主要封建国家的初步形成,英吉利王国的形成,西欧封建制度的确立,西欧封建等级制……给自己安个家教学目的与要求(1)了解网上浏览的目的之一就是要下载信息。(2)掌握文字、图片、网页下载的基本操作。(3)培养学生在因特网上获取信息的兴趣和能力。教材分……六年级语文负荆请罪说课稿范文(精选3篇)作为一名教职工,很有必要精心设计一份说课稿,说课稿是进行说课准备的文稿,有着至关重要的作用。写说课稿需要注意哪些格式呢?下面是小编帮大家整理的六年级语文《负荆请罪》说课稿,仅供……2022移动支付行业发展趋势有哪些?行业市场规模及发展趋势分移动支付行业市场规模及发展趋势分析目前国内移动支付的领导者主要是支付宝和腾讯金融,用户非常广泛,占据了国内移动支付平台的最大市场份额,其他移动支付平台一般只在一个很小的特……比特币价格下跌超10新华社纽约5月23日电(记者刘亚南)受监管层面利空消息影响,比特币、以太币和瑞波币等加密货币价格23日早间显著下跌,在过去24时内跌幅均超过10。市场信息机构比特币柜台网……走进信息世界的教案设计【活动目标】、了解现在主要是通过哪些途径来获取信息,认识信息与我们生活、工作和学习的密切关系。、初步养成留心信息的好习惯,逐步学会搜集信息、运用信息,善于和别人交流……Go语言channel的阻塞问题Hello,大家好,又见面了!上一遍我们将channel相关基础以及使用场景。这一篇,还需要再次进阶理解channel阻塞问题。以下创建一个chan类型为int,cap为3。c……可贵的沉默教学设计模版学习目标1。认识迅、蕴、霎等9个字,会写贺、顾、迅等14个字,能正确读写祝贺、神气十足、左顾右盼等词语。2。正确、流利、有感情地朗读课文。3。读懂课文主要内容……小班音乐爱唱歌的小鹦鹉活动目标:1初步理解故事内容,并根据图画线索猜测故事角色。2积极表述故事中小动物的对话。3感受故事的情趣,体验关爱朋友的美好情感活动准备:1。大故……化学记忆十大绝招1、理解记忆法。记忆有机械记忆和理解记忆之分。理解记忆是建立在对事物内在规律理解的基础上的记忆,其效果远远超过死记硬背的机械记忆。2、有意记忆法。记忆可分为有意记忆和无意……人民的选择历史的必然教学设计专题四、民主集中制:我国人民代表大会制度的组织和活动原则一、《民主集中制:我国人民代表大会制度的组织和活动原则》分述(我国的国家管理形式)1、人民的选择历史的……
课文我的老师教学设计教学目标1掌握本课生字新词:连翘、拐杖、女娲、沾起、胳膊、蜈蚣、淳朴、2正确、流利、有感情地朗读课文。从文章内容的感悟分析中,了解刘老师的人物特点和内心世界,学会与……使用古往今来造句使用古往今来造句1、花,古往今来,有多少诗人为之纵情吟咏,高声赞美。2、在梁启超看来,古往今来,一切事物都离不开进化这个大理,中国历史当然也不能例外。3、因为……大班健康调皮的球教案〔活动目标〕1、能调动身体控制球进行多种小游戏。2、能与同伴合作共同玩球。〔活动准备〕1、大小不一,种类不同的球若干,如排球、乒乓球、网球、篮球、足球、……湘教版看戏教学反思教学反思是教师教学实践水平提高的一个重要的渠道、环节和手段。下面是关于湘教版看戏教学反思的内容,欢迎阅读!湘教版看戏教学反思1、拓宽学习空间语文学习不应是仅仅局限于……探索二龙口洞,用vivoX60Pro探明极暗光场景凭借着超大底第二代微云台的出色发挥,vivoX60Pro最近可谓是风头正劲,而作为一家对传统文化和历史传承非常重视的企业,vivo一直致力于这方面的工作。从去年的vivoX50……win10镜像安装后没有网上邻居的解决方法有一位刚刚升级win10镜像系统的深度技术用户,电脑系统安装好之后发现桌面上没有网上邻居的图标,之前他使用的win7旗舰版系统明明都存在的,那么win10系统有网上邻居吗?下面……钓鱼的启示的说课稿教材分析这篇课文回忆34年前,鲈鱼捕捞开放日的前一个傍晚,我和父亲去钓鱼,我把鲈鱼放回湖里,使我从中获得终身启示的事,说明从小受到严格的教育,就会获得道德实践的勇气和力量……小班绘本妈妈抱抱我活动目标:1。观察图画,了解动物妈妈对动物宝宝表达爱的方式。2。从动物的拥抱中,感收妈妈的爱和拥抱的温馨。活动准备:1。绘本《妈妈抱抱我》ppt课件。……进一步加强中小学幼儿园安全保卫和管理工作各省、自治区、直辖市教育厅(教委),新疆生产建设兵团教育局:今年5月8日上午,一犯罪嫌疑人持汽油闯入河南省巩义市河洛镇石关村一非法民办幼儿园纵火,截止当日上午12时,已造……关于勇往直前的成语造句1。虽然是一片冰天雪地,但战士们仍毫不犹豫地勇往直前,必须保证在规定时间内到达预定地点。2。尽管前路艰难险阻,我依然会竭尽全力勇往直前。3。面对灾难,每一个中国人都……喝水的学问课后教学反思反思一本次教学主要是让学生认识到水是人体最重要的营养物质,他是构成人体最重要的成分,占人体的百分之六十。让学生认识到:常喝饮料的害处;不能喝生水;一次喝水不能喝太多;运动……摩擦力教学反思范文作为一名到岗不久的人民教师,我们需要很强的课堂教学能力,借助教学反思我们可以拓展自己的教学方式,来参考自己需要的教学反思吧!下面是小编帮大家整理的摩擦力教学反思范文,仅供参考,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网