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

2023-09-16 14:28:42

🎊专栏【JavaSE】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰


在这里插入图片描述

🍔System类

⭐exit()

终止当前运行的Java虚拟机

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

System.exit(0);

在这里插入图片描述

⭐currentTimeMillis()

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

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

System.currentTimeMillis();

在这里插入图片描述

🎄用处

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

 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:拷贝长度
在这里插入图片描述
这种情况的也可以
在这里插入图片描述

🍔Runtime类

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

⭐创建对象

错误写法
Runtime r1=new Runtime();

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

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

正确写法
Runtime r1=Runtime.getRuntime();

⭐exit()

停止虚拟机

Runtime.getRuntime().exit(0);

在这里插入图片描述

⭐availableProcessors()

获取CPU的线程数

Runtime.getRuntime().availableProcessors();

在这里插入图片描述

⭐maxMemory()

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

Runtime.getRuntime().maxMemory();

单位为b
在这里插入图片描述
单位是kb
在这里插入图片描述

单位是mb
在这里插入图片描述

⭐totalMemory()

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

Runtime.getRuntime().totalMemory();

在这里插入图片描述

⭐freeMemory()

虚拟机剩余内存大小

Runtime.getRuntime().freeMemory();

在这里插入图片描述

⭐exec()

运行cmd命令

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

在这里插入图片描述

//shutdown 关机
//-s 默认1分钟后关机
//-s -t 指定时间 : 指定关机时间
//-a 取消关机操作
//-r 关机并重启
Runtime.getRuntime().exec("shutdown -s -t 3600");
//3600秒后关机

🍔Object类

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

⭐toString()

返回对象的字符串格式

objects.toString();

在这里插入图片描述
我们先把Student类中的toString()方法给注释掉
在这里插入图片描述

在这里插入图片描述

⭐equals()

s1.equals(s2);

在这里插入图片描述

在这里插入图片描述

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

按快捷键Alt+insert
在这里插入图片描述
在这里插入图片描述
运行,发现变成true了
在这里插入图片描述
在这里插入图片描述

如果没有重写equals方法,默认使用Object的方法进行比较,比较的是地址值是否相等
重写后,比较的就是对象内部的属性值了

⭐clone()

🎈对象克隆
就是把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制。
方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

🎈注意

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

因为我们通过看源码可以发现,clone方法是protected修饰的
在这里插入图片描述
由于protected修饰的成员在同一包内或子类中被访问,而对于其他包中的类,需要继承来实现
在这里插入图片描述

  • 让Javabean类实现Cloneable接口

🎄浅克隆

不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来
在这里插入图片描述

🎄深克隆

基本数据类型拷贝过来
字符串复用
引用数据类型会重新创建新的
在这里插入图片描述
在这里插入图片描述

🍔Objects类

⭐isNull()

Objects.isNull(s3);

在这里插入图片描述

源码分析
在这里插入图片描述

⭐nonNull()

Objects.nonNull(s3)

在这里插入图片描述
源码分析
在这里插入图片描述

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

更多推荐

MAC MINI 2012安装Montery折腾笔记

MACMINI2012安装Montery折腾笔记(作为电视盒子/远程开发机)起因:手头有个macmini,2018年买的2手。一直都是10.12系统,处理python和苹果开发都受制于旧系统,很多软件也装不上,于是有了升级的需求,打算折腾下再战3年直接升级使用因特网恢复系统模式,恢复到最新适配的版本开机时,按Win+A

一些docker笔记

一些docker笔记docker是一个跨平台,可迁移的应用虚拟化,容器化服务平台Docker口号1:Build,ShipandRun(构建,发送和运行)Docker口号2:Buildonce,Runanywhere(构建一次,到处能用)docker一些概念docker仓库官方有dockeHub仓库,也可以使用阿里、网易

Spring Authorization Server入门 (十八) Vue项目使用PKCE模式对接认证服务

Vue单页面项目使用授权码模式对接流程说明以下流程摘抄自官网在本例中为授权代码流程。授权码流程的步骤如下:客户端通过重定向到授权端点来发起OAuth2请求。对于公共客户端,此步骤包括生成code_verifier并计算code_challenge,然后将其作为查询参数发送。如果用户未通过身份验证,授权服务器将重定向到登

PostgreSQL16源码包编译安装

一、安装环境操作系统:CentOSLinuxrelease7.8.2003(Core)PostgreSQL版本:16服务器IP地址:192.168.0.244Firewalld关闭、selinux关闭笔者本次选用最新v16版本进行部署二、pg数据库安装包下载下载地址:https://www.postgresql.org

第八章 排序

一、插入排序不带哨兵voidInsertSort(intA[],intn){inti,j,temp;for(i=1;i<n;i++){if(A[i]<A[i-1]){temp=A[i];for(j=i-1;j>=0&&A[j]>temp;--j){A[j+1]=A[j];}A[j+1]=temp;}}}带哨兵voidI

二分与前缀和

目录🍈前言❤二分🌹二分🌼数的范围🌼数的三次方根🌼特殊数字🌼机器人跳跃问题🌼四平方和🌼分巧克力🌹前缀和🌼前缀和🌼子矩阵的和🌼激光炸弹🌼K倍区间🍈前言❤二分整数二分模板中,一个比较坑的点,就是C++整数向下取整的机制,考虑到这点,你才能写出AC100%的代码关键在于1,对if()后面条件的判断2

SAP CRM 模块:概述,体系结构

前言CRM代表“客户关系管理”,是一组有助于以有组织的方式管理客户关系的方法和工具。在当今竞争激烈的商业环境中,顶级公司的注意力越来越集中于其最有价值的资产–客户。因此,这些公司需要一种合适的软件解决方案来迎合其客户,该解决方案易于使用,易于定制,完全集成并且可以灵活实施。客户关系管理是一种用于优化客户互动的业务策略。

MD5加密算法

1、简介MD5在90年代初由MIT的计算机科学实验室和RSADataSecurityInc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理

编程小白如何学习RPA,0基础学习RPA攻略!

对于编程小白来说,学习RPA(机器人流程自动化)可能会感到有些无从下手。然而,只要按照一定的步骤和策略进行学习,从0开始掌握RPA并非难事。一、了解RPA的基本概念和优势在开始学习RPA之前,首先需要了解RPA的基本概念、特点和优势。RPA是一种使用自动化工具模拟人类在计算机上执行操作的技术,它可以帮助企业实现重复性、

第36章_瑞萨MCU零基础入门系列教程之步进电机控制实验

本教程基于韦东山百问网出的DShanMCU-RA6M5开发板进行编写,需要的同学可以在这里获取:https://item.taobao.com/item.htm?id=728461040949配套资料获取:https://renesas-docs.100ask.net瑞萨MCU零基础入门系列教程汇总:https://b

Spring Boot 简介与入门

🌷🍁博主猫头虎带您GotoNewWorld.✨🍁🦄博客首页——猫头虎的博客🎐🐳《面试题大全专栏》文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大

热文推荐