Java基础10:常用API

news2024/11/26 1:48:20

Java基础10:常用API

  • 一、Math
  • 二、System
    • 1. currentTimeMillis
    • 2. arraycopy
  • 三、Runtime
  • 四、Object
    • 1. toString
    • 2. equals
    • 3. clone
  • 五、Objects
  • 六、BigInteger
    • 1. 构造方法(获取BigInteger)
    • 2. 常用方法
  • 七、BigDecimal
    • 1. 构造方法(获取BigDecimal)
    • 2. 常用方法

一、Math

  • 是一个帮助我们进行数学计算的工具类
  • 私有化构造方法,所有的方法都是静态的。
方法名返回类型说明
abs(int a)int绝对值
ceil(double a)double向上取整
floor(double a)double向下取整
round(float a)int四舍五入
max(int a, int b)int两个值中的最大值
pow(double a, double b)doublea的b次幂
sqrt(double a)double平方根
cbrt(double a)double立方根
random()double[0.0, 1.0) 中的随机值

二、System

  • System是一个工具类,提供一些与系统相关的方法
方法名返回类型说明
exit(int status)void终止当前运行的JVM
currentTimeMillis()long当前系统的毫秒值时间
arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数)void数组拷贝

1. currentTimeMillis

  • 起始时间是1970年1月1日00:00:00,东八区为08:00:00

2. arraycopy

  • 如果数据源数组和目的数组都是基本数据类型,那么两者的类型必须保持一致。
  • 拷贝时如果超出数组范围会报错。
  • 如果数据源数组和目的数组都是引用数据类型,那么子类类型可以赋值给父类类型。

三、Runtime

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

public class Demo1 {
    public static void main(String[] args) throws IOException {
        // 获取运行环境
        Runtime runtime = Runtime.getRuntime();
        // CPU线程数
        System.out.println(runtime.availableProcessors() + "线程");
        // 内存大小
        System.out.println(runtime.maxMemory() + " byte");
        // 已经获取的内存大小
        System.out.println(runtime.totalMemory() + " byte");
        // 剩余的内存大小
        System.out.println(runtime.freeMemory() + " byte");
        // 运行终端命令
        System.out.println(runtime.exec("ifconfig"));
        // 停止虚拟机
        runtime.exit(0);
    }
}

请添加图片描述

四、Object

  • Object是Java中的顶级父类。所有的类都直接或间接的继承于Object类。
  • Object类中的方法可以被所有子类访问。
方法名返回类型说明
toString()String对象的字符串表现形式
equals(Object obj)boolean比较两个对象是否相等
clone(int a)Object对象克隆

1. toString

  • 默认情况下,toString方法返回的是地址值。
  • 如果想看到属性值,就重写toString方法,把对象的属性值进行拼接。
public String toString() {
    return "Student{name = " + name + ", age = " + age + ", gender = " + gender + "}";
}

2. equals

  • 如果没有重写equals方法,默认使用Object中的方法进行比较,比较的是地址值是否相等。
  • 重写equals后比较对象内部的属性值。
@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Student student = (Student) o;
    return age == student.age && Objects.equals(name, student.name) && Objects.equals(gender, student.gender);
}

3. clone

  • clone默认是浅克隆,如果要深克隆需要重写方法或使用第三方工具类。
  • 使用clone的步骤:
    1. 重写Object中的clone方法。
    2. 让JavaBean类实现Cloneable接口。
    3. 创建原对象并调用clone方法。
  • clone方法由protected修饰,必须在子类中重写才能调用。
  • Cloneable接口:是一个标记性接口,如果没有实现接口,当前类的对象就不能克隆。

五、Objects

  • Objects是一个工具类,提供了一些方法去完成一些功能。
方法名返回类型说明
equals(Object a, Object b)boolean先做非空判断,再比较两个对象
isNull(Object obj)boolean判断对象是否为null,为null返回true
nonNull(Object obj)boolean判断对象是否为null,为null返回false

六、BigInteger

  • 表示大整型,对象一旦创建,内部记录的值不能发生改变。
  • 只要进行计算都会产生一个新的BigInteger对象。
  • 如果数字没有超出long的范围,用静态方法valueOf获取。
  • 如果数字超出了long的范围,用构造方法获取。

1. 构造方法(获取BigInteger)

方法名说明
BigInteger(int num, Random rnd)获取随机大整数,范围:[0~ 2 n u m 2^{num} 2num -1]
BigInteger(String val)获取指定的大整数(常用)
BigInteger(String val, int radix)获取指定进制的大整数
BigInteger.valueOf(long val)静态方法获取BigInteger对象,内部对-16~16有优化(常用)

2. 常用方法

