java 中的引用是什么意思?

Python012

java 中的引用是什么意思?,第1张

1。首先,你要明白什么是变量。变量的实质是一小块内存单元。这一小块内存里存储着变量的值\x0d\x0a\x0d\x0a比如int a = 1\x0d\x0a\x0d\x0aa就是变量的名名,1就是变量的值。\x0d\x0a\x0d\x0a而当变量指向一个对象时,这个变量就被称为引用变量\x0d\x0a\x0d\x0a比如A a =new A()\x0d\x0a\x0d\x0aa就是引用变量,它指向了一个A对象,也可以说它引用了一个A对象。我们通过操纵这个a来操作A对象。 此时,变量a的值为它所引用对象的地址

java引用与C语言指针的区别有以下几方面:

1、现象

指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变,总是指向最初的对象。

2、编译

程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。

3、类型

引用其值为地址的数据元素,java封装了的地址,可以转成字符串查看,长度可以不必关心;C指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int。

4、内存占用

所占内存:引用声明时没有实体,不占空间。C指针如果声明后会用到才会赋值,如果用不到不会分配内存。

5、内存溢出

JAVA引用的使用权限比较小,不会产生内存溢出。C指针是容易产生内存溢出的,所以程序员要小心使用,及时回收。

6、本质

JAVA中的引用和C中的指针本质上都是想通过一个别名,找到要操作的目标(变量对象等),方便在程序里操作。所不同的是JAVA的办法更安全,使用更加方便些,但没有了C的灵活,高效。