JavaAPI(1)

Java的API(1)

一、Math的API

  • 是一个帮助我们进行数学计算的工具类
  • 私有化构造方法,所有的方法都是静态的(可以直接通过类名.调用)

在这里插入图片描述

  • 平方根:Math.sqrt()
  • 立方根:Math.cbrt()

示例

public class MathDemo1 {public static void main(String[] args) {// Math类在Java的lang包中,所以不需要引入// 且都是静态方法,可以直接通过类名.直接调用// 绝对值System.out.println(Math.abs(-123.456)); // 123.456System.out.println(Math.abs(-156));      // 156// 向上取整(只要小数有值就会向整数上进)(往数轴的正方向进一)System.out.println(Math.ceil(123.3));    // 124.0System.out.println(Math.ceil(123.9));    // 124.0System.out.println(Math.ceil(-12.34));   // -12.0// 向下取整(小数的值直接舍弃)(往数轴的负方向减一)System.out.println(Math.floor(0.3));     // 0.0System.out.println(Math.floor(0.9));     // 0.0System.out.println(Math.floor(5.999999)); // 5.0System.out.println(Math.floor(-12.34));  // -13.0// 四舍五入(满五向整数位进一)(向数轴的两端进一)System.out.println(Math.round(5.363));   // 5System.out.println(Math.round(5.5));     // 6System.out.println(Math.round(5.6666));  // 6System.out.println(Math.round(-12.33));  // -12System.out.println(Math.round(-12.56));  // -13// 获取两个int值中的较大值(当两个不同数据类型的变量进行比较时,会转化成精确度大的一方,再进行比较)System.out.println(Math.max(3, 100000)); // 100000System.out.println(Math.max(2, 3.0));    // 3.0System.out.println(Math.max(3.14, 9));    // 9.0// 次幂(a的b次幂),返回值和参数值都是double类型System.out.println(Math.pow(3, 2));      // 9.0System.out.println((int)Math.pow(2, 4)); // 16// 返回double类型的随机数,范围是 [0.0, 1.0)System.out.println(Math.random());        // 0.123456 (示例输出,实际输出会随机)// 开平方根System.out.println(Math.sqrt(4));        // 2.0// 开立方根System.out.println(Math.cbrt(8));        // 2.0}
}

二、System的API

  • System也是一个工具类,提供一些与系统相关的方法

1、exit终止虚拟机

  • public static void exit(int status)——终止当前运行的JAVA虚拟机
        // 终止当前的虚拟机// 方法形参的状态码:// 0——表示当前虚拟机是正常停止// 非0——表示当前虚拟机是异常停止System.exit(0);System.out.println("看看我执行了吗"); // 程序已经结束,不会再执行

2、currentTimeMillis()nanoTime()返回当前系统时间

  • public static long currentTimeMillis()——返回当前系统的时间毫秒和纳秒值
// 返回当前系统的时间毫秒值形式(表示从计算机的时间原点:C语言的生日1970.1.1.08:00:00(国内),当程序运行的时间)long l = System.currentTimeMillis();System.out.println(l);
  • 该方法可以用来获取程序运行的总时间(分析对比时间复杂度)

示例:(对比两种方法判断质数的时间)

		int o = 9489997;// 示例:(判断质数的两种时间复杂度)
//        long c = System.currentTimeMillis();long c = System.nanoTime();for (int i = 2; i < o; i++) {if(o % i == 0) {System.out.println("该数不是质数");break;}}
//        long a = System.currentTimeMillis();long a = System.nanoTime();// 一个非质数,会在该数的平方根前面会出现可以被整除的数(以此可以来提高效率)for (int i = 2; i < Math.sqrt(o); i++) {if(o % i == 0) {System.out.println("该数不是质数");break;}}
//        long b = System.currentTimeMillis();long b = System.nanoTime();System.out.println("第一种方法时间为:" + (a - c) + "纳秒");	// 输出: 第一种方法时间为:23300纳秒System.out.println("第二种方法时间为:" + (b - a) + "纳秒");	// 输出: 第二种方法时间为:19900纳秒

3、arraycopy()进行数组的拷贝

  • public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)——数组拷贝
// 拷贝数组int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int[] arr2 = new int[10];// 把arr1数组中的数据拷贝到arr2数组中// 参数一: 数据源,要拷贝的数据从哪个数组而来// 参数二: 从数据源数组中的第几个索引开始拷贝// 参数三: 拷贝的目的地,要拷贝到哪个数组// 参数四: 目的地数组的起始索引// 参数五: 拷贝的个数
//        System.arraycopy(arr1, 0, arr2, 0, 10);System.arraycopy(arr1, 0, arr2, 4, 3);for (int i = 0; i < arr2.length; i++) {System.out.print(arr2[i] + " ");	// 输出: 0 0 0 0 1 2 3 0 0 0}

