设为首页 加入收藏

TOP

Java引用与C指针的区别
2014-11-23 22:12:33 来源: 作者: 【 】 浏览:82
Tags:Java 引用 指针 区别

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


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


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


  从实现上来讲,引用可以理解为一种受限的指针,引用底层可以采用指针来实现,也可以采用句柄的方式实现。早期jvm一般采用句柄的方式,现在的jvm,比如sun的,IBM的,一般就是用指针来实现。


  不过从语言的角度来将,没有必要把java的引用和C的指针来比较。


  指针是可以进行与整数做加减运算的,两个指针之间也可以进行大小比较运算和相减运算。


  引用不行,只能进行赋值运算。


  当然有区别


  A a=new A();


  你可以 a=a+1;吗 指针就可以!


  编辑特别推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇计算机二级辅导:java反射的好处 下一篇Java中移位操作符的运算规则

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: