我们要借助API帮助文档来帮助我们使用Runtime这个类
我们可以看到Runtime这个类在lang下,所以不需要导包,直接使用,父类依旧是Object
我们看一些他的方法,都没被static修饰,所以我们使用过这个类的时候要创建这个类的对象,用这个对象来调用里面的方法
但是我们直接创建不了他的对象,这是因为什么呢
我们来看一下他的源代码
1.构造方法被私有化了,说明不允许创建对象
2.第一行代码的成员变量存储的Runtime这个对象的地址,我们我们可以通过他来获Runtime这个类的对象
3.我们看这个成员变量前面被private static final修饰说明这个静态变量被私有化了同时被这个成员也是最后的,他不允许被修改
小扩展:被final修饰的类不允许被继承,被final修饰的成员变量一旦被初始化赋值,其值不能被修改,被finl修饰的成员方法不允许在子类中重写
4.所以我们要通过下面的静态方法来获取这个类的对象
我们可以利用两种方式来使用里面的方法,我们来看一下代码
我们要知道Runtime的一些方法的基本使用
1.停止虚拟机
Runtime.getRuntime().exit();
2.获取cpu线程数
Runtime.getRuntime().availableProcessors();
3.总内存大小(jvm最大内存可用)
Runtime.getRuntime().maxMemory();
4.虚拟已经获取的总内存大小
Runtime.getRuntime().totalMemory();
5.虚拟机剩余的内心大小
Runtime.getRuntime().freeMemory();
6.运行cmd命运
Runtime.getRuntime().exec();
并不是所有的命令都可以用
常见的好玩命令:
shutdown -s:默认一分钟后关机
shutdown -s -t +分钟: 指定关机时间
shutdown -a:取消关机操作
shutdown -r:关机并重启
我们来看一下代码,单位都是字节(byte)
扩展小知识:1GB=1024MB 1MB=1024KB 1Kb=1024byte