API - Math,System,Runtime,BigDecimal,日期时间,Arrays...

news/2024/9/21 18:52:51 标签: java, 开发语言

01 Math类

【注意】:round在四舍五入时,只会四舍五入小数点后第一位,例如:4.499,的结果是4.

02 System类

【解释】:currentTimeMillis返回的是从1970-1-1 0:0:0开始到此刻的毫秒值,所以返回值才定义成long类型的,1s = 1000ms,1ms = 1000微妙,1微妙 = 1000纳秒。System类的静态方法currentTimeMillis方法通常用于做代码的性能分析:在程序执行前记录一下h1,执行之后记录一下h2,最后让(h2-h1)/1000.0 + "s"。

03 Runtime类(了解)

04 BigDecimal类

【做法】:在进行浮点数运算时,先将待进行运算的浮点数数据封装给BigDecimal对象,再通过调用BigDecimal方法进行相关运算。怎么封装呢?答:如下图所示,一般采用第二种形式直接封装浮点型数据,而不需要进行字符串转换(因为BigDecimal方法的valueOf方法底层会帮我们进行转换)

【补充】:BigDecimal类中底层是通过数组的形式存储浮点数(包括小数点)然后再进行位运算的。

【补充】:BigDecimal类中重写了Object类的toString方法,所以我们可以直接输出对象中的值。

05 JDK之前传统的日期,时间

05_01 Date类

【1】使用Date date = new Date()表示实例化出一个日期对象,里面封装着系统当前的日期和时间

【2】使用日期对象调用getTime可获取日期对象所表示的时间毫秒值。

【3】如何让时间毫秒值封装成日期对象?

   ① 通过new Date(时间毫秒值),直接实例化出一个日期对象。

   ② 通过日期对象调用setTime(时间毫秒值),使得主调的日期对象中的日期时间更改成入参所表示的日期时间。解释:该方法的返回值为void,由于Date的对象是可变的,该方法是直接把主调Date对象的值修改了。 

【4】sout可以直接输出Date对象中的日期时间数据。 

05_02 SimpleDateFormat类

【1】SimpleDateFormat表示日期时间格式器,用于格式化Date对象或时间毫秒值的日期时间。

【2】实例化SimpleDateFormat对象:new SimpleDateFormat("YYYY-MM-dd  HH-mm-ss EEE")

【3】格式化Date对象/时间毫秒值:SimpleDateFormat对象.format(Date对象/时间毫秒值),将格式化的结果以字符串的形式返回。

【4】如何将表示日期时间的字符串转换成Date对象:使用SimpleDateFormat对象调用parse方法,并将表示日期时间的字符串以入参传给该方法。注意:字符串中的日期时间的格式必须要与该SimpleDateFormat对象的格式一致。

05_03 Calendar类

【1】为什么要有Calendar类?答:如果我们想要获取/修改某个日期时间中的具体值时使用Date类和SimpleDateFormat类是做不到的,于是引入了Calendar类。Calendar类可以获取/修改某个日期时间中的具体值。

【2】Calendar类是抽象类,是不能实例化对象的,Calendar类中提供了一个静态方法getInstance可以获取Calendar的对象。

【3】可以使用sout直接打印Calendar对象中的所有数据。

【4】Calendar类的基础方法:get,set,add,注意:field这个参数得传Calendar类中相关的常量

【5】Calendar对象可以转换成Date对象:getTime()

【6】Calendar对象可以获取时间毫秒值:getTimeMillis()

【7】注意:Calendar对象中的月份是从0开始计的!!!!!!!!!!!

06 JKD8开始新增的日期,时间

06_01 为什么要学新的日期时间类

06_02 LocalDate,LocalTime,LocalDateTime

06_03 Zoneld,ZonedDateTime

【1】为什么要学习这两个类?答:上面的LocalDate,LocalTime,LocalDateTime默认获取系统的当前时间,但在开发中我们可能会需要获取到美国,英国等地方当前的时间进行一些处理,遇到这样的需求我们不可能去根据相关地理知识去手算,所有JDK8提供了ZoneID,ZoneDateTime这两个类

【2】ZoneId代表的是时区id:为了方便记忆,通常我们会用一个时区里的标志性城市来代表这个时区,格式一般是:州名/城市名 或 国家名/城市名,ZoneId表示的就是某时区的id。

【3】ZoneId这个类的目的:封装时区id给ZoneId对象。

【4】ZoneId对象调用getID方法可以获取该对象里的时区Id,也可以直接用sout输出ZoneId对象,因为sout会自动调用ZoneId类中的toString方法,而ZoneId里的toString方法底层其实也是调用了getId方法。

【5】ZonedDateTime这个类的目的:封装某个ZoneID对象所指时区的时间。 

