A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qq474249147 中级黑马   /  2014-6-15 14:45  /  1329 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁说java没有指针?如果连基本数据类型都用包装类的话,应该是纯粹只用指针,只是不能++--罢了

5 个回复

倒序浏览
首先,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++语言中的引用。
回复 使用道具 举报
以前叫句柄,后来改叫引用~
回复 使用道具 举报
张宇清 发表于 2014-6-15 14:55
首先,Java中没有指针这个词语。
C语言、C++语言中的指针,通常意义上指的是指针变量,它是一个变量,是一 ...

其实最大的缺陷是是传值传址分不清,比如说Integer是对象,却是传值,
回复 使用道具 举报
没有指针
回复 使用道具 举报
qq474249147 发表于 2014-6-15 15:50
其实最大的缺陷是是传值传址分不清,比如说Integer是对象,却是传值,

Integer传的是地址值,Java中只有值传递,没有所谓的引用传递。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马