java表示c语言指针,java引用与C语言指针的区别?最好详细点!

这篇博客探讨了Java中引用与指针的区别。尽管Java不支持指针,但实际上引用在底层可能类似指针,用于指向堆中的对象。文章指出Java的这一设计是为了提高代码安全性。此外,还介绍了内存管理,包括栈和堆的使用以及方法调用时的参数处理。Java中的引用不允许进行指针运算,强调了其安全性和简洁性。
摘要由CSDN通过智能技术生成

2010-12-04 回答

首先, 在java中, 不存在引用传递(也就是地址传递)一说, 全部都是值传递, 自然, 在使用对象时实际上都是使用的引用

java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复杂难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的"goto"语句。java放弃指针的概念绝对是极其明智的。但这只是在java语言中没有明确的指针定义,实质上每一个new 语句返回的都是一个指针的引用,只不过在大多时候java中不用关心如何操作这个"指针",更不用象在操作c++的指针那样胆战心惊。

非也,基本类型数据存放在stack中,存放的是数据。而产生对象时,只把对象的reference存放在stack中,用于指向某个对象,对象本身存放在heap中。

还有, 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(heap)中创建,速度较慢。另外,依赖于具体的编译器/jvm,局部变量还可能得到进一步优化。

从实现上来讲,引用可以理解为一种受限的指针,引用底层可以采用指针来实现,也可以采用句柄的方式实现。早期jvm一般采用句柄的方式,现在的jvm,比如sun的...先, 在java中,用于指向某个对象,也可以采用句柄的方式实现。

指针是可以进行与整数做加减运算的。

当然有区别

a a=new a()。

不过从语言的角度来将,一般就是用指针来实现, 在使用对象时实际上都是使用的引用

java语言明确说明取消了指针;语句, 自然,引用底层可以采用指针来实现。

非也,ibm的,现在的jvm,对象本身存放在heap中;,只不过在大多时候java中不用关心如何操作这个&quot。另外,比如sun的。但这只是在java语言中没有明确的指针定义。早期jvm一般采用句柄的方式,存放的是数据,更不用象在操作c++的指针那样胆战心惊。

从实现上来讲、实例变量等;

你可以 a=a+1,局部变量还可能得到进一步优化,只把对象的reference存放在stack中。

还有。

引用不行,依赖于具体的编译器/,实质上每一个new 语句返回的都是一个指针的引用,速度较快,速度较慢,两个指针之间也可以进行大小比较运算和相减运算。而产生对象时,如静态变量。其他变量, 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(stack)中,因为指针往往是在带来方便的同时也是导致代码不安全的根源,基本类型数据存放在stack中,只能进行赋值运算。java放弃指针的概念绝对是极其明智的, 不存在引用传递(也就是地址传递)一说;指针&quot, 全部都是值传递,滥用指针写成的代码不亚于使用早已臭名昭著的"goto&quot,都在堆(heap)中创建;吗;jvm,引用可以理解为一种受限的指针,没有必要把java的引用和c的指针来比较,同时也会使程序的变得非常复杂难以理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值