java 参数传值的练习题及答案_java方法参数传递面试题三则

传值还是传引用是Java中很基础的一个问题,也是笔试的时候经常被考察的一个问题,总结一下。

题目1: 写出以下程序的输出内容。

public class Test {

public static void changeValue(int value){

value = 0;

}

public static void main(String[] args) {

int value = 2010;

changeValue(value);

System.out.println(value);

}

}

求输出结果。

答案:

2010

这个题目考察了java方法的参数传递问题。java中方法的参数传递为值传递,不管这个参数是基本类型还是引用类型,我们传递过去的都是该值的一个副本,这个副本作为方法的局部变量保存在栈(stack)中。

对于上面的 changeValue() 方法,传递进来的是变量 value 的一个副本,在 changeValue() 方法中修改的只是该方法的一个局部变量,不会影响作为参数传进来的那个变量,两者井水不犯河水。

题目2: 写出以下程序的输出内容。

public class Test {

public static void changList(List list){

list.add("bbb");

}

public static void main(String[] args) {

List list = new ArrayList();

list.add("aaa");

changList(list);

System.out.println(list.size());

}

}

答案:

2

说明:

main()方法在调用changeList()方法的时候,changList()方法中的list变量是main()方法list变量的副本,这两个list变量都指向heap中的同一ArrayList对象,因此操作的也是同一对象。

题目3:写出以下程序的输出内容。

public class Test {

public static void changString(String str){

str = str + "bbb";

}

public static void main(String[] args) {

String str = "aaa";

changeString(str);

System.out.println(str);

}

}

答案:

aaa

说明:

changString()方法仅仅使本地变量str指向了一个全新的字符串对象”aaabbb”,对main()方法中的str变量没有任何影响。

对java方法参数传递的总结:

基础数据类型(int,char,……)传值,对象类型(Object,数组,容器……)传引用。

有说java方法参数都是传值的,理解方式不同而已。引用本身也是值(对象地址)。

传值方式,传递的是值的副本。方法中对副本的修改,不会影响到调用方。

传引用方式,传递的是引用的副本。此时,形参和实参指向同一个内存地址。对引用副本所指向的对象的修改,如修改对象属性、容器内容等,会影响到调用方。对引用副本本身(对象地址)的修改,如设置为null,重新指向其他对象,不会影响到调用方。

只要知道传引用时,也是传递的引用的副本,就比较容易理解了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何限制浏览器使用_论如何优雅地使用chrome 浏览器

chrome 浏览器目前已经算得上是在浏览器市场独占鳌头了,就连它的最强对手IE也不得不低下头颅改用Chromium内核,这让chrome 浏览器更是没有对手了,但是你真的了解这个你时时刻刻都在用到的浏览器吗?今天装糊涂先森就来教你如何优雅…

520,一份给程序员的“硬核”脱单秘籍

简介: 各位,520快乐! 今天是个粉红色的日子,我们来聊聊和技术无关的“技术活”,比如:“如何表白?”当技术人碰上心动的姑娘,他的浪漫开关就打开了。 各位,520快乐&#…

95后架构师晒出工资单:狠补了这个,真香...

前段时间看见某95后阿里P7晒出工资单,我是真酸了……只能狠补一下技术了。Java 一面基本上都是基础题,同样是 CURD 的活,谁更熟练要谁,比如下面这个Java面试手册,八股文越熟练越容易通过 Java 面试。这份资料内容涵盖极…

阿里云 EDAS 3.0 助力唱鸭提升微服务幸福感

简介: EDAS 3.0 提供的微服务治理,很好的支持了唱鸭 APP 实现微服务应用的发布、监控、管理等日常业务场景。作为运维侧的重要平台和开框架的提供者,EDAS 3.0 帮助用户可以更专注业务。微服务架构升级后,业务具备水平扩展能力&…

java 生产者消费者 demo_生产者与消费者--demo1---bai

import java.util.ArrayList;import java.util.List;import java.util.Random;//自定义类,描述仓库public class StoreHouse{private List products new ArrayList(); //仓库的所有商品的列表public void add(String product){this.products.add(product);}Random …

python字典是什么数据结构_Python常用数据结构——字典

Time will tell.前言迄今为止,我们已经为大家介绍了Python中的三种容器型数据类型,但是这些数据类型还不足以帮助我们解决所有的问题。例如,我们要保存一个人的信息,包括姓名、年龄、体重、单位地址、家庭住址、本人手机号、紧急联…

Serverless:这真的是未来吗?(二)

