值传递和引用传递
来源:互联网 发布:linux service status 编辑:程序博客网 时间:2024/05/17 22:07
值传递:(形参类型是基本数据类型):方法调用时,实参把它的值传给形参,形参只是用实参的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形参值的改变不影响实参的值。
引用传递:(形参类型是引用数据类型参数):方法调用时,实参是对象(或数组),这时实参与形参指向同一存储单元,因此对形参的修改实际就是对实参的修改。
下面举例说明:
传值---传递基本数据类型参数
public class PassValue{
static void exchange(int a, int b){
int temp;
temp = a; a = b;b = temp;
}
引用传递---对象作为参数
如果在方法中把对象(或数组)作为参数,方法调用时,参数传递的是对象的引用,即在方法调用时,实参把对对象的 引用(地址)传递给形参。这是实参与形参指向同一个地址,即同一个对象(数组),方法执行时,对形参的改变实际上就是对实参的改变, 这个结果在调用结束后被保留了下来。
class Book{
String name;private folat price;
Book(String n, float ){
name = n;price = p;
}
static void change(Book a_book, String n, float p){
a_book.name = n; a_book.price = p;
}
}
public class PassAddr{
public static void main(String [] args){
Book b = new Book("java2", 32.5f);
b.change(b, "c++", 45.5f); //传递对象b的引用,修改对象b的值
}
}
运行结果:
before call: name:java2 price:32.5
after call: name:c++ price:45.5
二、注意:
(1)String、Integer、Long等不可变类按照“引用传递”见面试宝典92页例子
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 引用传递和值传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 值传递和引用传递
- 引用传递和值传递
- 4G网络相关知识(四)
- 树:二叉树的集中遍历方法(先序,中序,后序遍历,线索二叉树)
- Java中final修饰符的三个用法
- 大数据处理工具1——Flume安装及使用
- 批处理-For详解
- 值传递和引用传递
- maven项目编译:程序包com.sun.image.codec.jpeg不存在 这个类文件的位置在jre/lib/rt.jar
- java.util.zip对zip文件解压
- 字符串数据解析和字节流数据解析转换
- Python基础1
- 第四章:整体建议
- DrawerLayout侧滑界面
- composer安装以及packagist镜像的使用
- HTTP 错误 404.3