java常用类(下)

news2025/1/4 6:30:52

 笔上得来终觉浅,绝知此事要躬行

🔥 个人主页:星云爱编程

🔥 所属专栏:javase

🌷追光的人,终会万丈光芒  

 🎉欢迎大家点赞👍评论📝收藏⭐文章

  

目录

一、Math 类

1.1基本介绍

1.2Math类常见方法(全是静态方法)

二、Arrays类

2.1基本介绍

2.2Arrays类常用方法

三、System类

3.1基本介绍

3.2 System类常用方法

四、BigInteger和BigDecimal

4.1BigInteger介绍

4.2BigDeciaml介绍

五、日期类

5.1 第一代日期类(Date)

5.1.1基本介绍

5.1.2应用

Ⅰ获取当前系统时间

Ⅱ通过构造器指定毫秒数得到时间

Ⅲ解析文本为日期

5.2第二代日期类(Calendar)

5.2.1基本介绍

5.2.2应用

5.3第三代日期类

5.3.1前两代日期类的不足之处

5.3.2基本介绍

5.3.3应用

5.3.4Instant时间戳

5.3.5第三代日期类常用方法

结语


一、Math 类

1.1基本介绍

Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

1.2Math类常见方法(全是静态方法)

(1)abs:返回绝对值

(2)pow:求幂

(3)cbrt:返回立方根

(4)ceil: 向上取整,返回>=该参数的最小整数(转成double);

(5)floor :向下取整,返回<=该参数的最大整数(转成double)

(6)round :四舍五入 Math.floor(该参数+0.5)

(7)sqrt :求开方,返回的是double型

(8)random: 求随机数;Math.random() * (b-a) 返回的就是 0 <= 数 <=b-a

(9)max:求两个数的最大值

(10)min:求两个数的最小值

二、Arrays类

2.1基本介绍

该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。

如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException ,除非另有说明。

2.2Arrays类常用方法

(1)toString:返回数组的字符串形式

(2)sort:可用于各种数组排序

(3)binarySerach:二分查找,通过二分查找进行查找,要求必须排好序,如果数组中不存在钙元素,就返回-(low+1).,low为该元素存在时的索引。

(4)copyOf:数组元素的复制

注:从arr数组中,,拷贝arr.length个元素到newarr数组中

        如果拷贝长度大于arr.length就在新数组的后面null

        如果拷贝长度小于0,就抛出NegativeArraySizeException异常

(5)fill:数组元素的填充

可以理解成是替换原数组元素,例如:

  int arr[]={124,4,54,2,65,23,74};
    Arrays.fill(arr,0);
    for(int data:arr){
        System.out.print(data);
    }

(6)equals:比较两个数组内容是否完全一致

注:Arrays.equals(arr1,arr2),如果arr1和arr2数组的元素一样,则返回true,否则返回false

(7)asList:将一组值,转换为List

eg.  List list=Arrays.aslist(1,2,3,4,5,6);

①asList方法会将(1,2,3,4,5,6)数据转成一个List集合

②返回的list 编译类型 List(接口)

③list的运行类型为java.util.Arrays#ArrayList

三、System类

3.1基本介绍

System类包含几个有用的类字段和方法。 它不能被实例化。

System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

3.2 System类常用方法

(1)exit:退出当前程序

exit(0) 表示程序退出;

0 表示一个状态 , 正常的状态

(2)arraycopy:复制数组元素,比较适合底层调用,一般使用Arrays.copy完成复制数组

System.arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length);

参数解读:

src:源数组

srcPos:从源数组的某个位置开始拷贝

dest:目标数组,即将数据拷贝到该数组

destPos:把源数组的数据拷贝到目标数组的某个索引

length:从源数组拷贝多少个数据到目标数组

(3)currentTimeMillens:返回当前时间距离1970/1/1的毫秒数

(4)gc:运行垃圾回收机制

四、BigInteger和BigDecimal

4.1BigInteger介绍

当我们编程中,需要处理很大的整数,long也不够用时,我们可以使用BigInteger类来搞定.

eg.