方法名返回类型说明
add(BigInteger val)BigInteger加法
subtract(BigInteger val)BigInteger减法
multiply(BigInteger val)BigInteger乘法
divide(BigInteger val)BigInteger除法,获取商
divideAndRemainder(BigInteger val)BigInteger[]除法,获取商和余数
equals(Object x)boolean比较是否相同
pow(int exponent)BigInteger次幂
max/min(BigInteger val)BigInteger返回较大值/较小值
intValue(BigInteger val)int转为int数据类型,超出范围数据有误

七、BigDecimal

  • 表示很大的小数,用于小数的精确计算。

1. 构造方法(获取BigDecimal)

方法名说明
BigDecimal(String val)构造方法获取BigDecimal对象
BigDecimal.valueOf(double val)静态方法获取BigDecimal对象
  • 区别:
    1. 如果要表示的数字不大,使用静态方法
    2. 如果表示的数字超出了double取值范围,用构造方法
    3. valueOf 对 [0, 10] 之间的整数有优化,会返回创建好的对象,不会重新new

2. 常用方法

方法名返回类型说明
add(BigDecimal val)BigDecimal加法
subtract(BigDecimal val)BigDecimal减法
multiply(BigDecimal val)BigDecimal乘法
divide(BigDecimal val)BigDecimal除法
divide(BigDecimal val, 精确几位, 舍入模式)BigDecimal除法重写
  • 舍入模式一般使用四舍五入 RoundingMode.HALF_UP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机相关专业混体制的解决方案(考公务员)

文章目录序:编制介绍1、公务员报考要求2、公务员工作待遇3、公务员工作内容4、公务员报考复习序:编制介绍 编制介绍:编制,也就是常说的铁饭碗。 编制的诞生为了控制吃财政饭的人员数量无限膨胀而设置的,所以名额有限受…

密码学基本概念

密码学简介 密码是经过加密过后的口令,是指用特定的变换对数据信息进行加密保护或者安全身份认证的物质和技术,密码学是对安全通信技术的研究,要能够有效的防范潜在攻击,也就是对信息加密解密的过程。 密码基本性质 密码学的发展…

CSS3 选择器 :nth-child 与 :nth-of-type 区别

一、:nth-child 1.1 说明 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素&#xff0c;不论元素的类型。n 可以是数字、关键词或公式。 注意&#xff1a;如果第 N 个子元素与选择的元素类型不同则样式无效&#xff01; 1.2 示例 <style> div>p:nth-child(2…

1行Python代码识别身份证信息,还能自动告警,YYDS

大家好&#xff0c;这里是程序员晚枫。 录入身份证信息是一件繁琐的工作&#xff0c;如果可以自动识别并且录入系统&#xff0c;那可真是太好了。 今天我们就来学习一下&#xff0c;如何自动识别身份证信息并且录入系统~ 识别身份证信息 识别身份证信息的代码最简单&#x…

【金融量化】CTA策略之VeighNa量化实战笔记(1)

量化投资实战笔记 1 基本概念 1、一手股票&#xff1a;100支股票 2、收盘比开盘上涨的百分比&#xff1a;&#xff08;收盘-开盘&#xff09;/开盘 3、开盘比前日收盘的百分比&#xff1a;&#xff08;开盘-前日收盘&#xff09;/前日收盘 4、从dataframe中取每个月的第一天 …

Hgame-week 1(部分)

标题MISCSing InWhere am I神秘的海报e99p1ant_want_girlfriendWEDClassic Childhood Game改源码直接看jsBecome A MemberUser-Agent:Cookie:Referer:X-Forwarded-For:json请求方式登陆Guess Who I AmCRYPTO神秘的电话注意大小写REVERSEtest your IDAMISC Sing In aGdhbWV7V2…

【GPLT 二阶题目集】L2-027 名人堂与代金券

对于在中国大学MOOC&#xff08;http://www.icourse163.org/ &#xff09;学习“数据结构”课程的学生&#xff0c;想要获得一张合格证书&#xff0c;总评成绩必须达到 60 分及以上&#xff0c;并且有另加福利&#xff1a;总评分在 [G, 100] 区间内者&#xff0c;可以得到 50 元…

二十、Gtk4-GtkMenuButton, accelerators, font, pango and gsettings

本节将重新构造Tfe文本编辑器。 在工具栏上放置了打开、保存和关闭按钮。此外&#xff0c;GtkMenuButton被添加到工具栏中。当点击这个按钮时会显示一个弹出式菜单。在这里&#xff0c;弹出式的含义很广泛&#xff0c;包括下拉式菜单。新建、另存为、偏好和退出项目被放入菜单…

Java IO流之序列化流

