Java基础10:常用API(上)

news2024/11/14 17:12:46

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/182194.html

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

相关文章

2023年房地产地段研究报告

房地产的投资业务中,选择一个好的地段,或者说区位,是十分重要的。在房地产行业,房价中包含地价,而房价上升的主要原因则是地价的上升。当房屋所处的地段深受消费者青睐、该地段的房屋供不应求时,房屋的价格…

Minecraft 1.19.2 Fabric模组开发 08.3D动画盔甲

我们本次在Fabric 1.19.2中实现具有动画效果的3D盔甲 效果演示效果演示效果演示 1.首先,为了实现这些效果,我们需要首先使用到一个模组:geckolib(下载地址) 找到项目的build.gradle文件,在repositories和dependencies中添加依赖。 reposit…

python+django校园大学生兼职系统vue357

目 录 摘 要 I Abstracts II 目 录 III 第1章 绪论 1 1.1课题背景 1 1.2研究意义 1 1.3研究内容 2 第2章 技术介绍 1 第3章 需求分析 4 3.1需求分析概述 4 3.2可行性分析 4 3.2.1经济可行性 5 3.2.2技术可行性 5 3.3系统功能设计 …

Target 塔吉特DVS EDI 业务测试指南

Target塔吉特是美国仅次于Walmart沃尔玛的第二大巨型折扣零售百货集团,由于拓展了其数字化履约能力,使得越来越多的国内零售产品供应商和Target建立合作关系。Target要求其供应商通过EDI(Electronic Data Interchange,中文名称是电…

基于蜣螂算法改进的随机森林回归算法 - 附代码

基于蜣螂算法改进的随机森林回归算法 - 附代码 文章目录基于蜣螂算法改进的随机森林回归算法 - 附代码1.数据集2.RF模型3.基于蜣螂算法优化的RF4.测试结果5.Matlab代码6.Python代码摘要:为了提高随机森林数据的回归预测准确率,对随机森林中的树木个数和最…

来看看这些电脑清理内存的方法

随着电脑使用时间的增加,你有没有发现电脑用得越多反应越慢?如果你遇到这个问题,可以试试这几个优化设置,让你的电脑速度起死回生! 方法一:删除临时文件 按键盘上的Win R,在对话框中输入【%temp…

96. 不同的二叉搜索树

96. 不同的二叉搜索树题目算法设计:枚举算法设计:动态规划题目 传送门:https://leetcode.cn/problems/unique-binary-search-trees/ 算法设计:枚举 当 n 5,用 {1、2、3、4、5} BST数是多少组? 有 5 种情…

如何在 macOS 上安装虚拟机软件 VMware Fusion Player (个人版免费)

文章目录IntroVMware 网站注册事宜安装在 VMware Fusion 中创建虚拟机准备 iso 文件VMware Fusion 主界面Intro VMware 网站注册事宜 需要一个邮箱地址,先注册登陆 VMware。 然后在之后某个页面再次 register ,就是随意填写一些字段:所在公…

记录晖哥程序员职业规划一次授课笔记

发现 发明 道 普通知识、特殊知识 形而上学,为道,职场规律 形而下学,为气,python、go 万物生于有,而有生于无! 在职场中做无中生有的事。 利他精神 利他即利己 天予弗取反受其咎&#…

mathtype2023专门打数学符号的软件

mathtype是数学公式编辑器,与常见的文字处理软件及演示程序配合使用,能够在各种文档中加入复杂的数学公式及符号,可用在编辑数学的试卷、书籍、报刊、论文、幻灯演示等方面,mathtype2023版是编辑数学资料工具! 在这款软件中主要帮…

JavaScript基础(18)_Date对象、Math对象

Date对象 Date(日期对象)是一个构造函数,必须使用new来调用创建日期对象 1、创建一个Date对象,如果直接使用构造函数创建一个Date对象,则会封装为当前代码"执行的时间"。 var d new Date(); console.log(d); 2、创建一个指定的时间对象&am…

【C++修炼之路】14.模板进阶

每一个不曾起舞的日子都是对生命的辜负 模板进阶模板进阶一. 非类型模板参数1.1 引出场景1.2 非类型模板参数1.3 其他例子二.array类2.1 array类的介绍2.2 array的价值三.模板的特化3.1 概念3.2 函数模板的特化3.3 类模板的特化3.3.1 全特化3.3.2 偏特化四.模板分离编译4.1 什么…

人事管理系统

人才是单位的宝贵财富,而人事管理是人才资源的核心,因此快捷、高效的人事档案理系统成为单位的基本需求。 系统的主要目的是实现企业人事的信息化管理,主要业务是实现对员工信息的管理。 一、功能需求分析 人事管理系统主要是对人事档案管理…

MDK配色方案更改

文章目录WIN10更改护眼背景MDK软件配色方案更改设置常用关键字参考WIN10更改护眼背景 按windowsR快捷键,,打开运行,在弹出来的输入框中写上regedit,点确定或回车: 在打开的注册表编辑器中,找到目录&#…

C语言变量的作用域

所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在所有代码文件中使用,有些变量只能在当前的文件中使用,有些变量只能在函数内部使用,有些变量只能在 for …

文献阅读笔记 # Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》 用于快速搭建NLP任务的demo的开源项目sbert的原始论文,star数很多,ACL 2019。资源: pdf | code | doc本文文献完成于 2019 年,因此仅代表当时的数据。相关工作&#xff…

人工智能医学影像行业背景,智能医疗的发展背景

1、人工智能未来的发展前景怎么样? 人工智能医疗行业主要公司:目前国内人工智能医疗行业代表性公司主要有:乐普医疗(300003)、鹰瞳科技(2251.HK)、心玮医疗(06609.HK)、美因基因(IPO中)、推想医疗科技(IPO中)等 本文核心数据:人…

Python爬虫(2)-Selenium控制浏览器

Selenium中提供了不少的方法来操作浏览器 Selenium控制浏览器1.打开浏览器2.打开浏览器后可以控制浏览器前进和后退就使用3.浏览器刷新4.浏览器切换网页窗口5.关闭页面和退出浏览器6.设置窗口大小7.获取窗口位置8.最大化窗口9.最小化窗口11.无窗口运行10.全屏11.屏幕截图12.元素…

opencv函数cv2.warpAffine 和 cv2.warpPerspective 的理解和复现

文章目录opencv函数cv2.warpAffine 和 cv2.warpPerspective 的理解和复现1. warpAffine 函数处理仿射变换2. warp_perspective3, 实验opencv函数cv2.warpAffine 和 cv2.warpPerspective 的理解和复现 1. warpAffine 函数处理仿射变换 仿射矩阵是2 * 3的矩阵。 首…

(深度学习快速入门)第三章第三节5:深度学习必备组件之欠拟合和过拟合

文章目录一:什么是欠拟合和过拟合二:正则化技术(1)加入正则项①:L1正则项②:L2正则项(2)Dropout(暂退法)我们训练模型的目的是为了让模型真正发现一种泛化模式…