两段交换代码轻松理解Java参数传递机制
2015-12-10 14:53
956 查看
一、Java把内存分为两种:
1、栈内存,用来存放基本类型变量以及对象的引用变量;
2、堆内存,用来存放new关键字创建的对象与数组;
二、Java里方法的参数传递方式只有一中——值传递,即是将实际参数复制一份传入方法中,实际参数本身不会受到任何影响,参照C语言中的函数参数传递,形参与实参(当时学的时候真的好晕);
三、第一段交换代码(基本类型为参数)
原理示意图:
四、第二段交换代码(对象为参数)
原理示意图:
(推荐一个大神的博客,孤傲苍狼的博客,http://www.cnblogs.com/xdp-gacl/
他的博客涵盖了Java与Java web近乎所有重要的会用得到基础知识讲解,我觉得学习要就要多分享,我正在学习Java web,希望能和大家多多交流,谢谢)
1、栈内存,用来存放基本类型变量以及对象的引用变量;
2、堆内存,用来存放new关键字创建的对象与数组;
二、Java里方法的参数传递方式只有一中——值传递,即是将实际参数复制一份传入方法中,实际参数本身不会受到任何影响,参照C语言中的函数参数传递,形参与实参(当时学的时候真的好晕);
三、第一段交换代码(基本类型为参数)
public class JavaTest { public static void swap(int a, int b) { //交换a,b的值 int temp = a; a = b; b = temp; System.out.println("执行交换后,swap方法里a和b的值分别为: " + a + " " + b); } public static void main(String[] args) { int a = 3; int b = 9; swap(a, b); System.out.println("执行交换后,main方法里a和b的值分别为: " + a + " " + b); } }执行结果:
原理示意图:
四、第二段交换代码(对象为参数)
class Base { public int a; public int b; } public class JavaTest { public static void swap(Base base) { //交换base对象中a,b属性的值 int temp = base.a; base.a = base.b; base.b = temp; System.out.println("执行交换后,swap方法里base对象的a和b属性的值分别为 " + base.a + " " + base.b); } public static void main(String[] args) { Base base = new Base(); base.a = 3; base.b = 9; swap(base); System.out.println("执行交换后,main方法里base对象的a和b属性的值分别为:" + base.a + " " + base.b); } }执行结果:
原理示意图:
(推荐一个大神的博客,孤傲苍狼的博客,http://www.cnblogs.com/xdp-gacl/
他的博客涵盖了Java与Java web近乎所有重要的会用得到基础知识讲解,我觉得学习要就要多分享,我正在学习Java web,希望能和大家多多交流,谢谢)
相关文章推荐
- JAVA 去除字符串的非法字符
- Spring+Mybatis使用多数据源的记录
- Java学习-----单例模式
- java数据传输DES加密和.net通用版
- JDK不同版本的区别
- 老生常谈之Java字符串拼接
- Java多线程学习(吐血超详细总结)
- Java---布局管理代码简单使用(解答)
- Eclipse 未开始 【Ubuntu】
- eclipse快捷键
- SpringMVC restful 注解之@RequestBody进行json与object转换
- spring MVC配置详解
- eclipse设置项目默认编码
- (java) Path Sum
- java中线程创建的第二种方法
- myeclipse中xml自动补全
- MyEclipse SVN的使用
- Mac系统的JDK8默认安装路径
- java异常处理【转载】
- Spring mvc 接收json对象