序列化流/对象操作输出流 可以把Java中的对象写到本地文件中 序列化流的小细节 使用对象输出流将对象保存到文件时会出现NotSerializableException\color{#FF0000}{NotSerializableException}NotSerializableException 异常 解决方案&#xff1a;需要让JavaBean类实现Serializa…

【树】二叉树递归遍历和创建

二叉树的遍历二叉树的遍历是将二叉树的每个结点访问且访问一次遍历按根来说常用三种设访问根结点记作V&#xff0c;遍历根的左子树记作L&#xff0c;遍历根的右子树记作R&#xff1b;有&#xff1a;先序遍历VLR&#xff0c;中序遍历LVR&#xff0c;后序遍历LRV。这个遍历是递归…

设计模式 - 六大设计原则之ISP(接口隔离原则)

文章目录概述CaseBad ImplBetter Impl概述 接口隔离原则&#xff08;Interface Segregation Principle, ISP&#xff09;,要求尽量将臃肿庞大的接口拆分成更小的和更具体的接口&#xff0c;让接口中只包含相关的方法。 接口隔离是为了高内聚、低耦合。 在实际的开发中&#x…

Altova MobileTogether 8.1

Altova MobileTogether 8.1 使用RecordsManager进行无代码开发的主要更新 可视化配置复杂条件的主要脚本扩展。 分层用户组。 客户端之间的UI兼容性模式 当开发人员希望应用程序在所有平台上看起来都一样&#xff0c;而不是使用每个平台的原生外观时&#xff0c;现在可以使用新…

蓝桥杯刷题016——最大子矩阵(尺取法+单调队列)

题目来源&#xff1a;最大子矩阵 - 蓝桥云课 (lanqiao.cn) 问题描述 小明有一个大小为 NM 的矩阵, 可以理解为一个 N 行 M 列的二维数组。 我们定义一个矩阵 m 的稳定度 f(m) 为f(m)max(m)−min(m), 其中 max(m) 表示矩阵 m 中的最大值, min(m) 表示矩阵 m 中的最小值。 现在小…

朴素贝叶斯分类

一、朴素贝叶斯法原理 1.基本原理 朴素贝叶斯法(Naive Bayes)是一种基础分类算法&#xff0c;它的核心是贝叶斯定理条件独立性假设。贝叶斯定理描述的是两个条件概率之间的关系&#xff0c;对两个事件A和B&#xff0c;由乘法法则易知(A∩B)P(A)P(B│A)P(B)P(A│B)(A∩B)P(A)P(…

离散数学与组合数学-06特殊的图

文章目录离散数学与组合数学-06特殊的图6.1 欧拉图6.1.1 哥尼斯堡七桥问题6.1.2 欧拉图的定义6.1.3 无向欧拉图的判定6.1.4 有向欧拉图的判定6.1.5 一笔画问题6.1.6 求回路6.2 哈密顿图6.2.1 周游世界问题6.2.2 哈密顿图的定义6.2.3 哈密顿图的必要条件6.2.4 哈密顿图的充分条件…

Hadoop基础之《(5)—MapReduce概述》

一、什么是MapReduce MapReduce将计算过程分为两个阶段&#xff1a;Map和Reduce。 1、Map阶段并行处理输入数据。 2、Reduce阶段对map结果进行汇总。 二、结构图 三、HDFS、Yarn、MapReduce三者之间的调用关系 HDFS三台服务器&#xff0c;第一台上有DataNode和NameNode。第二…

如何像程序员一样思考

如何像程序员一样思考 全世界越来越多的人发现了软件开发的乐趣和兴奋。一个你构建东西的职业&#xff0c;去打破它们&#xff0c;然后再把它们构建得更好。您可以经常设定自己的工作时间并与来自全球各地的客户一起工作的职业。一个可以自己当老板的职业&#xff1f;编程在 2…

android12.0(S) Launcher3 导入 AndroidStudio 调试编译

验证环境 aosp 12.0 源码&#xff0c;分支 android-12.0.0_r3 可以参考之前写的 android12.0(S) Pixel 3XL (QCOM 845) 编译刷机 AndroidStudio 版本 Android Studio Arctic Fox | 2020.3.1 Patch 4 gradle 版本 gradle-7.0.2-bin.zip gradle:7.0.4 二手 Pixel 3 XL一台可直…

[WUSTCTF2020]颜值成绩查询(布尔注入)

目录 信息收集 脚本 reference 信息收集 输入1出现固定的回显&#xff0c;输入2-4出现乱码 Hi admin, your score is: 100 输入其他特殊字符无回显&#xff0c;也无报错回显 采用布尔注入进行判断 布尔注入原理 代码存在SQL注入漏洞&#xff0c;然而页面即不会回显数据&am…

【C++算法图解专栏】一篇文章带你掌握尺取法(双指针)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为 0 基础刚入门数据结构与算法的小伙伴提供详细的讲解&#xff0c;也欢迎大佬们一起交流~ &#x1f4da;专栏地址&#xff1a;https://blog.csdn.net/Newin…