1、内存管理:
Java提供了无用单元自动收集机制。通过totalMemory()和freeMemory()方法可以知道对象的堆内存有多大,还剩多少。
Java 会周期性的回收垃圾对象(未使用的对象),以便释放内存空间。但是如果想先于收集器的下一次指定周期来收集废弃的对象,可以通过调用gc()方法来根据需 要运行无用单元收集器。一个很好的试验方法是先调用gc()方法,然后调用freeMemory()方法来查看基本的内存使用情况,接着执行代码,然后再 次调用freeMemory()方法看看分配了多少内存。下面的程序演示了这个构想。
 
public static void main(String[] args) {
  Runtime.getRuntime().gc();
 
  long a = Runtime.getRuntime().totalMemory();
  long a1= Runtime.getRuntime().freeMemory();
  long a2= a-a1;
  System.out.println("s="+a2);
  List<Subscriber> s=new ArrayList<Subscriber>();
  for (int i = 0; i < 50000; i++) {
   Subscriber sb=new Subscriber();
   sb.setId(111l);
   sb.setName("1231231");
   s.add(sb);
  }
  Runtime.getRuntime().gc();
  long b = Runtime.getRuntime().totalMemory();
  long b1= Runtime.getRuntime().freeMemory();
  long b2= b-b1;
  System.out.println("e="+b2);
  System.out.println(b2-a2);
  System.out.println((b2-a2)/1024/1024);
 
 
 }
 

二、API预览
    addShutdownHook(Thread hook) 
      注册新的虚拟机来关闭挂钩。 
    availableProcessors() 
      向 Java 虚拟机返回可用处理器的数目。 
    exec(String command) 
      在单独的进程中执行指定的字符串命令。 
    exec(String[] cmdarray) 
      在单独的进程中执行指定命令和变量。 
    exec(String[] cmdarray, String[] envp) 
      在指定环境的独立进程中执行指定命令和变量。 
    exec(String[] cmdarray, String[] envp, File dir) 
      在指定环境和工作目录的独立进程中执行指定的命令和变量。 
    exec(String command, String[] envp) 
      在指定环境的单独进程中执行指定的字符串命令。 
    exec(String command, String[] envp, File dir) 
      在有指定环境和工作目录的独立进程中执行指定的字符串命令。 
    exit(int status) 
      通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。 
    freeMemory() 
      返回 Java 虚拟机中的空闲内存量。 
    gc() 
      运行垃圾回收器。 
    InputStream getLocalizedInputStream(InputStream in) 
      已过时。 从 JDK 1.1 开始,将本地编码字节流转换为 Unicode 字符流的首选方法是使用 InputStreamReader 和 BufferedReader 类。 
    OutputStream getLocalizedOutputStream(OutputStream out) 
      已过时。 从 JDK 1.1 开始,将 Unicode 字符流转换为本地编码字节流的首选方法是使用 OutputStreamWriter、BufferedWriter 和 PrintWriter 类。 
    getRuntime() 
      返回与当前 Java 应用程序相关的运行时对象。 
    halt(int status) 
      强行终止目前正在运行的 Java 虚拟机。 
    load(String filename) 
      加载作为动态库的指定文件名。 
    loadLibrary(String libname) 
      加载具有指定库名的动态库。 
    maxMemory() 
      返回 Java 虚拟机试图使用的最大内存量。 
    removeShutdownHook(Thread hook) 
      取消注册某个先前已注册的虚拟机关闭挂钩。 
    runFinalization() 
      运行挂起 finalization 的所有对象的终止方法。 
    runFinalizersOnExit(value) 
      已过时。 此方法本身具有不安全性。它可能对正在使用的对象调用终结方法,而其他线程正在操作这些对象,从而导致不正确的行为或死锁。 
    totalMemory() 
      返回 Java 虚拟机中的内存总量。 
    traceInstructions(on) 
      启用/禁用指令跟踪。 
    traceMethodCalls(on) 
      启用/禁用方法调用跟踪。