BigInteger bigInteger=new BigInteger("99999999999999999)

注意:

(1)在对BigInteger进行加减乘除时,需要使用对应的方法,不能直接用+、-、*、/

(2)运算方法:①加:add;②减:subtract;③乘:multiply;④除:divid。

4.2BigDeciaml介绍

当我们需要保存一个精度很高的数时,double也不够用时,可以用BigDecimal

eg:

BigDecimal bigDecimal = new BigDecimal("12.3454565475676745645534433");

注:加减乘除时需用对应的方法,同BigInteger

五、日期类

5.1 第一代日期类(Date)

5.1.1基本介绍

(1)Date:精准到毫秒,代表特定的瞬间

(2)SimpleDateFormat:格式和解析日期的类。SimpleDateFormat允许进行格式化(日期->文本)、解析(文本->日期)和规范化。其参数表:

5.1.2应用

Ⅰ获取当前系统时间
public class Test5 {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
        String formatDate=sdf.format(date);
        System.out.println(formatDate);
    }
}

(1)Date date = new Date(); 获取当前系统时间

解读:

①这里的Date类是在java.util包;

②默认输出日期的格式是国外的方式,因此通常要对格式进制转换

(2)格式转换:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
String formatDate=sdf.format(date);

解读:

①创建SimpleDateFormat对象,可以指定相应格式;

②这里的格式的使用的字母是规定好的,不能乱写;

③format方法将日期转换成指定格式的字符串

Ⅱ通过构造器指定毫秒数得到时间
public class Test6 {
    public static void main(String[] args) {
        Date date = new Date(235078425);
        System.out.println(date);
        Date date1 = new Date();
        long m=date1.getTime();
        System.out.println(m);
    }
}

Date date=new Date(235078425);通过构造器指定毫秒数得到时间

解读:

①指定毫秒是从1970/1/1开始加的

②long m=date1.getTime();获取某个时间对应从1970/1/1开始的毫秒数。

Ⅲ解析文本为日期
public class Test7 {
    public static void main(String[] args) throws ParseException {
        String s="2024/12/28";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
        Date parse=sdf.parse(s);
        System.out.println(parse);
    }
}

解读:

可以把一个格式化的String转成对应的Date;

得到的Date不做格式化处理的话,仍默认为国外的格式;

在把String转成Date时,使用的sdf格式需要与待转化的String的格式一致,否则将抛出转换异常。

5.2第二代日期类(Calendar)

5.2.1基本介绍

(1)第二代日期类主要就是Calendar类(日历)

(2)Calender类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

5.2.2应用

public class Test8 {
    public static void main(String[] args) {
        Calendar c=Calendar.getInstance();//创建对象
        System.out.println(c.get(Calendar.YEAR));//获取目前年份
        System.out.println(c.get(Calendar.MONTH)+1);//获取目前月份,从0开始,所以要加1
        System.out.println(c.get(Calendar.DAY_OF_MONTH));//获取目前在一个月的日期
        System.out.println(c.get(Calendar.HOUR_OF_DAY));//获取目前的时刻(24小时制)
        System.out.println(c.get(Calendar.MINUTE));//获取目前在最近一个小时内的分钟数
    }
}

解读:

(1)Calendar是一个抽象类,并且构造器是private,可以通过getInstance()来获取实例;

(2)Calendar没有提供对应的格式化的类,因此需要程序员自己组合来输出(灵活);

(3)Calendar返回月的时候,是按照0开始编号,所以月份要加1。

5.3第三代日期类

5.3.1前两代日期类的不足之处

(1)可变性:像日期和时间这样的类应该是不可变的;

(2)偏移性:Date中的年份是从1970年开始,月份从0开始;

(3)格式化:格式化只对Date有用,Calendar则不行

(4)线程不安全,不能处理间秒(每隔两天就会多出一秒)。

5.3.2基本介绍

第三代日期类包括:LocalDate(日期)、LocalTime(时间)、LocalDateTime(日期时间)等

(1)LocalDate只包含日期,可以获取日期字段;

(2)LocalTime只包含时间,可以获取时间字段;

(3)LocalDateTime包含日期和时间,可以获取日期和时间字段

5.3.3应用

public class Test9 {
    public static void main(String[] args) {
        LocalDateTime ldt=LocalDateTime.now();
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String format=dtf.format(ldt);
        System.out.println(format);
    }
}

解读:

(1)使用now()返回表示当前日期时间的对象;

(2)LocalDate.now()可以获取年月日,无时分秒;

(3)LocalTime.now()可以获取时分秒,无年月日;

(4)使用DateTimeFormatter对象对LocalDateTime对象进行格式化,调用的是ofPattern方法。

5.3.4Instant时间戳

public class Test10 {
    public static void main(String[] args) {
        //Instant->Date
        Instant now= Instant.now();
        Date date=Date.from(now);
        System.out.println(date);
        //Date->Instant
        Date date1=new Date();
        Instant instant=date1.toInstant();
        System.out.println(instant);
    }
}

