11.07

  1. 你能保证 GC 执行吗?
    不能,虽然你可以调用 System.gc() 或者 Runtime.getRuntime().gc(),但是没有办法保证 GC 的执行。
  2. 怎么获取 Java 程序使用的内存?堆使用的百分比?
    可以通过 java.lang.Runtime 类中与内存相关方法来获取剩余的内存,总内存及最大堆内存。通过这些方法你也可以获取到堆使用的百分比及堆内存的剩余空间。
    Runtime.freeMemory() 方法返回剩余空间的字节数,
    Runtime.totalMemory() 方法总内存的字节数,
    Runtime.maxMemory() 返回最大内存的字节数。
  3. Java 中堆和栈有什么区别?
    JVM 中堆和栈属于不同的内存区域,使用目的也不同。栈常用于保存方法帧和局部变量,而对象总是在堆上分配。栈通常都比堆小,也不会在多个线程之间共享,而堆被整个 JVM 的所有线程共享。

你可能感兴趣的:(11.07)