过度写入数组与删除并重新初始化数组?JAVA

过度写入数组与删除并重新初始化数组?JAVA,java,recursion,out-of-memory,Java,Recursion,Out Of Memory,在java中重写数组是否与删除元素并插入新元素相同?我有一个50x50数组,它存储浮点值。方法计算新值并将其发送到已具有这些值的同一数组,以覆盖以前的值。这是一个重复的过程。在大约1500次迭代之后,会发生stackoverflow错误。如果在向数组写入值之前先将数组设置为null,会有什么不同吗 代码是: float n=input.nextFloat(); 公共静态无效计算\初始\浮动\值(){ 对于(inti=0;i

在java中重写数组是否与删除元素并插入新元素相同?我有一个50x50数组,它存储浮点值。方法计算新值并将其发送到已具有这些值的同一数组,以覆盖以前的值。这是一个重复的过程。在大约1500次迭代之后,会发生stackoverflow错误。如果在向数组写入值之前先将数组设置为null,会有什么不同吗

代码是:

float n=input.nextFloat();
公共静态无效计算\初始\浮动\值(){
对于(inti=0;i
取决于您的代码。是1500次迭代还是1500次递归?当堆栈分配过大并崩溃到堆中时,会发生堆栈溢出异常(这是经常调用自身的递归函数的常见问题)khelwood已经对此给出了完美的评论,但如果您只替换同一数组中的基元值,那么就不应该有任何内存问题,因此代码中会出现更多问题。“如果在向数组写入值之前先将数组设置为null,会不会有所不同?”您尝试过吗?@UmairChaudhry请编辑您的问题并将其放在评论中,而不是将代码放在评论中(更易于阅读)。如果你能把原始问题中的代码放在一个
    float n = input.nextFloat();
    public static void calculate_initial_float_values(){

    for(int i = 0; i < a.length; i++){ 
      for(int j = 0; j < a.length; j++){

      a[i][j] = i+j+n*n ; 
      } 
    }
      change_values();
  }

    public static void change_values(){
        n = rng.Random(9);
        calculate_initial_float_values(); 
  }