14--常用类和基础API--04

1、Arrays类

1.1 Arrays类概述

java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。简单来说:Arrays这个是专门用来操作数组相关的工具类

1.2 Arrays类常用方法

public static int[] copyOf(int[] original, int newLength)

        复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。

public static int[] copyOfRange(int[] original, int from, int to)

        将指定数组的指定范围复制到新数组中。

public static void sort(int[] a)                 底层使用快速排序

        按照数字顺序升序排列指定的数组。

public static void sort(int[] a, int fromIndex, int toIndex)

        按升序排列数组的指定范围。

public static boolean equals(int[] a, int[] a2)

        如果两个指定的int数组彼此 相等 ,则返回 true 。

public static int binarySearch(int[] a, int key)                使用前先排序,底层使用二分查找

        使用二叉搜索算法搜索指定的int数组的指定值。

public static void fill(int[] a, int val)

        将指定的int值分配给指定的int数组的每个元素。

public static String toString(int[] a)

        返回指定数组的内容的字符串表示形式

package com.suyv.arrays;import org.junit.Test;import java.util.Arrays;/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-13 14:49
*@Description: TODO
*/
public class ArrayDemo01 {int[] a = {1,15,95,23,36,42};int[] a1 = {1,15,95,23,36,42};@Testpublic void Test01(){// copyOf(int[] original, int newLength)// 复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。int[] arr = Arrays.copyOf(a,10);System.out.println(Arrays.toString(arr));   // [1, 15, 95, 23, 36, 42, 0, 0, 0, 0]// copyOfRange(int[] original, int from, int to)// 将指定数组的指定范围复制到新数组中。int[] arr1 = Arrays.copyOfRange(a,0,3);System.out.println(Arrays.toString(arr1));  // [1, 15, 95]int[] arr2 = Arrays.copyOfRange(a,4,8);System.out.println(Arrays.toString(arr2));  // [36, 42, 0, 0]}@Testpublic void Test02(){// sort(int[] a)// 按照数字顺序升序排列指定的数组。Arrays.sort(a);System.out.println(Arrays.toString(a)); // [1, 15, 23, 36, 42, 95]// sort(int[] a, int fromIndex, int toIndex)// 按升序排列数组的指定范围。Arrays.sort(a1,0,4);System.out.println(Arrays.toString(a1));    // [1, 15, 23, 95, 36, 42]}@Testpublic void Test03(){// equals(int[] a, int[] a2)// 如果两个指定的int数组彼此 相等 ,则返回 true 。int[] a2 = {1,15,95,23,36,42};System.out.println(Arrays.equals(a1,a2));   // trueint[] a3 = {1,95,15,23,36,42};System.out.println(Arrays.equals(a1,a3));   // false}@Testpublic void Test04(){// binarySearch(int[] a, int key)// 使用二叉搜索算法搜索指定的int数组的指定值。// 使用二分查找时先进行排序Arrays.sort(a);System.out.println(Arrays.toString(a));     // [1, 15, 23, 36, 42, 95]// 返回值大于等于0表示查询到该元素System.out.println(Arrays.binarySearch(a,95));      // 5// 返回值小于0表示插入点,即如果把该元素插入到该数组中,他的位置是多少// 即把返回值取绝对值后-1的值为插入该数组的索引值System.out.println(Arrays.binarySearch(a,20));      // -3System.out.println(Arrays.binarySearch(a,0));       // -1}@Testpublic void Test05(){// fill(int[] a, int val)// 将指定的int值分配给指定的int数组的每个元素。int[] arr = new int[10];Arrays.fill(arr,5);System.out.println(Arrays.toString(arr));   // [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]}
}

2、Math类

2.1 Math类概述

java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

2.2 Math类常用方法

方法名

说明

Math.PI

常量,圆周率

public static double abs(double num)

取绝对值

public static double ceil(double num)

向上取整

public static double floor(double num)

向下取整

public static long round(double num)

四舍五入

public static int max(int a, int b)

求最大值

public static int min(int a, int b)

求最小值

public static double pow(double a, double b)

求a的b次幂

public static double random()

随机数,随机的范围[0,1)

package com.suyv.math;import org.junit.Test;/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-13 16:22
*@Description: TODO
*/
public class MathDemo {double d1 = 25.1;double d2 = 25.5;double d3 = 25.9;@Testpublic void Test00(){System.out.println(Math.PI);    // 3.141592653589793System.out.println(Math.E);     // 2.718281828459045}@Testpublic void Test01(){// Math.ceil(double d)// 向上取整System.out.println(Math.ceil(d1));  // 26.0System.out.println(Math.ceil(d2));  // 26.0System.out.println(Math.ceil(d3));  // 26.0}@Testpublic void Test02(){// Math.floor(double d)// 向下取整System.out.println(Math.floor(d1)); // 25.0System.out.println(Math.floor(d2)); // 25.0System.out.println(Math.floor(d3)); // 25.0}@Testpublic void Test03(){// Math.round(double d)// 四舍五入System.out.println(Math.round(d1)); // 25System.out.println(Math.round(d2)); // 26System.out.println(Math.round(d3)); // 26}@Testpublic void Test04(){// Math.random()// 取[0.0,1.0)的随机数System.out.println(Math.random());// 取[0,100]的随机数int a = (int) Math.round(Math.random() * 100);System.out.println(a);}@Testpublic void Test05(){// Math.pow(double x, double y)// 取x的y次幂System.out.println(Math.pow(2, 2)); // 4.0System.out.println(Math.pow(2, 3)); // 8.0}@Testpublic void Test06(){// Math.sqrt(double d)// 取算术平方根System.out.println(Math.sqrt(9));   // 3.0System.out.println(Math.sqrt(4));   // 2.0}@Testpublic void Test07(){// Math.max(doubel d1,double d2)// 取较大值System.out.println(Math.max(d1, d2));   // 25.5}@Testpublic void Test08(){// Math.min(doubel d1,double d2)// 取较小值System.out.println(Math.min(d1, d2));   // 25.1}}

3、System类

3.1 System类概述

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

3.2 System类常用方法

public static longcurrentTimeMillis()

