Java“指针”如何工作?

前端之家收集整理的这篇文章主要介绍了Java“指针”如何工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们说这是C代码
void change(int& x){
    x++;
}
@H_404_4@要么

void change2(int* a){
    *a++;
}
@H_404_4@两者都会改变全局x,对吧?
那我怎么能在java中做那样的事情呢?
具体来说,我想指向一个Vector对象

@H_404_4@但由于Java没有指针,我不知道该怎么做.
搜索互联网上我看到人们说Java以其他方式做到了这一点,但我没有找到任何真实的例子.
感谢
救命!

解决方法

在Java中,您可以使用对象的引用而不是指针.您不能通过引用传递基本类型,但可以将基本类型包装在对象中,然后将引用传递给该对象. @H_404_4@Java提供了包装int的Integer类型,但是这种类型是不可变的,所以你不能在构造之后改变它的值.但是你可以使用Apache Commons的MutableInt:

void change(MutableInt x) {
    x.increment();
}
@H_404_4@调用者可以看到对x的更改.

@H_404_4@Specifically,I want to point to a Vector object

@H_404_4@当你写Vector v = …;您正在为变量v指定向量的引用.Java中的引用与指针非常相似.实际上,引用是使用指针在内部实现的.

@H_404_4@Java使用pass by value.将向量传递给方法时,实际上是在复制对该向量的引用.它不会克隆载体本身.因此,在Java中传递引用与在C中传递指针非常相似.

原文链接:https://www.f2er.com/java/127539.html

猜你在找的Java相关文章