public class Employee {
private String name;
private double salary;
public Employee(String n,double s){
name = n;
salary =s;
}
public class Test {
public static void main(String[] args) {
Employee [] abc= new Employee[3];
abc [0]= new Employee("Alice", 70000);
abc [1] = new Employee("Bob",60000);
abc [2]= new Employee("Plice", 50000);
abc [2]=abc[0];
abc [0]=abc[1];
abc[1]=abc [2];
for(Employee e:abc){
System.out.println(e.getName()+"\t"+e.getSalary());
}
}
}
输出结果:
Bob 60000.0
Alice 70000.0
Alice 70000.0
不知道结果为啥是这样
最后不应该都是指向同一个引用值么,但又不知道应该指向哪个引用值了......
这个真心看不懂,求高手一步一步讲解堆,栈,引用值
private String name;
private double salary;
public Employee(String n,double s){
name = n;
salary =s;
}
public class Test {
public static void main(String[] args) {
Employee [] abc= new Employee[3];
abc [0]= new Employee("Alice", 70000);
abc [1] = new Employee("Bob",60000);
abc [2]= new Employee("Plice", 50000);
abc [2]=abc[0];
abc [0]=abc[1];
abc[1]=abc [2];
for(Employee e:abc){
System.out.println(e.getName()+"\t"+e.getSalary());
}
}
}
输出结果:
Bob 60000.0
Alice 70000.0
Alice 70000.0
不知道结果为啥是这样
最后不应该都是指向同一个引用值么,但又不知道应该指向哪个引用值了......
这个真心看不懂,求高手一步一步讲解堆,栈,引用值
解决方案 »
- java 中没有提供public构造函数的类要怎么才能继承
- 高手指教,谢谢了!
- java鼠标事件问题?
- 关于javabean我想说的
- 大侠帮忙!帮忙纠错!!!!急啊!!!
- sql导出dbf的一个问题,大家帮忙看看
- 问一个关于jpanel的问题。。
- 初学者问问题,,请各位帮帮忙啊。
- java 入门的问题!请高手给与帮助!
- yacc80,dy_paradise,newry,sdyqingdao,cxhz_cn,xiaohaozi,honeychen进来,上次叫大家推荐java书的帖子出问题了,我到这里来给你们加分。
- [在线等]求助,获取文本文件行数时忽略“回车符”的问题
- jdk安装过后,输入javac运行不了,而输入java可以
abc [0]=abc[1]; //{Bob, Bob, Alice}
abc[1]=abc [2]; //{Bob, Alice, Alice}
算了我不知道我在说啥
两个数交互 大学编程第一堂课老师就说了,要用temp 临时存放的。这个还有什么讨论的。
abc [1] = new Employee("Bob",60000);
abc [2]= new Employee("Plice", 50000);
abc [2]=abc[0];
abc [0]=abc[1];
abc[1]=abc [2];
这是你的代码!
abc [2]=abc[0];
abc [0]=abc[1];
abc[1]=abc [2];这3句的意思 你懂么。 就好比你把0里面的给了2, 1里面的给了0 ,2里面的赋值给力1
不接收的话abc[2]指向的对象就丢失了。
abc [0]= "Alice", 70000
abc [1] = "Bob",60000
abc [2]= "Plice", 50000#################################
abc[2]= "Alice", 70000; abc[2]已经是"Alice", 70000 这个值
abc[0]= "Bob",60000; abc[0]已经是"Bob",60000 这个值
abc[1]=abc[2]="Alice", 70000; abc[2]在第一次赋值已经改变了值,所以是把"Alice", 70000给abc[1]#################################
所以输出为
abc[0]=Bob,60000
abc[1]=Alice, 70000
abc[2]=Alice, 70000
abc[0] = Employee[Alice, 70000]
abc[1] = Employee[Bob, 60000]
abc[2] = Employee[Plice, 50000]2,进行“abc[2] = abc[0];”操作之后
abc[0] = Employee[Alice, 70000]
abc[1] = Employee[Bob, 60000]
abc[2] = Employee[Alice, 70000]
// Employee[Plice, 50000]这个对象没有任何人引用它,可能等待垃圾回收3,进行“abc[0] = abc[1];”操作之后
abc[0] = Employee[Bob, 60000]
abc[1] = Employee[Bob, 60000]
abc[2] = Employee[Alice, 70000]4,进行“abc[1] = abc [2];”操作之后
abc[0] = Employee[Bob, 60000]
abc[1] = Employee[Alice, 70000]
abc[2] = Employee[Alice, 70000]这样就很明确的看到结果了。
abc [2]=abc[0]; //这句完了之后,abc[1],abc[2],abc[3]分别是什么值?
abc [0]=abc[1]; //这句完了之后,abc[1],abc[2],abc[3]分别是什么值?
abc[1]=abc [2]; //这句完了之后,abc[1],abc[2],abc[3]分别是什么值?别三句拉在一起看,一句一句解。