java的引用和指针的区别 • Worktile社区

您所在的位置:网站首页 mapreduce的技术特征 java的引用和指针的区别 • Worktile社区

java的引用和指针的区别 • Worktile社区

2023-03-12 20:30| 来源: 网络整理| 查看: 265

java的引用和指针的区别表现在:1、类型;2、所占内存;3、类型转换;4、初始值;5、计算;6、内存泄露;7、作为参数。类型是指引用其值为地址的数据元素,Java封装了的地址,可以转换成字符串查看。指针是一个装地址的变量,长度一般是计算机字长。

java的引用和指针的区别-Worktile社区 一、类型

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

二、所占内存

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

三、类型转换

引用的类型转换,也可能不成功,运行时抛异常或者编译就不能通过。C++指针指示个内存地址,指向内存,对程序来说还都是一个地址,但可能所指的地址不是程序想要的。

四、初始值

引用初始值为java关键字null。C++指针是int,如不初始化指针,那它的值就不是固定的了,这很危险。

五、计算

引用不可以计算。C++指针是int,他可以计算,如++或–,所以经常用指针来代替数组下标。

六、内存泄露

Java引用不会产生内存泄露。C++指针是容易产生内存泄露的,所以程序员要小心使用,及时回收。

七、作为参数

Java的方法参数只是传值,引用作为参数使用时,会给函数内引用的值的COPY,所以在函数内交换俩个引用参数是没意义的,因为函数只交换参数的COPY值,但在函数内改变一个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象时和引用参数是同一个对象。C++指针作为参数给函数使用,实际上就是它所指的地址在被函数操作,所以函数内使用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数等)。

延伸阅读

java的引用是什么

简单的说,引用其实就像是一个对象的名字或者别名 (alias),一个对象在内存中会请求一块空间来保存数据,根据对象的大小,它可能需要占用的空间大小也不等。访问对象的时候,我们不会直接是访问对象在内存中的数据,而是通过引用去访问。引用也是一种数据类型,我们可以把它想象为类似 C++ 语言中指针的东西,它指示了对象在内存中的地址——只不过我们不能够观察到这个地址究竟是什么。

如果我们定义了不止一个引用指向同一个对象,那么这些引用是不相同的,因为引用也是一种数据类型,需要一定的内存空间(stack,栈空间)来保存。但是它们的值是相同的,都指示同一个对象在内存(heap,堆空间)的中位置。比如:

String a="This is a Text!"; String b=a;

通过上面的代码示例不难看出,a 和 b 是不同的两个引用,我们使用了两个定义语句来定义它们。但它们的值是一样的,都指向同一个对象 “This is a Text!”。但要注意String 对象的值本身是不可更改的 (像 b = “World”; b = a; 这种情况不是改变了 “World” 这一对象的值,而是改变了它的引用 b 的值使之指向了另一个 String 对象 a)。

50万+团队都在用的项目协作工具50万+团队都在用的项目协作工具一个工具满足团队所需:任务、项目、文档、IM、目标、 日历、 甘特图、工时、审批以及更多,让工作更简单 智能化研发管理工具智能化研发管理工具PingCode 是简单易用的新一代研发管理平台,让研发管理自动化、数据化、智能化,帮助企业提升研发效能

文章标题:java的引用和指针的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37712



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3