(1)通过静态方法now()获取表示当前时间戳的对象

(2)通过from可以把Instant转成Date

(3)通过 date 的toInstant() 可以把 date 转成Instant 对象

5.3.5第三代日期类常用方法

(1)LocalDate类常用方法

now(): 获取当前日期。
of(int year, int month, int dayOfMonth): 创建一个`LocalDate`实例。
getYear(): 获取年份。
getMonth(): 获取月份。
getDayOfMonth(): 获取月份中的日期。
isLeapYear(): 判断是否为闰年。

(2)LocalTime类常用方法

now(): 获取当前时间。
of(int hour, int minute, int second): 创建一个`LocalTime`实例。
getHour(): 获取小时。
getMinute(): 获取分钟。
getSecond(): 获取秒。
plusHours(long hoursToAdd): 添加小时。
minusHours(long hoursToSubtract): 减去小时。

(3)LocalDateTime类常用方法

now(): 获取当前的日期和时间。
of(LocalDate date, LocalTime time): 使用`LocalDate`和`LocalTime`创建一个实例。
toLocalDate(): 获取日期部分。
toLocalTime(): 获取时间部分。
plusDays(long daysToAdd): 添加天数。
minusDays(long daysToSubtract): 减去天数。
plusHours(long hoursToAdd): 添加小时。
minusHours(long hoursToSubtract): 减去小时。

结语

感谢您的耐心阅读,希望这篇博客能够为您带来新的视角和启发。如果您觉得内容有价值,不妨动动手指,给个赞👍,让更多的朋友看到。同时,点击关注🔔,不错过我们的每一次精彩分享。若想随时回顾这些知识点,别忘了收藏⭐,让知识触手可及。您的支持是我们前进的动力,期待与您在下一次分享中相遇!

路漫漫其修远兮,吾将上下而求索。

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

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

相关文章

计算机的错误计算(一百九十四)

摘要 用两个大模型计算 其中&#xff0c;一个大模型通过化简&#xff0c;得出正确结果 0&#xff1b;而另外一个在化简过程中出现错误&#xff0c;得出了错误结果。 例1. 计算 下面是一个大模型的推导化简过程。 以上为一个大模型的回答。 下面是另外一个大模型的回复。 点评…

电脑缺失sxs.dll文件要怎么解决?

一、文件丢失问题&#xff1a;以sxs.dll文件缺失为例 当你在运行某个程序时&#xff0c;如果系统提示“找不到sxs.dll文件”&#xff0c;这意味着你的系统中缺少了一个名为sxs.dll的动态链接库文件。sxs.dll文件通常与Microsoft的.NET Framework相关&#xff0c;是许多应用程序…

初始c语言第一个c语言项目

第一个c语言项目 //c语言中一定要有main函数 //主函数//printf是一个库函数 //专门用来打印数据//std 标准 //i-input //o-output // #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>//c语言规定main函数是程序的入口 //标准的主函数的写法 int main() {printf(&qu…

进军AI大模型-环境配置

语言环境配置 合法上网工具&#xff1a; 这个T子试试&#xff0c;一直稳定。走我链接免费用5天: https://wibnm.com/s/ywtc01/pvijpzy python版本&#xff1a; python3.12 Langchain: Introduction | &#x1f99c;️&#x1f517; LangChain v0.3 9月16日升级的版本 pip3…

影刀进阶指令 | Kimi (对标ChatGPT)

文章目录 影刀进阶指令 | Kimi &#xff08;对标ChatGPT&#xff09;一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 确定问题2\. 填写问题并发送3\. 检测答案是否出完 四. 运维 影刀进阶指令 | Kimi &#xff08;对标ChatGPT&#xff09; 简单讲讲RPA调用kimi实现…

python学opencv|读取图像(二十二)使用cv2.polylines()绘制多边形

【1】引言 前序学习进程中&#xff0c;已经掌握了使用pythonopencv绘制线段、矩形和圆形的基本操作&#xff0c;相关链接包括且不限于&#xff1a; python学opencv|读取图像&#xff08;十八&#xff09;使用cv2.line创造线段-CSDN博客 python学opencv|读取图像&#xff08;…

OCR实践-Table-Transformer

前言 书接上文 OCR实践—PaddleOCR Table-Transformer 与 PubTables-1M table-transformer&#xff0c;来自微软&#xff0c;基于Detr&#xff0c;在PubTables1M 数据集上进行训练&#xff0c;模型是在提出数据集同时的工作&#xff0c; paper PubTables-1M: Towards comp…

