全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈Java中方法参数传递的问题

可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。这种传递方式,我们称为参数传递。在这里,定义方法时,参数列表中的变量,我们称为形式参数。

调用方法时,传入给方法的数值,我们称为实际参数

在Java中调用方法时,如果参数是基本类型(byte/short/int/long/float/double/char/boolean)以及String类型时,形式参数的改变不影响实际参数。

以下代码在内存中发生的动作:

最开始时,方法区中存入main()方法文件,然后在栈中main()方法入栈(压栈),局部变量入栈初始化,执行到change()方法,方法区中有change()文件,接着change()入栈,实参a/b将自己的值赋值给形参a/b,执行方法中的代码,形参a变为20,形参b变为40,执行完后,change()方法立刻出栈(弹栈),形参a/b也从内存中消除。期间并没有影响到实参的值。

如果是引用数据类型(不包括String),比如数组int[ ],形参的改变会影响到实参。

最开始时,方法区中存入main()方法文件,然后在栈中main()方法入栈(压栈),创建用静态方法创建数组,相当于new了一个int[],凡是new出来的都要进入堆中,在堆中划出一块内存空间,分成5份用来存储5个元素,先初始化元素的值全为0,然后将每个变量赋值1,2,3,4,5,然后将开辟的这块内存地址0x1234赋给arr。执行到change()方法,方法区中有change()文件,接着change()入栈,实参arr将地址值赋值给形参arr,实参和形参都指向堆中开辟的内存,然后在change()中,将数组中的偶数元素变为2倍,改变的就是堆内存中的数据。然后change()方法执行完后出栈,主方法中打印数组,实参arr仍指向对内存中的已经改变的数组,并输出。形参的改变影响到实参的数值。

对于String类型比较特殊,它本身是引用数据类型,但是在这里按基本数据处理。因为字符串的本质是字符数组,在方法区中有专门一块地方叫字符串常量池用来存储字符串常量.这里记住:凡是用双引号引起来的都是字符串常量,存储在字符串常量池当中.如图中的”hello”字符串存储在字符串常量池中,地址值为0x666,然后Stirng str1 = new String(“hello”),在堆中开辟一块内存,将”hello”的地址值0x666存储在内存中,同时将该内存的地址值0x999赋给str1.然后String str2 = “hello”,将”hello”的地址值0x666直接赋给str2.

String有一个特点,每改变一次就会在字符串常量池中生成一个新的常量,比如String s = ”hello”在字符串常量池中的地址是0x666,然后s = “hello”+1,此时的字符串常量池会开辟一块新的空间给”hello1”,地址值为0x333,再将地址值赋值给s.所以,String s = “hello”,将s作为实参传递给方法时,无论形参中的s怎么改变都不会影响到0x666的”hello”,也不会影响到实参s.所以String虽然作为引用数据类型,但它形参的变化不会影响到实参.

以上这篇浅谈Java中方法参数传递的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java方法参数传递  # Java 方法的重载与参数传递详解  # Java方法参数传递如何实现  # Java方法参数传递机制原理解析  # Java方法的参数传递机制实例详解  # 深入解析Java编程中方法的参数传递  # Java中方法作为参数传递的方式  # 影响到  # 区中  # 堆中  # 在这里  # 池中  # 给大家  # 完后  # 值为  # 自己的  # 都是  # 都要  # 会在  # 希望能  # 数据处理  # 可以使用  # 当我们  # 这块  # 会把  # 这篇  # 但它 


相关文章: 如何在宝塔面板中创建新站点?  微课制作网站有哪些,微课网怎么进?  如何在IIS中新建站点并配置端口与IP地址?  智能起名网站制作软件有哪些,制作logo的软件?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何快速打造个性化非模板自助建站?  为什么Go需要go mod文件_Go go mod文件作用说明  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  C++如何编写函数模板?(泛型编程入门)  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何在阿里云香港服务器快速搭建网站?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  如何确保FTP站点访问权限与数据传输安全?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  电商网站制作价格怎么算,网上拍卖流程以及规则?  建站主机服务器选型指南与性能优化方案解析  ,网站推广常用方法?  建站之星在线客服如何快速接入解答?  如何用好域名打造高点击率的自主建站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何零成本快速生成个人自助网站?  实现虚拟支付需哪些建站技术支撑?  如何登录建站主机?访问步骤全解析  营销式网站制作方案,销售哪个网站招聘效果最好?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  网站企业制作流程,用什么语言做企业网站比较好?  如何获取上海专业网站定制建站电话?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  如何通过FTP空间快速搭建安全高效网站?  建站之星伪静态规则如何正确配置?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何快速启动建站代理加盟业务?  制作网站的软件免费下载,免费制作app哪个平台好?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何在香港服务器上快速搭建免备案网站?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  如何选购建站域名与空间?自助平台全解析  MySQL查询结果复制到新表的方法(更新、插入)  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  建站主机数据库如何配置才能提升网站性能?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在局域网内绑定自建网站域名?  招商网站制作流程,网站招商广告语?  如何在搬瓦工VPS快速搭建网站?  简单实现Android验证码  建站主机选哪家性价比最高?  如何快速搭建FTP站点实现文件共享?  建站主机系统SEO优化与智能配置核心关键词操作指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。