关于java中的值传递和引用传递
2016-04-28 00:00
399 查看
摘要: 通过两个小例子来分析java中的值传递和引用传递
一、java方法形参为基本数据类型时,例如 byte,short,int,long,float,double,boolean,char,此时实参传入的仅仅只是这个值,首先来测试一下java中的值传递
运行结果为:
changebeforea = 1
changeaftera = 1
二、java方法形参为引用数据类型时,例如 class,interface,enum,array[]等等此时实参传入的是它的引用地址,下面来测试一下java的引用传递。
运行结果为:
chageBeforename = lz
chageAftername = test
备注:并不是所有的引用类型数据都是引用传递,例如String,Integer等等,因为他们底层都是基于基本数据类型的包装,所以他们还是值传递。
一、java方法形参为基本数据类型时,例如 byte,short,int,long,float,double,boolean,char,此时实参传入的仅仅只是这个值,首先来测试一下java中的值传递
package com.lz.demo1; /** * <p> * 测试值传递和引用传递demo * </p> * * @author ZLi 2016-4-28 * */ public class RefrenceDemo { public static void main(String[] args) { int a = 1; System.out.println("changebeforea=" + a); change(a); System.out.println("changeaftera=" + a); } public static void change(int a) { a = 2; } }
运行结果为:
changebeforea = 1
changeaftera = 1
二、java方法形参为引用数据类型时,例如 class,interface,enum,array[]等等此时实参传入的是它的引用地址,下面来测试一下java的引用传递。
package com.lz.demo1; /** * <p> * 测试值传递和引用传递demo * </p> * * @author ZLi 2016-4-28 * */ public class RefrenceDemo { public static void main(String[] args) { User user = new User("lz"); System.out.println("chageBeforename=" + user.getName()); change(user); System.out.println("chageAftername=" + user.getName()); } public static void change(User user) { user.setName("test"); } } ----------------------------------------------------------------------------------- package com.lz.demo1; /** * <p> * 测试对象类 * </p> * * @author ZLi 2016-4-28 * */ public class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
运行结果为:
chageBeforename = lz
chageAftername = test
备注:并不是所有的引用类型数据都是引用传递,例如String,Integer等等,因为他们底层都是基于基本数据类型的包装,所以他们还是值传递。
相关文章推荐
- java中private、protected、public和default 区别
- ubuntu安装 zookeeper3.3.6 由于jdk问题启动失败
- JAVA 支付宝退款接口
- Springmvc构造RESTful详细讲解
- Spring之Bean的作用域
- 彻底弄明白之java多线程中的volatile
- Java 虚拟机的类加载机制
- Java 字符串分割“|”与“.”Bug(切记)
- hibernate reverse engineering 中没有可选的java src folder
- java开发环境的配置
- Spring学习笔记4-AOP
- Myeclipse Hibernate 方向工程生成映射文件出现 Generating Artifacts 问题
- 平衡二叉树-Java
- DropWizard:用Java轻轻的写一个RESTful Service
- java--集合
- Java语言中没有引用传递,只有值传递。到底对不对?
- java文件读写操作大全
- Spring之单例类创建实例
- spring框架学习笔记(九)
- Java类加载器深入理解