计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析

文章目录 PreApache CommonsApache Commons ProperLogging &#xff08;Apache Commons Logging &#xff09; JCL 集成logbackPOM依赖配置文件 logback.xml使用 源码分析jcl-over-slf4j 的工作原理1. LogFactory 的实现2. SLF4JLogFactory 和 Log 的实例化过程3. SLF4JLog 和 …

多模态论文笔记——LLaVA

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型&#xff1a;LLaVA。处理包含图像和文本的多模态数据&#xff0c;并生成合理准确的回答。 文章目录 论文模型架构视觉编码器语言模型多模态融…

汽车的hmi设计还能有哪些创新?要从哪些方面下手

随着科技的不断发展&#xff0c;汽车的人机交互界面&#xff08;HMI&#xff09;设计也在不断演进。目前&#xff0c;汽车 HMI 已经从传统的物理按钮和仪表盘发展到了数字化、智能化的交互系统。然而&#xff0c;仍有许多创新的空间等待探索。那么&#xff0c;汽车的 HMI 设计还…

基于深度学习(HyperLPR3框架)的中文车牌识别系统-前言

参考链接&#xff1a; GitHub - szad670401/HyperLPR: 基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework. - szad670401/HyperL…

Python库中各种插值函数的使用

文章目录 Python库中各种插值函数的使用数据1&#xff1a; 随机的数据数据2&#xff1a; 从 cos轨迹中取值B样条三次样条Akmia画图显示数据1 的比较结果位置比较示意图速度比较示意图加速度比较示意图 数据2 的比较结果位置比较示意图速度比较示意图加速度比较示意图 全部代码如…

ip归属地怎么判定?如何查看自己ip属地

在当今数字化时代&#xff0c;IP地址作为互联网通信的基础&#xff0c;扮演着至关重要的角色。而IP归属地的判定与查看&#xff0c;不仅关乎网络安全、隐私保护&#xff0c;还直接影响到社交平台的信任机制与信息传播的真实性。本文将深入探讨IP归属地的判定原理以及如何查看自…

soular使用教程

用 soular 配置你的组织&#xff0c;工作更高效&#xff01;以下是快速上手的简单步骤&#xff1a; &#xfeff; 1. 账号管理 可以对账号信息进行多方面管理&#xff0c;包括分配不同的部门、用户组等&#xff0c;从而确保账号权限和职责的清晰分配。 &#xfeff; 1.1 用…

JS媒体查询之matchMedia API 实现跟随系统主题色切换效果

&#x1f4ca;写在前面 在网页设计中&#xff0c;跟随系统主题切换可以通过CSS和JavaScript实现。可以通过定义两套CSS变量&#xff0c;根据系统主题的颜色来切换变量的生效&#xff0c;从而实现不同主题下的页面样式变化。 例如&#xff0c;可以使用媒体查询API来获取系统主题…

客户案例:基于慧集通的致远OA与海康威视智能会议设备集成方案

一、引言 本案例原型公司是我国生产纺织原料的大型上市企业&#xff0c;主导产品为再生纤维素长丝、氨纶等系列产品。公司产品不仅得到国内客户认可&#xff0c;还远销海外&#xff0c;合作伙伴遍布德国、意大利、日本、韩国、土耳其、印度等30多个国家和地区。 二、简介 &am…

【Leetcode】3046. 分割数组

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果 题目 题目链接&#x1f517; 给你一个长度为 偶数 的整数数组 n u m s nums nums 。你需要将这个数组分割成 n u m s 1 nums1 nums1 和 n u m s 2 nums2 nums2 两部分&#xff0c;要求&#xff1a; n u m s 1. l…

掌握软件工程基础:知识点全面解析【chap07、chap10】

chap07 软件设计基础 1.信息隐藏、内聚度和耦合度&#xff08;在七种级别里应该注意什么原则&#xff09;的概念 1.信息隐藏 模块独立的概念 o 模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问; o 每个模块只完成一个相对独立的特定功能; o 模…

操作系统实验三 存储管理

实验三 存储管理 一、实验目的 通过实验使学生了解可变式分区管理使用的主要数据结构&#xff0c;分配、回收的主要技术&#xff0c;了解最优适应分配、最坏适应分配、最先适应分配和循环适应分配等分配算法。基本能达到下列具体的目标&#xff1a; 掌握初步进程在内存中的映…