Java中参数的引用传递和值传递
2016-04-15 17:21
447 查看
1、一些定义
值传递:把实际传入参数的值,在内存中赋值一份
引用传递:传入的是实际参数的地址
2、传递基本类型的参数
因为Java是值传递,那就不难理解下面的代码不交换任何值
3、传递引用变量的参数
Java都是通过引用来操作对象的,所有指向对象的变量都是引用,然而,Java不会把引用传递给方法的参数,而是引用的值;
那么,为什么对象的成员值可以改变呢?
因为原始的和赋值的引用都指向了同一个对象,所以成员的值被改变了
输出:
值传递:把实际传入参数的值,在内存中赋值一份
引用传递:传入的是实际参数的地址
2、传递基本类型的参数
因为Java是值传递,那就不难理解下面的代码不交换任何值
swap(Type arg1, Type arg2) { Type temp = arg1; arg1 = arg2; arg2 = temp; }
3、传递引用变量的参数
Java都是通过引用来操作对象的,所有指向对象的变量都是引用,然而,Java不会把引用传递给方法的参数,而是引用的值;
那么,为什么对象的成员值可以改变呢?
class Apple { public String color="red"; } public class Main { public static void main(String[] args) { Apple apple = new Apple(); System.out.println(apple.color); changeApple(apple); System.out.println(apple.color); } public static void changeApple(Apple apple){ apple.color = "green"; } }
因为原始的和赋值的引用都指向了同一个对象,所以成员的值被改变了
输出:
red green
相关文章推荐
- 对于MyEclipse整合git上的maven项目导入
- spring mvc @ModelAttribute注解使用
- Dubbo java.io.IOException: Can not lock the registry cache file
- [转]Java8 lambda表达式及新特新
- Java泛型中的? super T语法
- Spring下对Quartz的使用
- eclipse几个注意的地方
- Java基础——关键字
- Java 往hashSet集合中存入自定义对象
- Spring MVC请求处理流程
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
- mybatis中的#和$的区别
- Java工程构建工具ANT与Maven的区别
- java学习总结(3)
- Spring事务配置的五种方式
- Java IO4:字符编码
- java截取字符串
- Java 序列化和反序列化
- java中常见的命名规范
- LeetCode 83 -Remove Duplicates from Sorted List ( JAVA )