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.rhkb.cn/news/466570.html

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

相关文章

【362】基于springboot的在线租房和招聘平台

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统在线租房和招聘平台信息管理难度大&#xff0c;容错率低&…

华为HCIP —— QinQ技术实验配置

一、QinQ的概述 1.1QinQ的概念 QinQ&#xff08;802.1Q in 802.1Q&#xff09;技术是一项扩展VLAN空间的技术&#xff0c;通过在原有的802.1Q报文基础上再增加一层802.1Q的Tag来实现。 1.2QinQ封装结构 QinQ封装报文是在无标签的以太网数据帧的源MAC地址字段后面加上两个VL…

【数据集】【YOLO】【目标检测】抽烟识别数据集 6953 张,YOLO/VOC格式标注,吸烟检测!

数据集介绍 【数据集】抽烟识别数据集 6953 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。数据集中包含1种分类&#xff1a;“smoking”。数据集来自国内外图片网站和视频截图。检测范围园区吸烟检测、禁烟区吸烟检测、监控吸烟检测、无人机吸烟检测等。 主页私…

赛元MCU 脱机烧录步骤

烧录设置 生成烧录配置文件 载入配置文件 下载程序到烧录器中 并 对比 脱机烧录 1、 将SC-LINK 使用外部5V电源供电 2、将烧录口对准主板烧录接口 3、busy亮红灯&#xff0c;进入烧录ing&#xff0c;烧录成功后&#xff0c;OK灯亮蓝灯 注意事项 其中工程校验和 可以作为程序…

leetcode字符串(二)-重复的子字符串

题目 459.重复的子字符串 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。示例 2: 输入: s "aba" 输出: false示例 3: 输入: …

langchain 4大组件 | AI应用开发

在人工智能的浪潮中&#xff0c;大型语言模型&#xff08;LLM&#xff09;逐渐成为推动科技进步的重要力量。而LangChain&#xff0c;作为一个专为LLM应用开发设计的框架&#xff0c;凭借其模块化和高效性&#xff0c;受到了广泛关注。本文将深入浅出地讲解LangChain中的四个基…

TensorFlow|咖啡豆识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 &#x1f37a; 要求&#xff1a; 自己搭建VGG-16网络框架调用官方的VGG-16网络框架 &#x1f37b; 拔高&#xff08;可选&#xff09;&#xff1a; 验证集准…

Jmeter5.X性能测试

Jmeter5.X性能测试 文章目录 Jmeter5.X性能测试一、掌握Http基础协议1.1 浏览器的B/S架构和C/S架构1.2 HyperText Transfer Protocol 超文本传输协议1.3 超文本传输协议Http消息体拆分讲解1.4 HTTP的九种请求方法和响应码介绍1.5 Http请求头/响应头1.6 Http常见请求/响应头cont…

信息安全工程师(81)网络安全测评质量管理与标准

一、网络安全测评质量管理 遵循标准和流程 网络安全测评应严格遵循国家相关标准和流程&#xff0c;确保测评工作的规范性和一致性。这些标准和流程通常包括测评方法、测评步骤、测评指标等&#xff0c;为测评工作提供明确的指导和依据。 选择合格的测评团队 测评团队应具备相关…

AI - 人工智能;Ollama大模型工具;Java之SpringAI(三)

AI - 人工智能&#xff1b;Java之SpringAI&#xff08;一&#xff09; AI - 人工智能&#xff1b;Java之SpringAI&#xff08;二&#xff09; 一、Ollama 官网&#xff1a;https://ollama.com/ Ollama是一个大模型部署运行工具&#xff0c;在该工具里面可以部署运行各种大模型…

力扣—不同路径(路径问题的动态规划)

文章目录 题目解析算法原理代码实现题目练习 题目解析 算法原理 状态表示 对于这种「路径类」的问题&#xff0c;我们的状态表示⼀般有两种形式&#xff1a; i. 从[i, j] 位置出发。 ii. 从起始位置出发&#xff0c;到[i, j] 位置。 这⾥选择第⼆种定义状态表⽰的⽅式&#xf…

