当前位置: 首页 > news >正文

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");}
}

相关文章:

JavaAPI(1)

Java的API&#xff08;1&#xff09; 一、Math的API 是一个帮助我们进行数学计算的工具类私有化构造方法&#xff0c;所有的方法都是静态的&#xff08;可以直接通过类名.调用&#xff09; 平方根&#xff1a;Math.sqrt()立方根&#xff1a;Math.cbrt() 示例&#xff1a; p…...

【大模型】通过Crew AI 公司的崛起之路学习 AI Agents 的用法

AI 技术的迅猛发展正以前所未有的速度重塑商业格局&#xff0c;而 AI Agents&#xff0c;作为新一代的智能自动化工具&#xff0c;正逐步成为创新型公司的核心力量。在本文中&#xff0c;我们将探讨如何利用 AI Agents 构建一家 AI 驱动的公司&#xff0c;并详细了解 Crew AI 创…...

Python接口自动化测试实战

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛…...

前端Web用户 token 持久化

用户 token 持久化 业务背景&#xff1a;Token的有效期会持续一段时间&#xff0c;在这段时间内没有必要重复请求token&#xff0c;但是pinia本身是基于内存的管理方式&#xff0c;刷新浏览器Token会丢失&#xff0c;为了避免丢失需要配置持久化进行缓存 基础思路&#xff1a…...

【测试工具篇一】全网最强保姆级教程抓包工具Fiddler(2)

本文接上篇Fiddler介绍&#xff0c;开始讲fiddler如何使用之前&#xff0c;给大家讲讲http以及web方面的小知识&#xff0c;方便大家后面更好得理解fiddler使用。 目录 一、软件体系结构---B/S与C/S架构 B/S架构 C/S架构 二、HTTP基础知识 什么是http请求和响应? http协…...

ONLYOFFICE 文档8.2更新评测:PDF 协作编辑、性能优化及更多新功能体验

文章目录 &#x1f340;引言&#x1f340;ONLYOFFICE 产品简介&#x1f340;功能与特点&#x1f340;体验与测评ONLYOFFICE 8.2&#x1f340;邀请用户使用&#x1f340; ONLYOFFICE 项目介绍&#x1f340;总结 &#x1f340;引言 在日常办公软件的选择中&#xff0c;WPS 和微软…...

【WebRTC】视频采集模块中各个类的简单分析

目录 1.视频采集模块中的类1.1 视频采集基础模块&#xff08;VideoCaptureModule&#xff09;1.2 视频采集工厂类&#xff08;VideoCaptureFactory&#xff09;1.3 设备信息的实现&#xff08;DeviceInfoImpl&#xff09;1.4 视频采集的实现&#xff08;VideoCaptureImpl&#…...

【大模型系列】Grounded-VideoLLM(2024.10)

Paper&#xff1a;https://arxiv.org/pdf/2410.03290Github&#xff1a;https://github.com/WHB139426/Grounded-Video-LLMHuggingface&#xff1a;https://huggingface.co/WHB139426/Grounded-Video-LLMAuthor&#xff1a;Haibo Wang et al. 加州大学&#xff0c;复旦 动机&a…...

EV录屏好用吗?盘点2024年10款专业好用的录屏软件。

EV录屏的方式有很多种&#xff0c;它设置了很多模式&#xff0c;并且录制高清&#xff0c;可以免费使用。但是现在很多的录屏工具都有着与这个软件相似的功能&#xff0c;在这里我可以给大家列举一些。 1、福昕电脑录屏 这个软件为用户提供了多种录制模式&#xff0c;让视频录…...

Pandas | 理性判断数据是否存在缺失值的一种方法

理性判断 一般思路进一步思考df[B].explode() 一般思路 tcc.info()上述信息info显示没有缺失值 但是真实的情况还是要根据业务实际分析tcc.isnull().sum() # 和tcc.info()作用和tcc.info() 其实是一样的 进一步思考 在此过程中&#xff0c;我们需要检验是否存在采用别的值来表…...

