public class ReferenceTest {

static class Student{
    public Bag b;
    public int a;
    public String s;
    public String getS() {
        return s;
    }
    public void setS(String s) {
        this.s = s;
    }
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public Bag getB() {
        return b;
    }
    public void setB(Bag b) {
        this.b = b;
    }
}

static class Bag{

    public String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
public static void main(String[] args) {
    //引用

// Student student = new Student();
// Bag bag1= student.b;
// System.out.println(bag1);
// student.b = new Bag();
// System.out.println(bag1);
//8种基本变量
// Student student = new Student();
// int a= student.a;
// System.out.println(a);
// student.a = 1;
// System.out.println(a);
//字符串
// Student student = new Student();
// String s= student.s;
// System.out.println(s);
// student.s = "s";
// System.out.println(s);
//// int a=0;
// int b =a;
// System.out.println(b);
// a=1;
// System.out.println(b);
String s = "s";

    String s1 = s;
    System.out.println(s1);
    s="s2";
    System.out.println(s1);
}

}

    Student student = new Student();
    Bag bag1= student.b;
    System.out.println(bag1);
    student.b = new Bag();
    System.out.println(bag1);
     Code:
  stack=3, locals=3, args_size=1
     0: new           #2                  // class com/example/demo/ReferenceTest$Student
     3: dup
     4: invokespecial #3                  // Method com/example/demo/ReferenceTest$Student."<init>":()V
     7: astore_1
     8: aload_1
     9: getfield      #4                  // Field com/example/demo/ReferenceTest$Student.b:Lcom/example/demo/ReferenceTest$Bag;
    12: astore_2
    13: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;
    16: aload_2
    17: invokevirtual #6                  // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
    20: aload_1
    21: new           #7                  // class com/example/demo/ReferenceTest$Bag
    24: dup
    25: invokespecial #8                  // Method com/example/demo/ReferenceTest$Bag."<init>":()V
    28: putfield      #4                  // Field com/example/demo/ReferenceTest$Student.b:Lcom/example/demo/ReferenceTest$Bag;
    31: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;
    34: aload_2
    35: invokevirtual #6                  // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
    38: return
    
    
    
    String s = "s";
    String s1 = s;
    System.out.println(s1);
    s="s2";
    System.out.println(s1);
    
    Code:
  stack=2, locals=3, args_size=1
     0: ldc           #2                  // String s
     2: astore_1
     3: aload_1
     4: astore_2
     5: getstatic     #3                  // Field java/lang/System.out:Ljava/io/PrintStream;
     8: aload_2
     9: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
    12: ldc           #5                  // String s2
    14: astore_1
    15: getstatic     #3                  // Field java/lang/System.out:Ljava/io/PrintStream;
    18: aload_2
    19: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
    22: return




yinpursue
1 声望0 粉丝