1

これら 2 つのコードの違いがわかりません。

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    while (true) {
      list.add("Hello");
    }
  }

java.lang.OutOfMemoryError これは1 秒以内にスローされ、

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    while (true) {
      list.add("Hello");
      System.out.println(list.size());  // Simply display the size of List
    }
  }

list.size() の値が 20767725 でjava.lang.OutOfMemoryError 5 分後にスローされます。

4

4 に答える 4

8

簡単に言えば、2000 万行のテキストを表示するにはかなりの時間がかかります。

それを示すのは簡単です。次のコードを実行します。

for (int x = 0; x < 20767725; x++) {
    System.out.println(x);
}

これも5分くらいかかると思います。

于 2013-10-17T06:53:21.830 に答える
1

System.out.println()時間がかかる IO 操作です。これが「1 秒」と「5 分」の違いを説明しています。

于 2013-10-17T06:54:49.620 に答える
1

System.out.println()IO 操作に関連するため、実行に時間がかかります。

于 2013-10-17T07:16:36.637 に答える