zoukankan      html  css  js  c++  java
  • Java面向对象中地址的理解(长期修改)

    写在前面:如果变量是基本数据类型,此时赋值的是变量所保存的数据值

         如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值

    Java中,引用数据类型定义的变量含有的值,不是null就是地址值(不包括String)

    例:

    class Student

    {

      int age;

    };

    Student a = new Student();

    Student b = new Student();

    a.age = 1;

    b = a;//     a与b指向同一个地址值,因为a与b是由Student定义的

    b.age = 2;//a与b的age同时修改

    //*************************

    b.age = a.age;

    b.age = 2; //此时只有b改变 a与b为分开的地址值

    //*************************

    String类型:

    String a = new String();
    String b = new String();
    a = "name";
    b = a;
    System.out.println(a+" "+b);
    b = "score";
    System.out.println(a+" "+b);

    这时b与a的值不掺和。

     //测试内存分配代码**********************

    public class memtext {
    public static void main(String[] args) {
    memtext test = new memtext();

    }
    public void first() {
    int i = 5;
    Value v = new Value();
    v.i = 25;
    second(v,i);
    System.out.println(v.i);
    }
    public void second(Value v,int i) {
    i=0;
    v.i = 20;
    Value val = new Value();
    v = val;
    System.out.println(v.i + " " + i);
    }
    }
    class Value{
    int i=15;
    }

    图例:

  • 相关阅读:
    「洛谷 NOIP 计划 2021」【学习1】降维技巧
    组合数取模 合集
    浅谈并查集
    四边形不等式优化 dp (doing)
    qbxt数学五一Day4
    qbxt五一数学Day3
    qbxt五一数学Day2
    qbxt五一数学Day1
    浅谈拉格朗日插值
    10-交换排序:冒泡排序
  • 原文地址:https://www.cnblogs.com/buxiang-Christina/p/13323347.html
Copyright © 2011-2022 走看看