06_04 Instant

06_05 DateTimeFormatter

06_10 Period

06_09 Duration

07 Arrays

07_01 简单介绍

【注意】

     ① 使用Arrays.copyOf如果新数组的长度小于原数组,只会拷贝指定长度。

     ② copyOfRange 和 copyOf方法的返回值都是新的数组对象

     ③ setAll 和 sort方法是对原数组本身的数据做更改。

 07_02 数组中对象的排序

08 JDK8新特性:Lambda表达式

08_01 认识Lambda表达式

08_02 Lambda表达式的省略规则

09 JDK8新特性:方法引用"::":进一步简化Lambda表达式

【注意】:

     ① 使用方法引用简化lambda表达式,必须得是lambda表达式才行。

     ② 如果看到代码里面有::则表示这里使用了方法引用 —》用于Lambda表达式的。

09_01 静态方法的引用

【解释】:使用静态方法的引用的条件,不仅要满足是函数式接口的匿名内部类,而且经过初步简化后,留下的语句是一条调用其他类中静态方法的语句,且前后的参数是一致的,则可以使用静态方法的引用。

09_02 实例方法的引用

【解释】:使用实例方法的引用的条件,不仅要满足是函数式接口的匿名内部类,而且经过初步简化后,留下的语句是一条某对象在调用实例方法的语句,且前后的参数是一致的,则可以使用实例方法的引用。

09_03 特定类型方法的引用

 

【解释】:使用特定类型方法的引用的条件,不仅要满足是函数式接口的匿名内部类,而且经过初步简化后,留下的语句是一条前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参,则此时就可以使用特定类型的方法引用。

【修改方法】:查看该实例方法是哪个类的实例方法,格式:类名::实例方法名

09_04 构造器引用(并不常见)

【解释】:使用构造器引用的条件,不仅要满足是函数式接口的匿名内部类,而且经过初步简化后,留下的语句是一条创建对象的语句,且前后的参数是一致的,则此时就可以使用构造器引用。


http://www.niftyadmin.cn/n/5669283.html

相关文章

【Linux】简易日志系统

目录 一、概念 二、可变参数 三、日志系统 一、概念 一个正在运行的程序或系统就像一个哑巴,一旦开始运行我们很难知晓其内部的运行状态。 但有时在程序运行过程中,我们想知道其内部不同时刻的运行结果如何,这时一个日志系统可以有效的帮…

集成学习详细介绍

以下内容整理于: 斯图尔特.罗素, 人工智能.现代方法 第四版(张博雅等译)机器学习_温州大学_中国大学MOOC(慕课)XGBoost原理介绍------个人理解版_xgboost原理介绍 个人理解-CSDN博客 集成学习(ensemble):选择一个由一系列假设h1, h2, …, hn构成的集合…

【Python】Anaconda插件:Sublime Text中的Python开发利器

上班的时候没人问我苦不苦,下班的时候总有人问为什么走这么早。 Anaconda 是一个专为Sublime Text打造的开源Python开发插件,旨在为开发者提供类似于IDE的丰富功能,提升Python编码效率。该插件提供了代码补全、语法检查、代码片段提示等多项…

基于FPGA+GPU异构平台的遥感图像切片解决方案

随着遥感和成像技术的不断进步和普及,获取大量高分辨率的遥感图像已成为可能。这些大规模的遥感图像数据需要进行有效的处理和分析,以提取有用的信息,进行进一步的应用。遥感图像切片技术应运而生,该技术可以将大型遥感图像分割成…

C++初始化列表详解 + explicit关键字

构造函数初始化列表 构造函数: class Date { public:// 构造函数Date(int year 0, int month 1, int day 1){_year year;_month month;_day day;//可以修改值_year 2024;_month 9;_day 21;} private:int _year;int _month;int _day; }; 这样的构造函数和…

神经网络 归一化层

为什么要进行网络归一化层? 神经网络训练过程中,当网络层数较多的时候,每一轮训练每个网络层的参数都会发生变化,那么网络层参数变化会有什么影响呢? 1. 向网络中输入相同分布的样本时,由于每一层网络的参…

PCF8563驱动源码

提供年、月、日、星期,时、分、秒计时,使用外置32.768Khz晶振。低后备电流:0.25uA,VDD3.0V,温度25℃。IIC接口,速度最高400KHz。可编程时钟输出,可以供其他设备使用,可输出的时钟频率…

Java 19 新特性-结构化并发(Structured Concurrency)[Preview]

Java 19 新特性:结构化并发(Structured Concurrency)[预览] Java 19 在并发编程领域引入了一个全新的概念——结构化并发(Structured Concurrency),作为预览功能发布。这一特性旨在简化并发任务的管理&…