【JAVA】三 JAVA 单例
Qeustion
JAVA中对象作为参数传递给一个方法,到底是值传递,还是引用传递?
Anwer
值传递!Java中只有按值传递,没有按引用传递!
JAVA
package com.cn.mark.test;
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student() {
}
public Student(String name) {
this.setName(name);
}
public void say() {
System.out.println(this.getName());
}
public static void new_student(Student s) {// 4.[接收 copy_s_reference]
s.say(); // 5.[通过 copy_s_reference 找到对象 输出 zhangsan]
s = new Student("lisi"); // 6.[ 将 copy_s_reference 指向堆内存新对象 ]
} // 7 [本方法中与 s_object 或 s_reference 没有半毛钱关系 ]
public static void main(String[] args) {
Student s = new Student("zhangsan");// 1.[s 是 reference 暂且叫他为 s_reference]
s.say(); // 2.[s_reference 找到 堆内存对象 并 调用 say 方法]
new_student(s); // 3.[将 s 的 reference copy 出来一份,暂且叫他为 copy_s_reference]
// [s_reference 与 copy_s_reference 都指向堆内存中同一个地址]
// [把 copy_reference 传入 new_student]
s.say(); // 8. [ s_reference 输出 zhangsan]
}
}
第五步时内存对照
第六步时内存对照