(1)Java 中没有指针,但是有一个类似指针的东西,引用!
例如:String str=new String(“Helloworld”),str 就是引用
-
Java 的类实例化对象其实就是一个引用,它将指针的部分功能封装在了这个实例化方法中
-
Java中没有指针,但是有引用,如Object obj是指向一个Object类对象的引用,拥有指针的部分功能,但不允许
int *p = &a;
p += 2;
即不会误操作其他内存区域。 -
引用就是一个指针,只是使用权限小了些,引用未赋值使用时抛的是空指针异常,引用不能改变参数的值,只能改变参数的属性值就说明引用其实就是指针
(2) Java中引用的作用类似于指针,但是有区别:
-
指针必然指向一个内存地址,如果你定义的时候不指定,就会乱指(很可能造成安全隐患)但是引用定义出来后默认指向为空。
-
指针可以随意操作,但是引用不可以随便操作,永远只能指向对象的首地址,或者改变引用所指向的对象。
-
引用降低了指针的灵活性,但是更安全,便于人操作。
-
引用是受控、安全、阉割版的指针。安全了,当然也就失去了一定的功能,不过还是利大于弊。