黑马程序员技术交流社区

标题: java基本类型和引用类型变量的区别 [打印本页]

作者: 郭孟涛    时间: 2013-2-12 22:59
标题: java基本类型和引用类型变量的区别
本帖最后由 郭孟涛 于 2013-2-12 23:02 编辑

  Java中数据类型分为两大类,是基本类型对象类型。相应的,变量也就有两种类型:基本类型引用类型。基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。引用类型,可是引用类型呢?它是一个对象类型的啊,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。很好理解吧,因为一个对象,比如说一个人,不可能是个数字也不可能是个字符啊,所以要想找它的话只能找它的地址了。

    罗唆:
    我们在学习计算机的过程中,所谓的难的东西,就是以前没有听过的概念,和不常用的思想。像是这个引用类型的概念就是以前不常用的,基本类型当然好理解不讲大家也知道。所以我们对于这样陌生的概念我们只要多琢磨一下就会明白的。

    我们废话少说,接下来看看这两种类型变量的不同处理吧。基本类型自然是简单,声明是自然系统就给它空间了。例如,
    int baijq;  
    baijq=250; //声明变量baijq的同时,系统给baijq分配了空间。

    引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么啊,整数,字符?我们看一个错误的例子:
    MyDate today;
    today.day = 4; //发生错误,因为today对象的数据空间未分配。

    那我们怎么给它赋值啊?引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。举个例子:
    MyDate today;            //将变量分配一个保存引用的空间
    today = new MyDate();     //这句话是2步,首先执行new MyDate(),给today变量开辟数据空间,然后再执行赋值操作。


    小总结:
    刚才说了一大堆,其实就是一件事。如果是引用类型的变量,必须先得new一个对象出来。不new哪来的对象啊,不new哪有数据空间啊?没有数据空间怎么能访问呢?这回明白了吧!
    我们还有个问题没有说,引用类型变量怎么赋值?这个就不是很难了。举个例子:
    MyDate a,b;                   //在内存开辟两个引用空间
    a  =  new MyDate();     //开辟MyDate对象的数据空间,并把该空间的首地址赋给a
    b  =  a;                             //将a存储空间中的地址写到b的存储空间中.




作者: 黄玉昆    时间: 2013-2-13 12:19
不错,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2