黑马程序员技术交流社区

标题: 引用型变量是什么? [打印本页]

作者: 橸瑩膤漃寞林    时间: 2014-3-23 16:22
标题: 引用型变量是什么?
谁能帮我解释清楚,还举个例子。
作者: 上官睿鹏    时间: 2014-3-23 16:53
比如:
String str = null;
str = new String("abc");
str = new String("bcd");
str就是引用变量也就是String这个类的对象的引用
作者:   米奇    时间: 2014-3-23 17:05
个人理解只有一句话,在参数传递的过程中,基本类型变量是值传递,引用型变量时地址传递(类似于c++中的指针,不过java中没有指针这个说法)

下面具体说下,声明变量,定义变量是的内存分配问题

在java中基本类型变量声明是,系统直接为该变量分配内存空间(c++中不是这样,c++中只用在定义的时候才会分配内存空间,声明的时候不会分配),因此内存中可以直接操作。

引用型变量声明时,只为该变量分配引用空间,数据空间尚未分配,因此引用类型不可直接使用

如:

mydate today;
mydate.today=14;
  上面这句话明显是错误的。

正确的是:

mydate today;
today=new mydate()
其实,第一条语句的执行将给today变量分配一个保存引用的空间  today  null

第二句话将分两步进行,第一步执行new mydate(),给today变量开辟数据空间,第二部为today中的成员变量赋值,默认初始化为0。



引用变量间的赋值,就行当于指针间的赋值,改变一个对另外一个有影响(传址)。
作者: 龙健    时间: 2014-3-23 19:12
引用型变量,其实就是一个对象的首地址,
例如:Date date=new Date();
date就是一个引用型变量,它存储的只是Date在内存中开辟的地址空间的首地址
如果想改变这个引用变量,则可以再new一个对象,将新对象的地址赋值个此变量
这个引用变量就会指向新的地址




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