学习java时候的笔记(十七)

Runtime

  • Runtime表示当前虚拟机的运行环境
方法名 说明
getRuntime() 当前系统的运行环境对象
exit(int status) 停止虚拟机
availableProcessors() 获得CPU的线程数
maxMemory() JVM能从系统中获取总内存的大小(单位byte)
totalMemory() JVM已经从系统中获取的总内存大小(单位byte)
freeMemory() JVM剩余内存大小
exec(String command) 运行cmd命令

Demo:

public class RuntimeDemo1 {
    public static void main(String[] args) throws IOException {
        // 1.获取Runtime的对象
        Runtime r1 = Runtime.getRuntime();
        Runtime r2 = Runtime.getRuntime();
        System.out.println(r1 == r2);//true r1和r2获取的是同一个对象,即只存在一个虚拟机

       //获取当前CPU的线程数
        System.out.println(r1.availableProcessors());

        //查看虚拟机能获得的总内存的大小, 单位byte
        System.out.println(r1.maxMemory());

        //查看虚拟机已经获取的内存大小, 单位byte
        System.out.println(r1.totalMemory());

        //查看虚拟机剩余内存的大小, 单位byte
        System.out.println(r1.freeMemory());

        //运行cmd命令  用不了dir
        //shutdown : 关机
        //加上参数才能运行
        // -s : 默认在一分钟后关机
        // -s -t 指定时间 : 指定关机时间, 如果"指定时间是3600"则在一小时后关机
        // -a : 取消关机操作
        // -r : 关机并重启
        r1.exec("shutdown -s -t 0");

        //exit 可以停止虚拟机
        //状态码
        //0: 正常停止
        // 非 0 ;异常停止
        r1.exit(0);
        System.out.println("看看我执行了吗?");
    }
}

Object

  • Object是Java中的顶级父类。所有的类都直接或间接的继承于Object类。

  • object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法。

构造方法名 说明
Object() 空参构造
  • Object中只有空参构造
成员方法名 说明
toString() 返回对象的字符串表示形式
equals(Object obj) 比较两个对象是否相等
clone(int a) 对象克隆

Demo:

public class ObjectDemo1 {
    public static void main(String[] args) {
        //toString 返回对象的字符串表示形式
        Object obj = new Object();
        Object obj1 = new Object();
        String str1 = obj.toString();
        String str2 = obj1.toString();
        System.out.println(str1);//java.lang.Object@4eec7777     "@"前是包名+类名 后面是对象的地址值
        System.out.println(str2);
        //equals
        String s = "abc";
        String b = "abc";
        StringBuilder sb = new StringBuilder("abc");
        StringBuilder sb2 = new StringBuilder("abc");
        System.out.println(s.equals(b));
        System.out.println(s.equals(sb));
        //因为equals方法是被s调用的,而s是字符串所以equals要看string类中的
        //字符串中的equals方法,先判断参数是否为字符串'如果是字符串,再比较内部的属性
        //但是如果参数不是字符串,直接返回false
        System.out.println(sb.equals(s));
        System.out.println(sb.equals(sb2));
        ///因为equals方法是被sb调用的,而sb是stringBuilder所以这里的equals方法要看stringBuilder中的equals方法
        // 那么在StringBuilder当中,没有重写equals方法
        ///使用的是object中的
        ///在object当中默认是使用==号比较两个对象的地址值
        ///而这里的s和sb记录的地址值是不一样的,所以结果返回false
    }
}

最后 :欢迎大家关注我的公众号

相关推荐
小灰灰__12 分钟前
IDEA加载通义灵码插件及使用指南
java·ide·intellij-idea
夜雨翦春韭16 分钟前
Java中的动态代理
java·开发语言·aop·动态代理
准橙考典17 分钟前
怎么能更好的通过驾考呢?
人工智能·笔记·自动驾驶·汽车·学习方法
hong16168825 分钟前
跨模态对齐与跨领域学习
学习
程序媛小果36 分钟前
基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
java·vue.js·spring boot
追风林41 分钟前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
芒果披萨1 小时前
El表达式和JSTL
java·el
阿伟来咯~1 小时前
记录学习react的一些内容
javascript·学习·react.js
Suckerbin1 小时前
Hms?: 1渗透测试
学习·安全·网络安全
duration~2 小时前
Maven随笔
java·maven