Java语言中引用与C语言的区别

在我理解中Java语言中的引用是弄一个别名,而C语言中指针是指向某一个内存。

其实自己也分不清楚大概二者的区别,因为二者的使用都是可以改变其地址。

不过C语言的指针使用完以后需要回收,而i引用似乎不用。

在其他博客看到一些大佬写的。

希望自己能够慢慢体会。

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


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


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


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


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


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

不过,既然总而言之,java在引用的使用方面比指针指来指去,
。 

猜你喜欢

转载自blog.csdn.net/lytwy123/article/details/80187990
今日推荐