Java方法调用中的别名处理
2024-08-28 08:28:55
将一个对象传递到方法内部时,也会产生别名现象。
//: PassObject.java
// Passing objects to methods can be a bit tricky
62
class Letter {
char c;
}
public class PassObject {
static void f(Letter y) {
y.c = 'z';
}
public static void main(String[] args) {
Letter x = new Letter();
x.c = 'a';
System.out.println("1: x.c: " + x.c);
f(x);
System.out.println("2: x.c: " + x.c);
}
} ///:~
在许多程序设计语言中,f()方法表面上似乎要在方法的作用域内制作自己的自变量Letter y 的一个副本。
但同样地,实际传递的是一个句柄。所以下面这个程序行:
y.c = 'z';
实际改变的是f()之外的对象。输出结果如下:
1: x.c: a
2: x.c: z
别名和它的对策是非常复杂的一个问题。
最新文章
- [转载]";百度方法+";案例—从持续集成到持续交付
- Prince2的七大原则(7)
- H5案例学习笔记
- Linux下网络故障诊断
- Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)
- swift + jj实践
- Centos 中如何快速定制二进制的内核RPM 包
- 数组和字典 swift
- Python IDLE 清屏工具
- VB 基础语法以及教学视频
- Android项目--tabhost
- Django 同步数据库命令syncdb,makemigrations,migrate
- MySQL基准测试(benchmark)
- Html5本地存储和本地数据库
- hzoj 2301(莫比乌斯反演)
- windows下使用sed和tee命令
- 【干货】DD 和 netcat实战---擦除数据和远控
- Eclipse和MyEclipse使用技巧--Eclipse中使用Git-让版本管理更简单
- [OpenCV] Samples 09: plImage <;==>; Mat
- MT【163】运动是相对的