刚刚学习java传参的时候很纠结,也非常的不理解!课本上的“按值传递”和“按址传递”搞的自己是一头雾水,后来写的项目多了,自然就明白了!

现在写传参几乎就是条件反射一般——“秒成”,分享当初自己为此写的一个ppt,留个纪念!非常简单,高手莫笑!

按值传递和按址传递的对比

同样都是传入参数,为什么变量a的值没改变,而b[0]的值改变了呢?

两种参数传递的规则

用基本数据类型传参常见的一个错误!

—目的:用传参的方法将一个数的值增加至原来的3倍。

结果:输出i=10。

解释:当执行方法的时候,n拷贝了i的数值,并形成一个副本n=10;执行n=n*3;后n的值变为30;方法结束后,n不再使用,对先前的i没有任何的影响;所以此时输出的i=10.

所以要想增加三倍后生效正确的方法是:

—结果:输出i=30。
—解释:当执行方法的时候,n拷贝了i的数值,并形成一个副本n=10;执行n=n*3;后n的值变为30,并将n的值用return返回,调用方法时,返回后的n的值又赋值给变量i,所以此时输出的i=30.
 
注意:

String类型是引用数据类型但它按值传递

String类型的数组按址传递

总结

—按值传递的数据类型:八种基本数据类型和String
—按址传递的数据类型:除String以外的所有复合数据类型,包括数组、类和接口

最新文章

  1. 一道关于java序列化的问题,看大家知多少————
  2. 遇到的Exception/error及解决办法记录汇总
  3. Max double slice sum 的解法
  4. SSH----MVC框架模式与分层架构
  5. KindEditor得不到textarea值的解决方法
  6. [CareerCup] 16.5 Semphore 信号旗
  7. zw版【转发·台湾nvp系列Delphi例程】HALCON FillUp2
  8. 大话string
  9. [BZOJ 1084] [SCOI2005] 最大子矩阵 【DP】
  10. #define 和 typedef场合
  11. CDZSC_2015寒假新人(2)——数学 P
  12. Balsamiq Mockups registration code
  13. openNebula 运维系列虚拟机virtual machines operations
  14. Python之while循环
  15. FFmpeg 开发环境搭建及第一个程序 Hello FFmpeg 编写
  16. JWT(JSON Web Token)
  17. maven build resources
  18. HOOK - 低级鼠标Hook
  19. 插入排序算法 Java实现
  20. CSS Border(边框)

热门文章

  1. 《C和指针》 读书笔记 -- 第13章 高级指针话题
  2. 微软职位内部推荐-This Job is no longer available.
  3. spring的三种注解管理器
  4. 1063: [Noi2008]道路设计 - BZOJ
  5. 【贪心】 BZOJ 3252:攻略
  6. BZOJ 1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
  7. hdu 1272
  8. 【NGUI】屏幕自适应(不用UIStretch,用UIRoot)---------------good
  9. [js综合问题汇总]js窗口关闭事件,表单名称,父窗口子窗口,var变量名
  10. html5移动web开发实战必读书记