03_使用API_系统与数学工具

数学工具

Math
  • 代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法
public class Test {public static void main(String[] args) {// 1. Math.abs() : 取绝对值System.out.println(Math.abs(-3.14));  // >>> 3.14// 2. Math.ceil() : 向上取整System.out.println(Math.ceil(4.000001));  // >>> 5.0System.out.println(Math.ceil(4.0));  // >>> 4.0// 3. Math.floor() : 向下取整System.out.println(Math.floor(4.999999));  // >>> 4.0System.out.println(Math.ceil(4.0));  // >>> 4.0// 4. Math.round() : 四舍五入System.out.println(Math.round(3.4999));  // >>> 3System.out.println(Math.round(3.5001));  // >>> 4// 5. Math.max() : 取较大//    Math.min() : 取较小System.out.println(Math.max(10, 20));  // >>> 20System.out.println(Math.min(10, 20));  // >>> 10// 6. Math.pow() : 次方运算System.out.println(Math.pow(2, 3));  // 2的3次方 >>> 8.0System.out.println(Math.pow(3, 2));  // 3的2次方 >>> 9.0// 7. Math.random() : 从0~1中取随机数,[ 0.0 , 1.0 )System.out.println(Math.random());  // >>> 0.6582009378991727}
}
BigDecimal
  • 用于解决浮点型运算时,出现结果失真的问题
import java.math.BigDecimal;
import java.math.RoundingMode;public class Test {public static void main(String[] args) {// double型运算时候,可能会出现失真的问题,如下double a = 0.1;double b = 0.2;System.out.println(a + b);  // >>> 0.30000000000000004// 解决办法// 1.1 先把它们变成字符串,然后交给 BigDecimal 封装成对象进行运算
//      BigDecimal objA =  new BigDecimal(Double.toString(a));
//      BigDecimal objB =  new BigDecimal(Double.toString(b));// 1.2 快速方法 (推荐以下方式)BigDecimal objA = BigDecimal.valueOf(a);BigDecimal objB = BigDecimal.valueOf(b);// 2. 加法BigDecimal objC = objA.add(objB);System.out.println(objC);  // >>> 0.3// 3. 减法BigDecimal objD = objA.subtract(objB);System.out.println(objD);  // >>> -0.1// 4. 乘法BigDecimal objE = objA.multiply(objB);System.out.println(objE);  // >>> 0.02// 5. 除法(注意!除法比较特殊,例如1/3这些数是除不尽的,所以必须要指定精度2,以及舍入模式)BigDecimal objF = objA.divide(objB, 2, RoundingMode.HALF_DOWN);  // 精度2位,模式为"四舍五入"System.out.println(objF);  // >>> 0.50// 6. 由于在开发中更常用的是 double 类型,所以还要将 BigDecimal 转回 double 类型double res = objF.doubleValue();System.out.println(res);  // >>> 0.50}
}

系统工具

System
  • System 代表程序所在的系统,也是一个工具类
public class Test {public static void main(String[] args) {// 1. 终止当前运行的 Java 虚拟机 : System.exit()// 该参数用作状态码; 按照管理,非零状态码表示异常终止
//      System.exit(0);  // 人为的终止就输入一个 0  (此代码尽量不要使用)// 2. 获取系统当前时间 : System.currentTimeMillis()// 返回的是long类型的时间毫秒值,指的是从1970-1-1,0:0:0开始到此刻的总的毫秒值,1s = 1000mslong time = System.currentTimeMillis();System.out.println(time);}
}
Runtime
  • 代表程序所在的运行环境
  • Runtime 是一个单例类
import java.io.IOException;public class Test {public static void main(String[] args) throws IOException, InterruptedException {// 1. 返回与当前 Java 应用程序关联的运行时对象Runtime r = Runtime.getRuntime();// 2. 终止当前运行的虚拟机,该参数用作状态码;按照惯例,非零状态码表示异常终止
//      r.exit(0);// 3. 获取虚拟机能够使用的处理器数System.out.println(r.availableProcessors());  // >>> 16// 4. 返回 Java 虚拟机中的可用内存量System.out.println(r.totalMemory() / 1024.0 / 1024.0 + "MB");  // 1024 = 1K >>> 252.0MB// 5. 返回 Java 虚拟机中的可用内存量System.out.println(r.freeMemory() / 1024.0 / 1024.0 + "MB");  // >>> 248.23760986328125MB// 6. 启动某个程序,并返回代表该程序的对象Process obj = r.exec("E:\\mine\\run.exe");  // 输入"程序"的绝对路径Thread.sleep(5000);  // 让程序在此暂停5秒obj.destroy();  // 关闭程序}
}

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

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

相关文章

Centos7使用rpm安装mysql 5.7.43

Centos7使用rpm安装mysql 5.7.43 1、下载rpm包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar2、解压并安装 tar xf mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar yum -y install mysql-*3、按需修改mysql配置 #注意&a…

Django框架环境的搭建(图文详解)

目录 day01 Web框架和Django基础 1.web框架底层 1.1 网络通信​编辑 1.2 常见软件架构 1.3 手撸web框架 2.web框架 2.1 wsgiref 2.2 werkzeug 2.3 各框架的区别 3.快速上手django框架 3.1 安装 3.2 命令行 3.3 Pycharm 4.虚拟环境 4.1 创建虚拟环境 - 命令行 4…

7.华为OD技术面手撕代码实录:判断ip地址

判断ip地址 编写一个函数来验证输入的字符串是否是有效的 Pv4Q 或IPv6 地址。IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0-255,用(“.”)分割。比如,172.16.254.1: 同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。IPv6…

页面添加水印效果实现

页面效果&#xff1a; 源代码&#xff1a; <div id"water-wrapper"></div> <div><div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div><div>1111111111111111111111111111111111…

电线电缆行业生产管理怎么数字化?

行业介绍 随着市场环境的变化和现代生产管理理念的不断更新&#xff0c;电缆的生产模式也在发生转变&#xff0c;批量小&#xff0c;规格多&#xff0c;交期短的新型制造需求逐年上升&#xff0c;所以企业车间管理的重要性越发凸显&#xff0c;作为企业良性运营的关键&#xf…

Python学习:常用数据结构

Python DataStructure 一、数组(array)二、双向链表(linkedlist)三、栈(stack)四、队列(queue)五、Python中的可变与不可变类型 一、数组(array) class array:def __init__(self, capacity: int):self._data []self._capacity capacitydef __getitem__(self, position: int)…

2023 年 亚太赛 APMCM (A题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 完整内容可以在文章末尾领取&#xff01; 问题1 图像处理&am…

硬核神作|2w字带你拿下Sentinal

目录 Sentinel概述 基本介绍 Sentinel 基本核心概念 Sentinel安装 简单安装启动 启动配置项 SpringCloud简单整合 实战架构 父工程pom文件 teacher-service服务 student-service服务 测试 整合Sentinel SpringCloud微服务保护方案解读 服务雪崩定义 问题的产生 …

AIGC重塑教育:AI大模型驱动的教育变革与实践

这次&#xff0c;狼真的来了。 AI正迅猛地改变着我们的生活。 根据高盛发布的一份报告&#xff0c;AI有可能取代3亿个全职工作岗位&#xff0c;影响全球18%的工作岗位。在欧美&#xff0c;或许四分之一的工作可以用AI完成。另一份Statista的报告预测&#xff0c;仅2023年&#…

字节码指令分类

字节码指令大致分为九类&#xff1a; 一&#xff1a;加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传输 二&#xff1a;算术指令用于对两个操作数栈上的值进行某种特定运算&#xff0c;并把结果重新存入到操作栈顶。运算指令可以分为两种&#xff1a;对整…

VivadoAndTcl: eval

用于拼接执行多个命令。后面可以接一个或者多个参数&#xff0c;如果是一个参数&#xff0c;则把这个参数当做命令来执行&#xff0c;如果是多个参数&#xff0c;则将多个参数用concat命令连接起来后再执行。 举例如下&#xff1a; # 一个参数的情况 set do {set var0 {hello…

【Linux】make/Makefile 进度条小程序

目录 一&#xff0c;认识 make/makefile 二&#xff0c;实例代码 1&#xff0c;依赖关系 2&#xff0c;原理 3&#xff0c;项目清理 4&#xff0c;测试讲解 三&#xff0c;Linux第一个小程序&#xff0d;进度条 game.h game.c test.c 程序详解 一&#xff0c;认识 m…

教你如何将Web项目部署到Linux中

文章目录 前言0. 什么是部署1. 调整代码达成一致2. 数据库建表3. 构建项目并打包4. 拷贝到 Tomcat 中5. 效果总结 前言 在我们完成了一个Web项目后, 我们该怎样将项目部署到 Linux 系统中呢? 本文就来简单讲解一下. 文章已部署本人的博客系统代码展开讲解. 关注收藏, 开始学…

NeurIPS 2023 | RGIB:对抗双边图噪声的鲁棒图学习

▐ 摘要 链接预测[1,2]是图学习的一种基础任务&#xff0c;用于判断图中的两个节点是否可能相连&#xff0c;被广泛应用于药物发现、知识图谱补全和在线问答等实际场景。尽管图神经网络&#xff08;Graph Neural Network&#xff0c;GNN&#xff09;在该问题的性能上取得了显著…

机器学习的概念和类型

1、人工智能、机器学习、深度学习之间的关系 人工智能&#xff08;AI&#xff09;是广泛的概念&#xff0c;指赋予计算机智能特性。机器学习&#xff08;ML&#xff09;是AI的一个分支&#xff0c;是指通过计算机学习和改进性能。深度学习&#xff08;DL&#xff09;是ML的一类…

搭个网页应用,让ChatGPT帮我写SQL

大家好&#xff0c;我是凌览。 开门见山&#xff0c;我搭了一个网页应用名字叫sql-translate。访问链接挂在我的个人博客(https://linglan01.cn/about)导航栏&#xff0c;也可以访问https://www.linglan01.cn/c/sql-translate/直达sql-translate。 它的主要功能有&#xff1a;…

第95步 深度学习图像目标检测:Faster R-CNN建模

基于WIN10的64位系统演示 一、写在前面 本期开始&#xff0c;我们学习深度学习图像目标检测系列。 深度学习图像目标检测是计算机视觉领域的一个重要子领域&#xff0c;它的核心目标是利用深度学习模型来识别并定位图像中的特定目标。这些目标可以是物体、人、动物或其他可识…

Docker Swarm总结(1/3)

目录 1、swarm 理论基础 1.1 简介 1.2 节点架构 1.3 服务架构 1.4 服务部署模式 2、swarm 集群搭建 2.1 需求 ​2.2 克隆主机 2.3 启动5个docker宿主机 2.4 查看 swarm 激活状态 2.5 关闭防火墙 2.6 swarm 初始化 2.7 添加 worker 节点 2.8 添加 manager 节点 3、…

Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑

码字不易&#xff0c;如果对您有用&#xff0c;求各位看官点赞关注~ 原创/朱季谦 目前的Mybatis-Plus版本是3.0&#xff0c;至于最新版本是否已经没有这个问题&#xff0c;后续再考虑研究。 某天检查一位离职同事写的代码&#xff0c;发现其对应表虽然设置了AUTO_INCREMENT自…

7.1 Windows驱动开发:内核监控进程与线程回调

在前面的文章中LyShark一直在重复的实现对系统底层模块的枚举&#xff0c;今天我们将展开一个新的话题&#xff0c;内核监控&#xff0c;我们以监控进程线程创建为例&#xff0c;在Win10系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现&#xff0c;此类函数的原…