Java“指针”如何工作?
发布时间:2020-12-14 23:37:02 所属栏目:Java 来源:网络整理
导读:让我们说这是C代码: void change(int x){ x++;} 要么 void change2(int* a){ *a++;} 两者都会改变全局x,对吧? 那我怎么能在java中做那样的事情呢? 具体来说,我想指向一个Vector对象 但由于Java没有指针,我不知道该怎么做. 从搜索互联网上我看到人们说Java
让我们说这是C代码:
void change(int& x){ x++; } 要么 void change2(int* a){ *a++; } 两者都会改变全局x,对吧? 但由于Java没有指针,我不知道该怎么做. 解决方法
在Java中,您可以使用对象的引用而不是指针.您不能通过引用传递基本类型,但可以将基本类型包装在对象中,然后将引用传递给该对象.
Java提供了包装int的Integer类型,但是这种类型是不可变的,所以你不能在构造之后改变它的值.但是你可以使用Apache Commons的MutableInt: void change(MutableInt x) { x.increment(); } 调用者可以看到对x的更改.
当你写Vector v = …;您正在为变量v指定向量的引用.Java中的引用与指针非常相似.实际上,引用是使用指针在内部实现的. Java使用pass by value.将向量传递给方法时,实际上是在复制对该向量的引用.它不会克隆载体本身.因此,在Java中传递引用与在C中传递指针非常相似. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |