黑马程序员技术交流社区

标题: 谁说java没有指针? [打印本页]

作者: qq474249147    时间: 2014-6-15 14:45
标题: 谁说java没有指针?
谁说java没有指针?如果连基本数据类型都用包装类的话,应该是纯粹只用指针,只是不能++--罢了
作者: 张宇清    时间: 2014-6-15 14:55
首先,Java中没有指针这个词语。
C语言、C++语言中的指针,通常意义上指的是指针变量,它是一个变量,是一块内存空间。保存的值是地址。
那么可以这么写: int a = 11;   int* p = &a;    假设这里的a为局部变量,在C语言里规定,局部变量存放在栈区,
而在Java中,int a = 12; Java没有办法获取到a存放的地址值,更不能你刚说的 -- ++。
那么在Java中,可以采用创建对象的方式,例如: Person p = new Person();   new出的对象是存放于堆空间的,是区别于栈的,p在这里可以认为是指向了堆空间中的Person对象,p中存放的就是Person对象的地址。
当指针或者对象作为函数参数的时候,Java的对象引用更像(不是更像就是一样)C++语言中的引用。
作者: iWilliam    时间: 2014-6-15 15:21
以前叫句柄,后来改叫引用~
作者: qq474249147    时间: 2014-6-15 15:50
张宇清 发表于 2014-6-15 14:55
首先,Java中没有指针这个词语。
C语言、C++语言中的指针,通常意义上指的是指针变量,它是一个变量,是一 ...

其实最大的缺陷是是传值传址分不清,比如说Integer是对象,却是传值,
作者: axuan    时间: 2014-6-15 17:55
没有指针

作者: 张宇清    时间: 2014-6-15 18:29
qq474249147 发表于 2014-6-15 15:50
其实最大的缺陷是是传值传址分不清,比如说Integer是对象,却是传值,

Integer传的是地址值,Java中只有值传递,没有所谓的引用传递。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2