java 基础:方法调用中的值传递是call by value,并且传递的是参数的值的拷贝,而不是引用
2024-09-01 14:18:20
public class TestExtends {
public static void main(String[]args){
int s = 10;
System.out.println(System.identityHashCode(s));
s=3*s;
int num = 30;
System.out.println(System.identityHashCode(s));
System.out.println(System.identityHashCode(num));
}
输出
460141958
1163157884
1163157884
java-core P121
java中参数传递给方法,总是按值调用call by value。
在方法中,如果参数是对象,那操作的是对象的引用的拷贝。
如果参数是值,操作的是值的拷贝。
public class TestExtends {
public static void main(String[]args){
A a =new A("bob");
A b = new A("lucy");
a.swap(a,b);
System.out.println(a.getName()+" "+b.getName());
A temp = new A("");
temp=a;
a=b;
b=temp;
System.out.println(a.getName()+" "+b.getName());
int i =1;
int j = 2;
a.swap2(i,j);
System.out.println(i+" "+j);
}
}
class A{
public int x=1;
void swap(A a,A b){
A temp = new A("---");
temp=a;
a=b;
b=temp;
}
void swap2(int a ,int b){
int c = 0;
c=a;
a=b;
b=c;
}
private String name;
public A(String name){
this.name = name;
}
public String getName(){
return name;
}
}
bob lucy
lucy bob
1 2
最新文章
- MSDTC故障排除
- web交互方式
- java 内存 垃圾回收调优
- 前端开发面试题收集 JS
- ALV前导零的问题
- Castle.DynamicProxy Part 1: ClassProxy
- Castle Windsor 项目中快速使用
- Redis 学习笔记-应用场景
- 原来你是这样的JAVA[02]-包、传参、构造器
- Windows 产品激活状态、密钥等信息查看
- RESTful规范建议
- ansj人名识别
- win下开机不登陆系统自动运行程序的解决方案
- Spring Boot Starters 列表
- Android、iOS、和Web如何做灰度发布?
- SNF框架及机器人2018年1-9月份升级内容
- Linux下ftp安装配置及三种用户的验证
- Tensorflow实现LeNet-5、Saver保存与读取
- mysql5.5 for linux 安装(转)
- Nett的Http表头赋值