用了Stream后,代码反而越写越丑?

使用 Stream API 可以使代码更加简洁和易读&#xff0c;但如果不恰当地使用或过度使用&#xff0c;确实可能导致代码变得复杂和难以理解。以下是一些常见的问题和改进建议&#xff1a; 常见问题 过度链式调用&#xff1a;过度链式调用 Stream 方法会导致代码行过长&#xff0c…

论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)

中文标题&#xff1a;简化目标检测的无源域适应&#xff1a;有效的自我训练策略和性能洞察 原文标题&#xff1a;Simplifying Source-Free Domain Adaptation for Object Detection: Effective Self-Training Strategies and Performance Insights 此篇文章为论文速读&#xff…

FFmpeg 4.3 音视频-多路H265监控录放C++开发十. 多线程控制帧率。循环播放,QT connect 细节,

在前面&#xff0c;我们总结一下前面的代码。 在 FactoryModeForAVFrameShowSDL 构造函数中 init SDL。 通过 QT timerevent机制&#xff0c;通过startTimer(10);每隔10ms&#xff0c;就会调用timerEvent事件。 在timerEvent事件中&#xff0c;真正的去 读取数据&#xff0c…

企业文件加密要怎么做?好用的10款企业文件加密软件排行榜!

在现代信息化的工作环境中&#xff0c;企业数据安全面临着越来越多的威胁。尤其是当涉及到敏感文件和商业机密时&#xff0c;如何保护这些数据不被泄露或遭受恶意攻击显得尤为重要。企业文件加密成为了保护企业信息安全的关键手段。本文将探讨如何进行企业文件加密&#xff0c;…

20241107给野火LubanCat1-BTB刷Ubuntu的预编译固件并点亮USB接口的热像仪AT600

20241107给野火LubanCat1-BTB刷Ubuntu的预编译固件并点亮USB接口的热像仪AT600 2024/11/7 20:08 缘起&#xff1a;需要使用RK3566的linux/Buildroot系统。 将 鲁班猫的 云盘资料下载之后&#xff0c;发现里面没有Buildroot的预编译固件。 火速联系 淘宝客服&#xff01;转技术支…

VMware没有卸载干净,安装后ping不通

目录 1.问题 2.问题分析 3. 解决办法 &#x1f353; STEP1&#xff1a;卸载VMware &#x1f348; STEP2&#xff1a;services.msc设置 &#x1f352;STEP3&#xff1a;安装everything删除所有与vmware相关的文件 &#x1f351;STEP4&#xff1a;使用CCleaner清理修复注册…

【科普】简述机器学习和深度学习及其相关的算法

文章目录 机器学习1. 基本概念2. 机器学习的分类3. 机器学习的常用方法4. 应用领域5. 挑战与未来6. 未来趋势 机器学习算法 深度学习1.深度学习的基本概念2.深度学习的主要架构3.深度学习的应用4.深度学习的挑战 深度学习算法 机器学习 机器学习是人工智能的一个重要分支&…

HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,静态路由,环回,缺省,空接口,NAT

学习目标&#xff1a; 链路聚合VLAN间通讯Super VLANMSTPVRRPip配置,静态路由,环回&#xff0c;缺省&#xff0c;空接口NAT 学习内容&#xff1a; 实验拓扑实验需求实验需求分析实验配置内容 &#xff08;每一个设备的每一步操作&#xff09;实验结果验证 1.实验拓扑 搭建 …

Zabbix监控架构

目录 1. Zabbix监控架构-CS架构 2. Zabbix极速上手指南 主机规划 2.1 部署ngxphp环境并测试 检查安装结果 2.2 部署数据库 2.3 编译安装zabbix-server服务端及后续配置 2.4 部署前端代码代码进行访问 前端的配置文件(连接数据库与主机名等信息) 2.5 欢迎来到zabbix 2…