java - MEMORY_LIMIT_EXCEEDED 错误,我用什么代替数组?
问题描述
我是内存分配的新手,所以我创建了一个不通过基于大数字的测试的代码,因为最大堆栈内存设置为 256mb:
java.lang.OutOfMemoryError: Java heap space
at kdiv.main(kdiv.java:35)
我的代码:
import java.io.*;
import java.util.*;
public class kdiv {
public static void main(String[] args) {
int sum = 0;
int minmax = 1;
Scanner sc = new Scanner(System.in);
int testcs = 0;
if (sc.hasNextInt()) {
testcs = sc.nextInt();
}
for (int x = 1; x <= testcs; x++) {
// testCase();
// TODO Auto-generated method stub
int n = 0;
double k = 0;
// System.out.print("n: ");
if (sc.hasNextInt()) {
n = sc.nextInt();
}
// System.out.print("k: ");
if (sc.hasNextInt()) {
k = sc.nextInt();
}
minmax = 1;
sum = 0;
int arr[] = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = 1;
sum += arr[i];
}
for (int a = 0; a < k; a++) {
if (sum % k == 0) {
if (a == 0) {
System.out.println(minmax);
}
break;
}
for (int b = 0; b < n; b++) {
arr[b]++;
sum++;
minmax = arr[b];
// System.out.println(Arrays.toString(arr));
if (sum % k == 0) {
System.out.println(minmax);
break;
}
}
}
}
}
}
这是一个微不足道的问题,我知道,但我不知道如何处理。谁能至少建议我在哪里学习内存分配以便我能理解这件事?因为我被困住了。祝你今天过得愉快。
解决方案
您是否正在寻找增加 JVM 内存分配的方法?如果是这样,可以在这里找到:
推荐阅读
- python - 将数据框合并到一个数据框的最快方法
- powerbi - 资产负债表指标 DAX(填空)
- layout - SwiftUI Path 作为 contentShape,与 Image 不对齐
- android - React Native 开发服务器错误 500
- c - 动态调整作为双指针传入的数组的大小:检测到双自由
- android - 使用来自 android 的谷歌语音云 api 在 GOOGLE_APPLICATION_CREDENTIALS 中出现错误
- laravel - 认证推荐
- c - 如何将双指针从第三个函数传递到 C 中的第四个函数?
- go - Gorm 非常慢
- html - 当我使用中继器时,Bootstrap 弄乱了我的表格布局