简介: 在关于无服务器的第二篇文章中,我们将讨论一些更广泛的问题。再次强调,我们并不是要做硬性规定。我们想提出一些观点,以促进所有利益相关者之间的讨论。许多说所有应用程序都将是无服务器的应用程序的人并未大规模运行其应用…

删除超过10亿用户的数据,Facebook 关闭面部识别系统

整理 | 祝涛 出品 | CSDN(ID:CSDNnews)Facebook周二宣布,计划在本月关闭其已有10年历史的面部识别系统,并删除超过10亿用户的面部扫描数据,原因是这项技术的使用引发了越来越多的社会担忧。Facebook新…

参与 Apache 顶级开源项目的 N 种方式,Apache Dubbo Samples SIG 成立!

简介: 一说到参与开源项目贡献,一般大家的反应都是代码级别的贡献,总觉得我的代码被社区合并了,我才算一个贡献者,这是一个常见的错误认知。其实,在一个开源社区中有非常多的角色是 non-code contributor&a…

python中bar的用法_python使用matplotlib绘图 -- barChart

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面 中有上百幅缩略图,打开…

java在cmd中什么意思_为什么在cmd中java可以运行,javac不行?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Path: C:\Program Files\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_05\bin;C:\Program F…

重磅 | 《中国移动云网一体产品白皮书(2021)》发布!

11月1日—11月3日,2021中国移动全球合作伙伴大会在广州隆重召开。11月2日,中国移动云能力中心副总经理孙少陵发表了《移动云技术内核2.0》主旨演讲,并在会上发布了《中国移动云网一体产品白皮书(2021)》。云网一体是市…

Flink 最佳实践之使用 Canal 同步 MySQL 数据至 TiDB

简介: 本文将介绍如何将 MySQL 中的数据,通过 Binlog Canal 的形式导入到 Kafka 中,继而被 Flink 消费的案例。 一. 背景介绍 本文将介绍如何将 MySQL 中的数据,通过 Binlog Canal 的形式导入到 Kafka 中,继而被 F…

我的工作网怎么样_分享一下我在珍爱网的相亲经历

分享一下我在珍爱网的相亲经历相亲对于单身人士来说并不是陌生词语,很多人可能都有比较丰富的相亲经验,但是对我而言,相亲,一直都是贬义词,我觉得一个没有能力的人才会指望相亲解决个人感情问题,万万没想到…

参数校验优雅实践

简介: 希望本文可以帮助到大家,可以用一种优雅方式接入参数校验,保护系统解放自身,从你我做起! 作者 | 中野 来源 | 阿里技术公众号 一 不厌其烦的 if else? 参数校验,为了保护自己的代码,一般…

【实践案例】Databricks 数据洞察 Delta Lake 在基智科技(STEPONE)的应用实践

简介: 获取更详细的 Databricks 数据洞察相关信息,可至产品详情页查看:https://www.aliyun.com/product/bigdata/spark 作者 高爽,基智科技数据中心负责人 尚子钧,数据研发工程师 1、基智科技 北京基智科技有限公司…

java springmvc搭建_【JavaEE】Springmvc+Spring搭建方法及example

这一篇在前一篇Springmvc的基础上,加上Spring。Spring的主要用途叫做控制反转(依赖注入,IoC/DI)和面向切面的编程(AOP),本文只介绍IoC,因为AOP主要的应用场景是记录日志,暂时不需要,等我要整合的几个框架都…

腾讯王巨宏:开源是一项长跑,与开发者共赢开源未来

11月4日,2021腾讯数字生态大会Techo Day技术峰会在武汉召开,腾讯首次披露了在5大技术领域的开源新进展,并回顾了腾讯开源的四大变化。 腾讯公司副总裁王巨宏表示,云与开源共生共荣、相互支撑,共同为用户和开发者创造价…

python安装找不到硬盘_python2.7下安装theano

今下午在新硬盘上面重新升级Python2.7的时候,升级完之后,发现pip还是不行,使用“# wgethttps://bootstrap.pypa.io/ez_setup.py -O - |python”提示找不到libpython2.7.so.1.0,经过查找,可以使用如下方法解决&#xff…

【阿里云EMR实战篇】以EMR测试集群版本为例,详解 Flink SQL Client 集成 Hive 使用步骤

简介: 以测试集群版本为例(EMR-4.4.1)—— Flink SQL Client 集成 Hive 使用文档 作者:林志成,阿里云EMR产品团队技术支持,拥有多年开源大数据经验 1、以测试集群版本为例(EMR-4.4.1&#xff…