【JAVA】Runtime的更多相关文章

  1. 【Java】模拟Sping,实现其IOC和AOP核心(二)

    接着上一篇,在上一篇完成了有关IOC的注解实现,这一篇用XML的方式实现IOC,并且完成AOP. 简易的IOC框图 注解的方式实现了左边的分支,那么就剩下右边的XML分支: XmlContext:这个 ...

  2. 【Java】模拟Sping,实现其IOC和AOP核心(一)

    在这里我要实现的是Spring的IOC和AOP的核心,而且有关IOC的实现,注解+XML能混合使用! 参考资料: IOC:控制反转(Inversion of Control,缩写为IoC),是面向对象 ...

  3. 【Java】-NO.17.EBook.4.Java.1.014-【疯狂Java讲义第3版 李刚】- Annotation

    1.0.0 Summary Tittle:[Java]-NO.17.EBook.4.Java.1.014-[疯狂Java讲义第3版 李刚]-  Annotation Style:EBook Serie ...

  4. 【Java】-NO.16.EBook.4.Java.1.006-【疯狂Java讲义第3版 李刚】- 垃圾回收

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.006-[疯狂Java讲义第3版 李刚]- 垃圾回收 Style:EBook Series:Java ...

  5. 【Java】-NO.16.EBook.4.Java.1.007-【疯狂Java讲义第3版 李刚】- Java基础类

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.007-[疯狂Java讲义第3版 李刚]-  Java基础类 Style:EBook Series:J ...

  6. 【Java】-NO.16.EBook.4.Java.1.010-【疯狂Java讲义第3版 李刚】- 异常

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.010-[疯狂Java讲义第3版 李刚]- 异常 Style:EBook Series:Java Si ...

  7. 【Java】-NO.12.Java.2.OCJP.1.001-【Java OCJP】-

    1.0.0 Summary Tittle:[Java]-NO.12.Java.2.OCJP.1.001-[Java OCJP]- Style:Java Series:OCJP Since:2017-0 ...

  8. 【JAVA】虚拟机指令集

    [JAVA]虚拟机指令集 – – – 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 icons ...

  9. 【Java】macOS下编译JDK8

    安装mercurial brew install mercurial 下载源码 1234 hg clone http://hg.openjdk.java.net/jdk8/jdk8 java-sour ...

随机推荐

  1. CentOS个人目录下中文路径转英文路径

    CentOS个人目录下中文路径转英文路径 如果安装了中文版到CentOS之后,root目录及home目录下会出现中文到路径名,如"桌面"."文档"," ...

  2. CSS3中的动画功能(一)

    css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ...

  3. 设置arc 的默认编辑器

    arc set-config editor "vim" 转自:http://udn.yyuap.com/thread-39791-1-1.html Pharicator是FB的代码 ...

  4. Mongodb启动命令mongod参数说明

    Mongodb启动命令mongod参数说明 mongod的主要参数有: 基本配置 ----------------------------------------------------------- ...

  5. JS自动缩放页面图片

    /** * 缩略图 * * @param bool isScaling 是否缩放 * @param int width 宽度 * @param int height 高度 * @param strin ...

  6. 最近使用oracle的笔记和少量的正则表达式

    用户.表空间.表:    一个用户一般给予一个表空间,可以多个用户共同管理一个表空间    一个表空间会有多张表对于权限的控制:    在数据库中在人员菜单与需要浏览的文件之间做权限设置能否浏览,可以 ...

  7. TypeError: test() got multiple values for keyword argument 'key'

    原因是: 1.函数调用的最终形式只会调用两个函数.一个list参数和一个dict参数,格式为call(func, list, dict); 2.如果传入参数中有key参数,那么首先key参数(包括扩展 ...

  8. word20161210

    gateway / 网关 gateway account / 网关帐户 Gateway Service for NetWare / NetWare 网关服务 GDI objects / GDI 对象 ...

  9. PHP - xhprof+Graphviz 安装配置

    简介:XHProf是Facebook放出的轻量级调试工具.和Xdebug相比,XHProf更加易用和可控,尤其是生成流程图和调试数据对比的功能很好很强大. 参考:http://us2.php.net/ ...

  10. ffmpeg-20160901-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...