可以通过 java.lang.Runtime类中与内存相关方法来获取剩余的内存,总内存及最大堆内存。
通过这些方法你也可以获取到堆使用的百分比及堆内存的剩余空间。
runtime.freeMemory()方法: 返回Java虚拟机中的空余内存量
runtime.totalMemory()方法: 返回 Java虚拟机中的内存总量
runtime.maxMemory()方法: 返回Java虚拟机试图使用的最大内存量

public static void main(String[] args){
        Runtime runtime = Runtime.getRuntime();
        System.out.println("JVM空闲内存=" + runtime.freeMemory()/1024/1024 + "M");
        System.out.println("JVM总内存=" + runtime.totalMemory()/1024/1024 + "M");
        System.out.println("JVM可用最大内存=" + runtime.maxMemory()/1024/1024 + "M");
        String str = "abc";
        for (int i = 0; i < 2000; i++){
            str += "def"+ i;
        }
        System.err.println("str-JVM空闲内存=" + runtime.freeMemory()/1024/1024 + "M");
        System.err.println("str-JVM总内存=" + runtime.totalMemory()/1024/1024 + "M");
        System.err.println("str-JVM可用最大内存=" + runtime.maxMemory()/1024/1024 + "M");
        runtime.gc();
        System.out.println("调用gc-JVM空闲内存=" + runtime.freeMemory()/1024/1024 + "M");
        System.out.println("调用gc-JVM总内存=" + runtime.totalMemory()/1024/1024 + "M");
        System.out.println("调用gc-JVM可用最大内存=" + runtime.maxMemory()/1024/1024 + "M");
    }

修改JVM内存方法:
1、eclispe->window->preferences->Java->Insualled JRE,点击右侧的Edit按钮,在编辑界面中的“Default VM Arguments”选项中,填入如下值即可:
-Xms64m-Xmx128m
2、代码处单机右键,依次点击Run As->Run Configurations,在Arguments 参数中的“VM arguments:”中填入如下值即可:
-Xms64m -Xmx128m

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.