Java笔记-通过4个小程序对Java内存初步探究

程序A:

package cn.it1995;

import javax.swing.*;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args){

        while (true){

            ArrayList<String> list = new ArrayList<String>();
            for(Integer i = 0; i < 1000000; i++){

                list.add("HELLO WORLD");
            }
        }
    }
}

程序B:

package cn.it1995;

import javax.swing.*;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args){

        while (true){

            ArrayList<String> list = new ArrayList<String>();
            for(Integer i = 0; i < 1000000; i++){

                list.add("HELLO WORLD");
            }
            list.clear();
        }
    }
}

程序C:

package cn.it1995;

import javax.swing.*;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args){

        while (true){

            ArrayList<String> list = new ArrayList<String>();
            for(Integer i = 0; i < 1000000; i++){

                list.add("HELLO WORLD");
            }
            list.clear();
            list = null;
        }
    }
}

程序D:

package cn.it1995;

import javax.swing.*;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args){

        while (true){

            ArrayList<String> list = new ArrayList<String>();
            for(Integer i = 0; i < 1000000; i++){

                String str = new String("HELLO WORLD");
                list.add(str);
                str = null;
            }
            list.clear();
            list = null;
        }
    }
}

运行刚刚开始运行时

等过几分钟,在来看看这个RES的大小

从中可以看到,程序D是占用内存最小的。 这个无聊的小实验只是说明。如果大家对内存方面有强迫,建议使用程序D,等Java内存回收,不知道要等到什么时候去了。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页