java中的引用和C++中的指针的区别
(终于明白了它们的区别,心里很是开心)
1.类型:引用其值为地址的数据元素,java封装了的地址,可以转成字符串查看,长度可以不必关心。C++指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int。
2.所占内存: 引用声明时没有实体,不占空间。C++指针如果声明后会用到才会赋值,如果用不到不会分配内存。
3.类型转换:引用的类型转换,也可能不成功,抛异,或者IDE就不能通过。C++指针只是个内存地址,指向那里,对程序来说还都是一个地址,但可能所指的地址不是程序想要的!
4.初始值:引用初始值为java关键字null。C++指针是INT,如不初始化指针,那他的值就不是固定的了。
5.计算:引用是不可以计算的。C++指针是INT,所以他可以计算,所以经常用指针来代替数组下标。
6.控制:引用不可以计算,所以他只能在自己程序里,可以被控制。C++指针是内存地址,也可以计算,所以他有可能指向了一个不归自己程序使用的内存地址,对于其他程序来说是很危险的,对自己程序来说也是不容易被控制的。
7.内存泄露:JAVA引用不会产生内存泄露。C++指针是容易产生内存泄露的,所以程序员要小心使用,及时回收。
8.作为参数:JAVA的方法参数只是传值,引用做为参数使用时候,回给函数内引用的值的COPY,所以在函数内交换两个引用参数是没意义的,因为 函数只交换的参数的COPY值,但在函数内改变一个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象是和引用参数是同一个对象。 C++指针做为参数给函数使用,实际上就是他所指的地址在被函数操作,所以函数内用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数,等 等)。
9.操作符和声明:java里用"."。C++指针用"->" 用"*"声明指针。(似乎这条没什么用!)
10.本质:java中的引用和C++中的指针本质上都是想通过一个叫做引用或者指针的东西,找到要操作的目标(变量 对象等),方便在程序里操作。所不同的是JAVA的办法更安全,方便些,但没有了C++的灵活,高效。
java中的引用和C++中的指针,他们最好不要混在一起,也不要认为是一回事,只不过他们的作用有些相似,总叫人不自觉的对比。但在我们写 JAVA程序的时候最好忘记C++的指针,写C++程序的时候,也不要老惦记着JAVA的引用。只要记得 引用无大小,安全,不可计算,强转时要小心就好了
分享到:
相关推荐
指针和引用是C++语言中两种不同的概念,初学者容易把它们混淆一起。这两种概念都是地址的概念,但它们有很多不同的特点和应用场景。 相同点 1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用...
Java中的引用和C++中的引用在概念和使用上有显著的不同,这是由于两者设计哲学和语言特性的差异。首先,我们要明确一点,Java的引用更接近于C++的指针,而C++的引用则是一种完全不同的机制。 在Java中,引用可以...
"C++引用和指针的区别、C++虚函数原理、C++面试经验" C++ 引用和指针是两种不同的概念。虽然它们都可以用来表示内存地址,但是它们有着不同的特点和应用场景。 1. 相同点:引用和指针都是地址的概念,指针指向一块...
在C++中,指针和引用是两种非常重要的数据类型,它们都用于间接访问其他变量或对象。然而,它们之间存在显著的区别,了解这些差异对于有效、安全地使用C++语言至关重要。 - **指针**是一种变量,其值是内存地址。...
在C++编程语言中,指针和引用是两种非常关键的概念,它们都允许我们间接访问内存中的对象。然而,它们之间存在着本质的区别,理解和掌握这些差异对于编写高效、安全的代码至关重要。 首先,指针是一个变量,它存储...
在C++编程语言中,指针和引用是两种非常重要的概念,它们都允许我们间接访问内存中的对象。本文将深入探讨这两个主题,并通过实例来对比它们的使用方法和特性。 首先,指针是C++中的一种特殊类型,它存储的是一个...
在C++编程语言中,高阶指针和引用是两种重要的高级特性,它们极大地扩展了对内存和对象的操纵能力。本实验通过两个实例详细介绍了这两种概念及其在实际编程中的应用。 首先,我们来看第一个实例,它涉及到了二级...
然而,需要注意的是,由于C++和Java的语法和语义差异,直接的转换可能会遇到挑战,比如C++的模板、指针、运算符重载在Java中没有直接对应的概念,因此可能需要手动调整转换后的代码。 描述中的重复信息进一步强调了...
在 C++ 编程语言中,指针和引用是两个常用的概念,但是初学者容易混淆它们二者之间的区别。在本文中,我们将从概念、函数参数传递和编译角度来阐述指针和引用的区别。 概念上,指针是一个变量,它存放的是变量的...
### Java及C++中传值传递、引用传递和指针方式的理解 在程序设计语言中,函数调用时参数的传递方式对理解程序的行为至关重要。本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用...
1. **数据类型转换**:C++中的指针在Java中通常对应于引用。转换器需要将C++的指针操作转换为Java的引用操作,同时处理内存分配和释放的差异,因为Java的垃圾回收机制会自动管理内存。 2. **面向对象的差异**:C++...
例如,Java中的int类型对应C/C++中的int类型,Java中的对象引用对应C/C++中的指针。 10.考虑跨平台兼容性 编写本地方法时要考虑跨平台兼容性。不同操作系统上的动态链接库生成方式可能有所不同,同时还要确保平台...
在C++编程中,句柄和指针是两种不同的数据访问机制,它们都在不同场景下用于访问和操作内存中的对象。尽管两者都能通过一个较小的数据值来引用或控制大量数据,但它们的本质和用途有所不同。 首先,句柄是一个抽象...
这篇文章旨在帮助 Java 程序员快速学习 C++,通过比较 Java 和 C++ 的区别,帮助读者快速理解 C++。以下是从 Java 到 C++ 的知识点总结: 数据类型和变量 * C++ 中的变量类型与 Java 相似,包括 int、double 等,...
而Java中没有传统意义上的指针,它使用引用作为内存地址的间接访问方式。这种方式简化了内存管理和对象操作,避免了许多由直接使用指针引发的问题,如悬挂指针和内存泄漏。 #### 二、内存管理 Java采用了自动垃圾...
综上所述,Java和C++在虚函数和指针(或引用)的处理上有显著的不同,这些差异不仅体现在语法层面,更影响了程序设计的哲学和实践。Java通过简化多态性和内存管理,使得代码更加安全和易于维护,而C++则提供了更高的...
带这个问题与本中心庄鹏飞老师讨论之后,发现原来我没有搞清楚在C++中指针分为栈指针和堆指针。参见int* Test::getArray()方法中关于数组的声明以及本人非常详细的说明,那么我想会给学习C++编程的人员带来收获。 ...
句柄、智能指针和指针都是C++编程中重要的概念,它们之间的区别是非常重要的。理解它们可以帮助初学者更好地编写C++程序。 知识点: * 句柄是指向指针的指针,用于标记系统资源。 * 智能指针是存储指向动态分配...
指针是C++编程中非常重要的概念,许多程序和思想依靠指针作为他们设计的基础。 定义指针变量 定义指针变量的方法与定义其他变量相同,唯一的区别是指针变量名前面需要加一个星号(*)作为前缀。例如,定义两个指针...