【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

2024-02-26 1216阅读

温馨提示:这篇文章已超过428天没有更新,请注意相关的内容是否还可用!

🎊专栏【JavaSE】

🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。

🎆音乐分享【如愿】

🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • 🍔System类
    • ⭐exit()
    • ⭐currentTimeMillis()
      • 🎄用处
      • ⭐arraycopy()
      • 🍔Runtime类
        • ⭐创建对象
        • ⭐exit()
        • ⭐availableProcessors()
        • ⭐maxMemory()
        • ⭐totalMemory()
        • ⭐freeMemory()
        • ⭐exec()
        • 🍔Object类
          • ⭐toString()
          • ⭐equals()
          • ⭐clone()
            • 🎈注意
            • 🎄浅克隆
            • 🎄深克隆
            • 🍔Objects类
              • ⭐isNull()
              • ⭐nonNull()

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                🍔System类

                ⭐exit()

                终止当前运行的Java虚拟机

                执行这段代码后,后面的代码都不再执行

                System.exit(0);
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐currentTimeMillis()

                返回当前系统的时间(用毫秒表示)

                记录的是从1970.1.1 0时0分0秒 到现在有多长时间

                System.currentTimeMillis();
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                🎄用处

                可以比较两个程序的运行时间,从而判断哪个程序效率更高

                 long start=System.currentTimeMillis();
                 //调用函数
                 long end=System.currentTimeMillis();
                 //获取程序运行的总时间
                 System.out.println(end - start);
                

                ⭐arraycopy()

                数组拷贝

                System.arraycopy(num1,num2,num3,num4,num5);
                

                num1:被拷贝的数组

                num2:从哪个索引开始拷贝

                num3:数据被拷贝到的数组(目标数组)

                num4:目标数组 开始的索引

                num5:拷贝长度

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                这种情况的也可以

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                🍔Runtime类

                可以用来监控虚拟机的内存

                ⭐创建对象

                错误写法

                Runtime r1=new Runtime();

                类 Runtime 是 Java 标准库中的一个类,用于与运行时系统进行交互,但它不允许通过 new Runtime() 的方式实例化对象,因为其构造函数是私有的(private)。这意味着不能直接使用 new 关键字来创建 Runtime 类的实例。

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                Java 中对于某些类,特意将构造函数设计为私有,这是为了确保该类只能通过特定的方法来获取其实例。对于 Runtime 类,获取其实例的方法是使用静态方法 Runtime.getRuntime()。

                正确写法

                Runtime r1=Runtime.getRuntime();

                ⭐exit()

                停止虚拟机

                Runtime.getRuntime().exit(0);
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐availableProcessors()

                获取CPU的线程数

                Runtime.getRuntime().availableProcessors();
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐maxMemory()

                虚拟机可以从系统中获取的总内存的大小

                Runtime.getRuntime().maxMemory();
                

                单位为b

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                单位是kb

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                单位是mb

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐totalMemory()

                虚拟机已经获取的总内存的大小

                Runtime.getRuntime().totalMemory();
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐freeMemory()

                虚拟机剩余内存大小

                Runtime.getRuntime().freeMemory();
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐exec()

                运行cmd命令

                //打开记事本
                Runtime.getRuntime().exec("notepad");
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                //shutdown 关机

                //-s 默认1分钟后关机

                //-s -t 指定时间 : 指定关机时间

                //-a 取消关机操作

                //-r 关机并重启

                Runtime.getRuntime().exec("shutdown -s -t 3600");

                //3600秒后关机

                🍔Object类

                Object是Java的顶级父类,Java的所有类都直接或间接地继承于Object类

                ⭐toString()

                返回对象的字符串格式

                objects.toString();
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                我们先把Student类中的toString()方法给注释掉

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                ⭐equals()

                s1.equals(s2);
                

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                这里,我们重写equals方法,看看效果

                按快捷键Alt+insert

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                运行,发现变成true了

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                如果没有重写equals方法,默认使用Object的方法进行比较,比较的是地址值是否相等

                重写后,比较的就是对象内部的属性值了

                ⭐clone()

                🎈对象克隆

                就是把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制。

                方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去。

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                🎈注意

                • 一定要重写Object中的clone方法

                  因为我们通过看源码可以发现,clone方法是protected修饰的

                  【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                  由于protected修饰的成员在同一包内或子类中被访问,而对于其他包中的类,需要继承来实现

                  【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                  • 让Javabean类实现Cloneable接口

                    🎄浅克隆

                    不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    🎄深克隆

                    基本数据类型拷贝过来

                    字符串复用

                    引用数据类型会重新创建新的

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    🍔Objects类

                    ⭐isNull()

                    Objects.isNull(s3);
                    

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    源码分析

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    ⭐nonNull()

                    Objects.nonNull(s3)
                    

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    源码分析

                    【从入门到起飞】JavaAPI—System,Runtime,Object,Objects类

                    🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]