zoukankan      html  css  js  c++  java
  • 再谈java两种变量(基本类型和引用类型)(综合各路大神)

    基本类型:

    基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。

     int  a;  
     a=250; //声明变量a的同时,系统给a分配了数据空间。

    引用类型:

    是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。 

    引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么,整数,字符?我们看一个错误的例子:

    MyDate today;

    today.day = 4; //发生错误,因为today对象的数据空间未分配。

    那我们怎么给它赋值?引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。举个例子:

    MyDate today; //将变量分配一个保存引用的空间

    today = new MyDate();     //这句话是2步,首先执行new MyDate(),给today变量开辟数据空间,然后再执行赋值操作

    //引用变量赋值

    MyDate a,b;                    //在内存开辟两个引用空间

    a  =  new MyDate();     //开辟MyDate对象的数据空间,并把该空间的首地址赋给a

    b  =  a;                               //将a存储空间中的地址写到b的存储空间中

    一 引用变量: 1.

                            int a=1;

                            int &b=a;这里变量b称作是对变量a的引用(c语言中)

                      2. 而当变量指向一个对象时,这个变量就被称为引用变量(java中)

                比如A c=new A();
                c就是引用变量,它指向了一个A对象,也可以说它引用了一个A对象。我们通过操纵这个a来操作A对象。 此时,变量a的值为它所引用对象的地址

    二:引用变量(对象)的地址问题
    void func()
    {
        Object obj = new Object();//这个obj在函数的栈里。
    }

    class Test
    {
       private Object obj = new Object();//这个obj随对应的Test对象分配在堆里
    }
    对于方法中局部变量的引用存储在java运行时数据区的栈中,而对于实例变量则存储在java运行时数据区的堆中。
    引用放在栈中,具体的对象放在堆里

    成长就是将哭声调成静音的过程
  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/weixiaoling/p/6083384.html
Copyright © 2011-2022 走看看