java中都是值传递

如果参数是引用类型的,实际上是把引用地址复制了一份传递
例如 User user = new User();
user存放在栈中,里面存放着内存地址,new User()会在堆中初始化一块内存区域,存放user的实际内容
例1:
public void pass(User user) {
user.setName("zz");
}
这是直接对堆内数据进行修改,而不是对对象地址进行改变,会让人误以为是引用传递
例2:
public void pass(User user) {
user = new User();
user.setName("zz");
}
这是在堆内存中又初始化User对象,然后把内存地址赋值给user,此时该user与之前的user就不是同一个了,
如果是引用传递的话,此处对user进行修改,会导致实参也进行改变。

最新文章

  1. VS2012 单元测试之泛型类(Generics Unit Test)
  2. phpcms 完美实现 导航栏当前栏目高亮
  3. pip的安装及使用
  4. Windows中APACHE开启fastcgi后无法连接数据库
  5. C语言的本质(33)——GCC编译器入门
  6. oracle传输表空间功能测试(含详细过程)
  7. Laravel 5.1 ACL权限控制 四 之middleware
  8. Redis系统学习 二、数据结构
  9. C#的for循环使用方法
  10. kickstart部署及使用
  11. [bzoj1227] [SDOI2009]虔诚的墓主人
  12. Python中Template使用的一个小技巧
  13. 【开发】iOS入门 - Touch事件处理学习笔记
  14. Xtrabackup的安装与使用
  15. IntelliJ IDEA 性能优化
  16. 【BZOJ】3123: [Sdoi2013]森林
  17. 卸载系统自动jdk
  18. SNF快速开发平台MVC-甘特图
  19. HDU-2586-裸LCA入门-tarjan离线
  20. centos 7 安装sqoop 1.4.7

热门文章

  1. CentOS 7 下 ifconfig command not found 解决办法
  2. scala初学笔记
  3. Digital image processing(数字图像处理)
  4. spark安装配置(scala不是必须的,基于java虚拟机,因此scala可以不配,但是开发需要可以配)
  5. CentOS系统中Tomcat安装配置
  6. 微信公众平台开发框架 Bee.WeiXin
  7. 第一个.NET Core应用,创建.NET Core命令
  8. SAH Benchmarks Of Natural History Museum Scene
  9. UML uml基础知识
  10. webstorm中新建vue工程