4、方法的参数传递
将参数传递给方法的方式:
- 按值调用(call by value) 按值调用表示方法接受的是调用者提供的值。
- 按引用调用(call by reference) 按引用调用表示方法接受的是调用者提供的变量地址。
注意:java 总是按值调用,也就是说,方法得到的是参数值的副本。其中有两种参数类型:1、基本数据类型;2、对象引用。基本数据类型拷贝的是数据的值,对象引用拷贝的是对象的引用而不是对象本身。
4.1、基本数据类型
Java向方法中传递基本数据类型时,传递的是参数的副本,实际上对参数的任何操作都是对参数的拷贝所做的操作,而不是参数本身,所以无法对直接对基本类型本身做出改变。
4.2、对象引用类型
4.2.1 对象创建的内存模型
Java 堆是属于线程共享的内存区域,它在虚拟机启动时创建,是Java虚拟机所管理的内存中最大的一块,主要用于存放对象实例,几乎所有的对象实例都在这里分配内存,注意Java堆是垃圾收集器管理的主要区域,因此很多时候也被称做GC堆,如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError异常。详细介绍请点击下方蓝色字体:
版权声明:本文为CSDN博主「zejian_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
4.2.2、传递对象引用
Java向方法中传递对象引用时,实际上传递的是对象的引用的副本, 同一个对象可以拥有多个引用,当引用数为0时就会被垃圾收集器回收。当在方法中使用对象引用参数的副本调用方法时,会改变对象本身所处的状态。