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

java常用类(下)

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

🔥 个人主页:星云爱编程

🔥 所属专栏: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.kler.cn/a/455923.html

相关文章:

  • Android笔记(四十一):TabLayout内的tab不滚动问题
  • NI GPIB设备的GPIB Analyzer功能
  • ChatGPT实战100例 - (22) 影刀需求大师
  • 刷新页面一次,错误地进行了多次重复调用后端服务
  • Python einops库介绍
  • mysql返回N/A
  • uniapp使用live-pusher实现模拟人脸识别效果
  • 窗口函数-详细讲解分析
  • vue 集成 webrtc-streamer 播放视频流 - 解决阿里云内外网访问视频流问题
  • 面试知识点汇总_02
  • 【STM32】RTT-Studio中HAL库开发教程十:EC800M-4G模块使用
  • 记录使用uim4的自定义头部
  • 黑马点评——基于Redis
  • Java全栈项目-校园公告管理系统开发实践
  • Kubernetes 安装 Nginx以及配置自动补全
  • SQL 表连接操作
  • 0055. shell命令--useradd
  • 【知识】cuda检测GPU是否支持P2P通信及一些注意事项
  • day20-yum精讲
  • Unity3D如何优化物理模拟?
  • Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N]……解决
  • springboot+mybatis的整合
  • 力扣矩阵-算法模版总结
  • LaTeX 是一种基于标记的排版系统,广泛用于创建高质量的文档,特别是在需要复杂数学公式、表格、文献引用等的场景中
  • 源码分析之Openlayers中GeometryCollection类
  • S5700 V600R024C00 配置指南-工业网络 PROFINET