ENSP (虚拟路由冗余协议)VRRP配置

VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由冗余协议&#xff09;是一种用于提高网络可用性和可靠性的协议。它通过在多个路由器之间共享一个虚拟IP地址&#xff0c;确保即使一台路由器发生故障&#xff0c;网络依然能够正常运行&#xff0c;防止…...

move_base

move_base 官方介绍&#xff1a;http://wiki.ros.org/move_base 如果在仿真环境下&#xff0c; sensor source、odometry source 和 sensor transforms 都已提供好&#xff0c;我们只需要完成以下部分&#xff1a; 一、编写导航程序 ①创建 ROS 工作空间 和 pkg 包 mkdir -p …...

Android Intent 跳转常见系统设置

常量值描述android.settings.DATA_ROAMING_SETTINGS显示 2G/3G 选择的设置android.settings.SETTINGS显示系统设置android.settings.WIFI_SETTINGS显示设置以允许配置 Wi-Fiandroid.intent.action.POWER_USAGE_SUMMARY显示电池 … 更多GO 官网...

[复健计划][紫书]Chapter 7 暴力求解法

7.1 简单枚举 例7-1 Division uva725 输入正整数n&#xff0c;按从小到大的顺序输出所有形如abcde/fghij n的表达式&#xff0c;其中a&#xff5e;j恰好为数字0&#xff5e;9的一个排列&#xff08;可以有前导0&#xff09;&#xff0c;2≤n≤79。枚举fghij&#xff0c;验证a…...

基于SpringBoot的社区讯息服务小程序【附源码】

基于SpringBoot的社区讯息服务小程序 效果如下&#xff1a; 系统登陆页面 管理员主页面 用户管理页面 社区活动管理页面 设施报修管理页面 缴费信息管理页面 用户主页面 用户登录页面 社区活动页面 研究背景 随着移动互联网技术的飞速发展&#xff0c;社区生活日益依赖于数字…...

springboot图书管理系统(一个简单的单体架构项目,适合小白)

期末作业 为了水一水期末作业&#xff0c;打算写一个简易的单体架构图书管理系统。以下为后端主要技术栈(后期可能更新&#xff0c;打算一个星期左右写完吧)。 springbootredismysqlspringcachespringsecurity … 数据库设计 第一次从0开始搭建后续可能还会多更新一些表。 -- 角…...

《CLR via C#》读书笔记--CLR的执行模型

将源代码编译成托管模块将托管模块合并成程序集加载公共语言运行时执行程序集的代码本机代码生成器&#xff1a;NGen.exeFramework 类库入门通用类型系统公共语言规范&#xff08;CLS&#xff09;与非托管代码的互操作性 将源代码编译程托管模块 公共语言运行时&#xff08;Co…...

Javascript常见数据结构及其应用场景

Basic 以下是对JavaScript中常见数据结构及其应用场景的详细扩展&#xff1a; 数组&#xff08;Array&#xff09; 定义与特性&#xff1a;数组是由一组按顺序排列的值组成&#xff0c;每个值都有一个对应的索引&#xff08;下标&#xff09;&#xff0c;可以通过索引访问和修…...

简单的签到程序 python笔记

简单的人脸识别签到程序 在看完以下代码后&#xff0c;略微修改一番&#xff0c;你就能够组装出自己的“简单的人脸识别签到程序”了。 请注意库的安装&#xff0c;否则会不可用。 你可以通过在cmd中使用&#xff1a;pip install来安装。 以下代码运行python 3.8 UI界面 使…...

30天如何成功转行成为AI产品经理?如果你也想转行到AI,赶紧进来抄作业!!!

前言 随着AI技术的快速发展&#xff0c;AI产品经理成为了备受瞩目的职业。如果您也想抓住这个机遇&#xff0c;不妨跟随这份30天快速入门指南&#xff0c;开始您的AI产品经理转型之旅。 一、学习路线 第一阶段&#xff08;5天&#xff09;&#xff1a;初阶应用 该阶段让大家…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...