c++中的指针和java中的引用有什么区别?
Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对内存数据的操作,但是它们在实现,原理作用等方面却有区别。
公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出泊头免费做网站回馈大家。
(1)类型:引用其值为地址的数据元素,Java封装了的地址,可以转换成字符串查看,长度也可以不必担心。C++指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int。
(2)所占内存:引用声明时没有实体,不占空间。C++指针如果声明之后会用到才会赋值。如果用不到不会分配内存。
(3)类型转换:引用的类型转换,也可能不成功,运行时抛异常或者编译就不能通过。C++指针指示个内存地址,指向内存,对程序来说还都是一个地址,但可能所指的地址不是程序想要的。
(4)初始值:引用初始值为java关键字null。C++指针是int,如不初始化指针,那它的值就不是固定的了,这很危险。
(5)计算:引用不可以计算。C++指针是int,他可以计算,如++或--,所以经常用指针来代替数组下标。
(6)内存泄露:Java引用不会产生内存泄露。C++指针是容易产生内存泄露的,所以程序员要小心使用,及时回收。
(7)作为参数:Java的方法参数只是传值,引用作为参数使用时,会给函数内引用的值的COPY,所以在函数内交换俩个引用参数是没意义的,因为函数只交换参数的COPY值,但在函数内改变一个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象时和引用参数是同一个对象。
C++指针作为参数给函数使用,实际上就是它所指的地址在被函数操作,所以函数内使用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数等)。
以上就是java中的引用与c++中的指针的区别的详细内容,更多请关注创新互联其它相关文章!
本文名称:c++中的指针和java中的引用有什么区别?
标题URL:http://hbruida.cn/article/ppohgj.html