数组拷贝的注意事项

  1. 如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错
  2. 在拷贝的时候需要考虑数组的长度,如果超出范围就会报错
  3. 如果数组源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型(若要再次使用则需要强转)

示例

public class SystemDemo2 {public static void main(String[] args) {Student s1 = new Student("小明", 20);Student s2 = new Student("小资", 21);Student s3 = new Student("小兰", 22);Student[] arr1 = {s1, s2, s3};Person[] arr2 = new Person[3];// 把arr1中的对象的地址赋值给arr2中System.arraycopy(arr1, 0, arr2, 0, 3);// 遍历数组arr2for (int i = 0; i < arr2.length; i++) {Student stu = (Student)arr2[i];System.out.println(stu.getName() + ", " + stu.getAge());}}
}class Person {private String name;private int age;public  Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}class Student extends Person {public Student() {}public Student(String name, int age) {super(name, age);}
}

三、Runtime的API

  • Runtime表示当前虚拟机的运行环境

在这里插入图片描述

示例

public class RuntimeDemo1 {public static void main(String[] args) throws IOException {// 1、获取Runtime的对象Runtime r1 = Runtime.getRuntime();// 2、虚拟机的终止// 0————正常终止虚拟机// 非0值————异常终止虚拟机
//        Runtime.getRuntime().exit(0);
//        System.out.println("看看我执行了吗");   // 不会执行// 3、获取CPU的线程数System.out.println(Runtime.getRuntime().availableProcessors());     // 4、获取总内存的大小,单位byte字节System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);     // 5、已经占用的内存的大小,单位byte字节System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);// 6、剩余的内存的大小,单位byte字节System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);// 7、运行cmd命令// 打开记事本Runtime.getRuntime().exec("notepad");// shutdown:关机// 加上参数才能执行// -s : 默认在1分钟之后关机// -s -t 指定时间 : 指定关机时间// -a : 取消关系操作// -r : 关闭并重启
//        Runtime.getRuntime().exec("shutdown -s -t 36000");Runtime.getRuntime().exec("shutdown -a");}
}

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

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

相关文章

UI界面设计入门:打造卓越用户体验

互联网的迅猛发展催生了众多相关职业&#xff0c;其中UI界面设计师成为互联网行业的关键角色之一。UI界面设计无处不在&#xff0c;影响着网站、应用程序以及其他数字平台上的按钮、菜单布局、色彩搭配和字体排版等。UI设计不仅仅是字体、色彩和导航栏的组合&#xff0c;它的意…

python查询日志,并组装sql,修复缺失的数据

前言 由于mysql链接超时波动&#xff0c;导致数据缺失&#xff0c;需要根据日志填补数据 流程 获取确实数据的订单列表 搜索日志&#xff0c;获取请求日志 根据请求日志拼装sql 打印sql供修复数据 代码 因为我们日志打印的有问题&#xff0c;所以这里用字符串截取获取入…

利用Stable Diffusion技术,StableVision能够自动生成高质量、高分辨率的图像,满足用户对于图像素材的多样化需求。

1.产品介绍 产品介绍方案 产品名称: StableVision 图像管理分析系统 主要功能: 高精度图像生成智能分类与检索多维度数据分析定制化模板与导出功能介绍: 高精度图像生成: 具体作用:利用Stable Diffusion技术,StableVision能够自动生成高质量、高分辨率的图像,满足用户…

用户信息管理系统烟草种植用户基于SpringBootSSM框架

目录 一. 系统目标 二 需求分析 2.1 功能描述 2.1.1 用户管理 2.1.2 管理员功能 2.1.3 角色与权限管理 2.1.4 详细功能描述 2.1.5安全与权限控制功能 2.1.6系统维护与扩展功能 2.2. 非功能需求 2.3用户角色 2.4技术描述 三、数据库设计 3.1数据库需求分析 3.2数…

std::back_inserter

std::back_inserter 是 C 标准库中的一个函数模板&#xff0c;它用于创建一个插入迭代器&#xff08;insert iterator&#xff09;&#xff0c;这个迭代器可以在容器末尾插入新元素。它定义在 <iterator> 头文件中。 函数原型 template <typename Container> bac…

在 Mac 和 Windows 系统中快速部署 OceanBase

OceanBase 是一款分布式数据库&#xff0c;具备出色的性能和高扩展性&#xff0c;可以为企业用户构建稳定可靠、灵活扩展性能的数据库服务。本文以开发者们普遍熟悉的Windows 或 Mac 环境为例&#xff0c;介绍如何快速上手并体验OceanBase。 一、环境准备 1. 硬件准备 OceanB…

如何有效销售和应用低代码软件?探索其市场机会与策略

随着技术的进步&#xff0c;企业对自动化和数字化的需求日益增加。低代码开发平台应运而生&#xff0c;成为企业实现快速应用程序开发的重要工具。然而&#xff0c;在市场上推广和应用低代码软件并非易事&#xff0c;需要深入了解客户需求&#xff0c;提供定制化的解决方案&…

Docker启动gitlab后22端口被占用如何解决

文章目录 前言Docker启动参数解决方案总结 前言 这两天一直在研究Docker启动gitlab的问题&#xff0c;邮件问题暂时告一段落&#xff0c;当真正开始使用gitlab克隆的时候发现&#xff0c;之前22端口被占用无法启动&#xff0c;我就用2022端口做了一个映射&#xff0c;但是在gi…

【如何使用 ADB 脚本批量停止 Android 设备上的所有应用】

在 Android 开发和测试中,有时候我们需要批量停止设备上的所有应用进程。为此,我们可以使用一个简单的 ADB 脚本来自动完成这一任务。本文将介绍如何编写和使用这个脚本。 脚本介绍 下面的脚本通过 ADB 命令来列出并停止所有正在运行的 Android 应用进程。无需指定设备时,默…

在函数内部定义函数

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 在函数内部定义函数 在以下代码片段中&#xff0c;输出的结果是什么&#xff1f; def outer_function(x): def inner_function(y): return x y return inner_function add_five outer_func…

Go语言的接口示例

Go语言的接口(interface)是一种轻量级的多态性实现方式,是构建高扩展性、高复用性代码的利器。Go语言的接口非常灵活,不要求显式的实现声明,只要一个类型实现了接口规定的方法,它就可以被视为该接口的实现者。在本篇博客中,我们将通过多个实际示例,探讨Go语言接口的使用…

ffmpeg命令

1. 修改视频的数据速率 ffmpeg.exe -i video.mp4 -r 30 -c:v libx264 -b:v 1500k output.mp42. mp4与h264互相转换 ffmpeg.exe -i a.mp4 -vcodec h264 output.h264 ffmpeg.exe -i output.h264 -vcodec mpeg4 output.mp4

图论基础--孤岛系列

孤岛系列有&#xff1a; 孤岛总面积求解&#xff08;用了dfs、bfs两种方法&#xff09;和沉没孤岛&#xff08;这里只写了dfs一种&#xff09; 简单解释一下&#xff1a; 题目中孤岛的定义是与边缘没有任何接触的&#xff08;也就是不和二维数组的最外圈连接&#xff09;&…

LabVIEW气体检测系统

随着工业化进程的加速&#xff0c;环境污染问题愈加严峻&#xff0c;尤其是有害气体的排放对人类生存环境构成了严重威胁。为了更好地监测这些有害气体&#xff0c;开发一个高效、准确且易于操作的气体检测系统显得尤为重要。LabVIEW软件开发的气体检测系统&#xff0c;采用激光…

【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作

目录 一、安装Zookeeper 二、配置Zookeeper集群 三、Zookeeper服务的启动与关闭 四、Zookeeper的shell操作 前情提要&#xff1a;延续上篇【Hadoop和Hbase集群配置】继续配置Zookeeper&#xff0c;开启三台虚拟机Hadoop1、Hadoop2、Hadoop3&#xff0c;进入终端&#xff0c…

Shell 脚本中变量和字符串的入门介绍

以下是关于 Shell 脚本中变量和字符串的入门介绍&#xff1a; 变量 定义变量 在 Shell 脚本中&#xff0c;定义变量不需要指定类型。变量名一般以字母或下划线开头&#xff0c;不能以数字开头。例如&#xff1a; name"John" age25这里定义了两个变量 name 和 age&…

Golang | Leetcode Golang题解之第547题身份数量

题目&#xff1a; 题解&#xff1a; func findCircleNum(isConnected [][]int) (ans int) {n : len(isConnected)parent : make([]int, n)for i : range parent {parent[i] i}var find func(int) intfind func(x int) int {if parent[x] ! x {parent[x] find(parent[x])}re…

Leetcode 778 Swim in a Rising water

题是指什么时候你能从左上角游到右下角。第t分钟的时候&#xff0c;水的高度是t。grid[i][j]是海拔&#xff0c;只有当前水的高度没过海拔&#xff0c;我才能游。你可以往四个方向游泳。求问&#xff0c;最少第几分钟我能从左上角游到右下角&#xff08;有一条路径&#xff09;…

Ardusub中添加自定义控制器

1.建议保留原程序 复制ardupilot文件夹到当前目录&#xff0c;命名为ardupilot_ARDC cp -r ardupilot ardupilot_copy2.切换Sub-4.5版本 Sub-4.1版本libraries里没有AC_CustomControl文件夹&#xff0c;我们需要用到这个文件夹所以需要进行切换分支&#xff0c;在当前ardupi…

ReactPress:重塑内容管理的未来

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;欢迎一起共建&#xff0c;感谢Star。 ReactPress&#xff1a;重塑内容管理的未来 在当今信息爆炸的时代&#xff0c;一个高效、易用的内容管理系统&#xff0…