java - Java 中指向同一个数组的指针

标签 java pointers

我只是想确保我清楚这一点,因为我不太确定确切的行为。我有两个数组:

private short[] bufferA;
private short[] bufferB;

我想在其中交换。我可以做这样的事情吗:

private short[] currentBuffer;

while(something)
  {
  currentBuffer = (condition) ? bufferA : bufferB;
  modify(currentBuffer);
  }

根据某些条件修改 bufferA 或 bufferB,或者我应该使用标志并像这样手动编码:

private int currentBuffer;

while(something){
  currentBuffer = (condition) ? BUFFER_A : BUFFER_B;
  if(currentBuffer == BUFFER_A) {
    modify(bufferA);
  }else{
    modify(bufferB);
  }
}

我正在使用的代码比这个简化的示例更复杂,因此如果我可以采用第一种方法,那将是首选。

最佳答案

虽然你的数组保存着原语,但数组本身是对象

所以引用工作正常。

Java 通过值基元和引用对象传递。

乌多

关于java - Java 中指向同一个数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593488/

相关文章:

JAVA TCP 客户端-服务器连接

java - 如何从 IntelliJ 正确构建 JAR?

python - 使用 Python 的 ctypes 传递/读取声明为 "struct_name *** param_name"的参数?

c++ - 为什么这运行良好? (访问范围外变量的地址)

c - C中指向数组的指针

java - 如何为 Tomcat servlet 配置 user.dir?

Java正则表达式(贪婪/非贪婪)

java - 在 Java 中使用 XStream 序列化为 YAML

c - char*str= {"foo",...} 和 char str[][5]= {"foo",...} 数组定义有什么区别?

c - 为什么在 LinkedList 的这个实现中会出现段错误