java的值传递机制

1.针对于方法内变量的赋值举例:
System.out.println("***********基本数据类型:****************");
int m = 10;
int n = m;

System.out.println("m = " + m + ", n = " + n);

n = 20;

System.out.println("m = " + m + ", n = " + n);

System.out.println("***********引用数据类型:****************");

Order o1 = new Order();
o1.orderId = 1001;

Order o2 = o1;//赋值以后,o1和o2的地址值相同,都指向了堆空间中同一个对象实体。

System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);

o2.orderId = 1002;

System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " +o2.orderId);

规则:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

2.针对于方法的参数概念
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据

3.java中参数传递机制:值传递
规则:
* 如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
* 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。

推广:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

4.典型例题与内存解析:
【例题1】

【例题2】

最新文章

  1. [读书笔记]Java之静态分派
  2. 【随机化】bzoj4080 [Wf2014]Sensor Network
  3. Kali Linux Web 渗透测试视频教程—第十课 w3af
  4. P1179: [Apio2009]Atm
  5. iOS WebView的用法
  6. Android仿微信朋友圈,全文收起功能,附源码
  7. python基础6--面向对象基础、装饰器
  8. css 快捷修改 checkbox 及 radio的背景图
  9. falsk简单项目示例
  10. 一道面试题(C语言)
  11. C#反射の反射详解
  12. BZOJ3118 Orz the MST 【单纯形 + 生成树】
  13. Microsoft Project 常用快捷键
  14. 【BZOJ2019】nim
  15. linux系统web站点设置-http基础设置
  16. FileZilla等软件搭建ftp服务器
  17. HTML5学习笔记 音频
  18. phpmyadmin登录报错crypt_random_string requires at least one symmetric cipher be loaded 解决方法
  19. php+IIS 配置环境(windows环境)
  20. 60. Permutation Sequence(求全排列的第k个排列)

热门文章

  1. 数据结构之栈(Stack)
  2. 非线性规划的Matlab 解法
  3. [每日一题2020.06.07]codeforces Round #627 (Div. 3)
  4. 这一次搞懂Spring自定义标签以及注解解析原理
  5. mybatis读写分离
  6. 线程间配合:Condition、Semaphore、CountDownLatch、CyclicBarrier
  7. Apollo配置中心的实战
  8. 个人认为目前比较好用的ECMAScript(16-20)新特性
  9. script写在head与写在body中的区别
  10. TypeScript学习——数组、元组、接口(2)