        返回距离1970年1月1日0点0分0秒的毫秒数,时间戳

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

        复制数组

        第一个参数是要复制的数组,第二个参数是从该数组那个索引开始复制,

        第三个参数是复制到那个数组,第四个参数是复制到该数组的那个索引,

        第五个参数是复制多少长度的第一个数组

public static void gc()

        运行垃圾回收器

public static void exit(int status)

        终止当前运行的Java虚拟机

package com.suyv.system;import org.junit.Test;import java.util.Arrays;
import java.util.Scanner;/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-13 21:55
*@Description: TODO
*/
public class SystemDemo {@Testpublic void Test01(){// 测试System类中的属性// “标准”输入流。Scanner scan = new Scanner(System.in);// “标准”输出流。System.out.println("Hello");    // Hello// “标准”错误输出流。System.err.println("Hello");    // Hello}@Testpublic void Test02(){// currentTimeMillis()方法// 时间戳// 常用来测试程序运行的时间System.out.println(System.currentTimeMillis()); // 1702476218177}@Testpublic void Test03(){// arraycopy()方法// 第一个参数是要复制的数组,第二个参数是从该数组那个索引开始复制,// 第三个参数是复制到那个数组,第四个参数是复制到该数组的那个索引,第五个参数是复制多少长度的第一个数组int[] arr = {11,22,33};int[] arr1 = new int[10];System.arraycopy(arr,1,arr1,2,1);System.out.println(Arrays.toString(arr1));      // [0, 0, 22, 0, 0, 0, 0, 0, 0, 0]}@Testpublic void Test04(){// 调用垃圾回收器System.gc();// 正常终止当前运行的Java虚拟机System.exit(0);}}

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

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

相关文章

OkHttp: 使用入门

文章目录 1. 领域对象1. Request2. Response2.1 请求重写2.2 重写返回2.3 跟踪请求2.4 自动重试 3. Calls 2. 创建连接1、URLs2、Addresses3、Routes4、Connections 3. 使用案例1、同步GET请求2、异步GET请求3、发送和读取HTTP头4、POST 字符传5、POST 流6、POST 文件内容7、PO…

mysql 字符串合并方法以及合并为null问题

concat()不推荐 mysql一般提供了两种一种是concat()函数一种是concat_ws()函数,前者合并字符串有个弊端,合并字段不能有null值, 否则如下图合并后会是null concat_ws()推荐 concat_ws()函数可以解决合并字符串为null问题,conca…

Go并发编程:保障安全与解锁奥秘

一、并发安全与锁 1、并发安全 有时候在 Go 代码中可能会存在多个 goroutine 同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)类比现实生活中的例子有十字路口被各个方向的汽车竞争;还有火车…

使用Microsoft Dynamics AX 2012 - 8. 财务管理

财务管理的主要职责是控制和分析与货币金额有关的所有交易。这些事务发生在整个组织的业务流程中。 因此,财务管理是企业管理解决方案的核心领域。在Dynamics AX中,支持所有部门业务流程的应用程序的深度集成可立即提供准确的财务数据。 分类账交易的原…

K8S(三)—组件

目录 k8s组件控制平面组件(Control Plane Componentskube-apiserveretcdkube-schedulerkube-controller-managercloud-controller-managerNode 组件kubelet(单独的进程)kube-proxy(单独的进程)容器运行时(C…

Redis常问面试题

Redis常问面试题 Redis常问面试题1、Redis 支持哪几种数据类型?2、Redis 做登录是怎么实现的?和传统session有何区别?3、什么是缓存穿透?4、什么是缓存雪崩?5、什么是缓存击穿?6、Redis高可用的几种实现方式…

12.13每日一题(备战蓝桥杯快速排序)

12.13每日一题(备战蓝桥杯快速排序) 题目 快速排序 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数&…

MySQL 中Relay Log打满磁盘问题的排查方案

MySQL 中Relay Log打满磁盘问题的排查方案 引言: MySQL Relay Log(中继日志)是MySQL复制过程中的一个重要组件,它用于将主数据库的二进制日志事件传递给从数据库。然而,当中继日志不断增长并最终占满磁盘空间时&…

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离

目录 前言 一、tomcat多实例部署 步骤一:先安装jdk,设置jdk的环境变量,验证是否安装完成(192.168.20.8) 步骤二:安装tomcat(192.168.20.18) 步骤三:安装tomcat多实例…

快速上手linux | 一文秒懂Linux各种常用目录命令(上)

🎬 鸽芷咕:个人主页 🔥 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 一 、命令提示符和命令的基本格式1.1 如何查看主机名称及修改 二、命令基本格式2.1 命令格式示例2.2 参数的作用…

Spring Cloud gateway - CircuitBreaker GatewayFilte

前面学习Spring cloud gateway的时候,做测试的过程中我们发现,Spring Cloud Gateway不需要做多少配置就可以使用Spring Cloud LoadBalance的功能,比如: spring:application:name: spring-gatewaycloud:gateway:routes:- id: path…

java并发-ReentrantReadWriteLock读写锁

文章目录 介绍读写锁的获取规则示例源码解读ReentrantReadWriteLock核心变量ReentrantReadWriteLock相关属性和构造函数Sync静态内部类的核心属性tryAcquireShared方法tryAcquire方法锁降级 总结 介绍 读写锁就是将一个锁拆分为读锁和写锁两个锁。 读写锁的获取规则 如果有一…

33KB代码实现短网址(php+mysql) V2.0

查立得短网址 V2.0 请保留署名信息;请勿用于非法用途 系统简述:三五十KB代码实现短网址功能前后端都登陆,相对第一版代码已重构。 开发环境:宝塔:linux php Nginx 7.1/mysql5.6;建议环境:linux php 5.4-7.3; 空间域名:域名解析到对…

ELK简单介绍二

学习目标 能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana kibana介绍 Kibana是一个开源的可视化平台,可以为ElasticSearch集群…

电子取证中Chrome各版本解密Cookies、LoginData账号密码、历史记录

文章目录 1.前置知识点2.对于80.X以前版本的解密拿masterkey的几种方法方法一 直接在目标机器运行Mimikatz提取方法二 转储lsass.exe 进程从内存提取masterkey方法三 导出SAM注册表 提取user hash 解密masterkey文件(有点麻烦不太推荐)方法四 已知用户密…

插入算法(C语言)

#include<cstdio> #include<iostream> #define N 9 using namespace std; int main() {int arr[N1] { 1,4,7,13,16,19,22,25,280 }; int in,i,j;//要插入的数字//打印要插入数字的数组所有元素printf("插入前的数组: ");for ( i 0; i <N; i){print…

STM32G030C8T6:使用外部晶振配置LED灯闪烁

本专栏记录STM32开发各个功能的详细过程&#xff0c;方便自己后续查看&#xff0c;当然也供正在入门STM32单片机的兄弟们参考&#xff1b; 本小节的目标是&#xff0c;使用STM32G030C8T6单片机&#xff0c;通过STM32CubeMX软件&#xff0c;配置并使用外部8MHz晶振&#xff0c;实…

6. Service详解

6. Service详解 文章目录 6. Service详解6.1 Service介绍6.2 Service类型6.3 Service使用6.3.1 实验环境准备6.3.2 ClusterIP类型的Service6.3.3 HeadLess类型的Service6.3.3.1 deployment和statefulset区别6.3.3.2 statefulset deployment 区别 6.3.4 NodePort类型的Service6.…

联邦蒸馏领域中,有哪些有意思的工作

联邦蒸馏领域中&#xff0c;有哪些有意思的工作 王婆卖瓜&#xff0c;自卖自夸。这个博客&#xff0c;我简要向大家推荐一下自己近期在联邦蒸馏方面的研究工作&#xff0c;按照心目中创新度从高到低进行排序&#xff0c;与工作的扎实程度以及发表的会议期刊等级无关。如有不妥…

扩展操作码指令格式

指令 操作码地址码 \quad \quad 判断几地址指令 开头4位不是全1, 则表示是三地址指令 开头4位全1, 后面4位不是全1, 则为二地址指令 前面12全1, 则为零地址指令 当然啦这只是一种扩展方法, 如果想扩展更多, 可以将1110留作扩展操作码 较短的操作码, 我们对它的译码和分析的时间…