【Java基础】020 -- 常见API

news2024/10/2 12:34:49

目录

一、游戏打包exe

二、Math

1、Math类的常用方法

①、代码实现

2、小结

3、练习

①、练习一:改进判断一个数是否为一个质数

②、练习二:自幂数

三、System

1、时间原点

2、常用方法

3、课堂练习

4、注意事项

5、小结

四、Runtime

1、常用方法

2、练习

五、Object

1、Object的构造方法

2、Object的成员方法

①、toString()

②、equals()【大厂面试题】

③、clone() 【★】

④、深、浅克隆

【tips 1】:

⑤、小结

六、Objects

1、Objects的成员方法

2、小结

七、BigInteger

1、BigInteger构造方法

2、构造方法小结

3、BigInteger常见方法

4、BigInteger底层存储原理

5、BigInteger的存储上限

6、小结

八、BigDecimal

1、计算机中的小数

2、BigDecimal的构造方法

3、BigDecimal的常见方法

①、代码实现

②、RoundingMode(枚举)

4、BigDecimal底层存储方式

5、小结

九、正则表达式

1、正则的使用场景

2、正则表达式的作用

3、正则表达式的规则

①、字符类(只匹配一个字符)

②、预定义字符(只匹配一个字符)

③、数量词(可以匹配多个字符)

4、正则表达式基本练习

①、手机号、邮箱号、电话号

②、身份证号

5、小结

6、爬虫

①、本地爬虫

②、网络爬虫

③、扩展练习

7、有条件的爬取数据

8、贪婪爬取和非贪婪爬取

9、正则表达式在字符串方法中的使用

10、分组

①、捕获分组正则内部练习

②、捕获分组正则外部练习

③、非捕获分组

④、小结

十、JDK7以前的时间相关类

1、时间的相关知识点

2、Data类

①、时间类代码示例

②、练习:时间计算

③、小结

3、SimpleDateFormat类

①、SimpleDateFormat类构造方法

②、练习(按照指定格式展示)

③、练习(秒杀活动)

④、小结

4、Calendar

①、Calendar的常用方法

②、小结

十一、JDK8新增的时间相关类

1、为什么要学习JDK8新增的时间相关类呢?

2、JDK8时间相关类

①、ZoneId时区【Date类】

②、Instant时间戳【Date类】

③、ZoneDateTime带时区的时间【Date类】

④、DataTimeFormatter用于时间的格式化和解析【日期格式化类】

⑤、LocalDate(年月日)【日历类】

⑥、LocalTime(时分秒)【日历类】

⑦、LocalDateTime【日历类】

⑧、Duration 时间间隔(秒、纳秒)【工具类】

⑨、Period 时间间隔(年、月、日)【工具类】

⑩、ChronoUnit (两个日期之间的间隔 所有单位) -- 最常用 【工具类】

⑪、小结

十二、包装类

1、如何理解包装类?

2、获取Integer对象的方式(了解)

①、JDK5以前的方式

②、这两种方式获取对象的区别【掌握】

③、在以前包装类如何进行计算?

④、自动装箱和自动拆箱(JDK5)

⑤、小结

3、Integer成员方法

①、为什么Integer的返回值设计成String类型?

②、示例代码

③、键盘录入

十三、综合练习

1、键盘录入

示例代码

2、算法水题(自我实现parseInt方法)

示例代码

3、算法水题(自己实现toBinaryString方法)

示例代码

4、算法水题(计算活了多少天)

①、JDK7

②、JDK8

5、算法水题(闰年判断)

①、JDK7

②、JDK8


一、游戏打包exe

游戏打包exe要考虑的因素:

游戏打包exe核心步骤:

详情见《打包exe文档》

二、Math

1、Math类的常用方法

①、代码实现

2、小结

3、练习

①、练习一:改进判断一个数是否为一个质数

代码实现:

②、练习二:自幂数

代码实现:

三、System

1、时间原点

计算机中的时间原点:1970年1月1日 00:00:00

中国由于时差,我们获取的时间是1970年1月1日 08:00:00

2、常用方法

3、课堂练习

4、注意事项

5、小结

四、Runtime

1、常用方法

2、练习

代码实现:

五、Object


1、Object的构造方法

2、Object的成员方法

代码实现:

①、toString()

②、equals()【大厂面试题】

③、clone() 【★】

④、深、浅克隆

实现对象克隆有两种方式:

  • 实现Cloneable接口( 该接口为标记接口,不含任何方法)并重写Object类中的clone()方法
  • 实现Serializable接口,通过对象序列化反序列化实现克隆,可以实现真正的深度克隆。

浅拷贝:

深拷贝:

小结:Object中的克隆方法是浅克隆方法

验证:

但是我们想要深克隆怎么办?【重写clone方法】

User.java

在以后我们进行克隆的时候,会使用一个第三方的克隆工具(Gson):

1、将第三方写的代码导入到项目中

2、编写代码

【tips 1】:

Gson是谷歌官方推出的支持 JSON 和Java对象相互转换的 Java序列化/反序列化库

Gson可以将对象序列化成JSON,也可以将JSON反序列化成对象,所以我们可以用它进行深拷贝

【参考资料】:

[1] 【Java基础】对象深克隆和浅克隆的原理及实现

⑤、小结

六、Objects

1、Objects的成员方法

代码实现:

2、小结

七、BigInteger

1、BigInteger构造方法

代码实现:

2、构造方法小结

3、BigInteger常见方法

代码实现:

4、BigInteger底层存储原理

5、BigInteger的存储上限

6、小结

八、BigDecimal

1、计算机中的小数

2、BigDecimal的构造方法

代码实现:

3、BigDecimal的常见方法

①、代码实现

②、RoundingMode(枚举)

4、BigDecimal底层存储方式

代码验证:

5、小结

九、正则表达式

1、正则的使用场景

正常代码书写:

正则书写:

2、正则表达式的作用

3、正则表达式的规则

①、字符类(只匹配一个字符)

代码实现:

②、预定义字符(只匹配一个字符)

代码实现:

③、数量词(可以匹配多个字符)

4、正则表达式基本练习

①、手机号、邮箱号、电话号

推荐插件:any-rule

②、身份证号

根据忽略大小写的语法对身份证号码的正则进行改写:

idea快捷键:Shift + Alt + ↑(将当前行移动到上一行)

5、小结

6、爬虫

①、本地爬虫

代码实现:

改进:(方法抽取)

②、网络爬虫

③、扩展练习

代码实现:

7、有条件的爬取数据

代码实现:

8、贪婪爬取和非贪婪爬取

9、正则表达式在字符串方法中的使用

10、分组

①、捕获分组正则内部练习

②、捕获分组正则外部练习

③、非捕获分组

可以不写

④、小结

十、JDK7以前的时间相关类

1、时间的相关知识点

那么现在原子钟成为了现在统一时间

2、Data类

①、时间类代码示例

②、练习:时间计算

代码实现:

③、小结

3、SimpleDateFormat类

①、SimpleDateFormat类构造方法

JDK文档中搜索SimpleDateFormat:

代码实现:

②、练习(按照指定格式展示)

③、练习(秒杀活动)

代码实现:(字符串本身是不能比较的,是需要先转换成Date类型)

④、小结

4、Calendar

①、Calendar的常用方法

代码实现:

另一种写法:

get方法:

set & add方法:

②、小结

十一、JDK8新增的时间相关类

1、为什么要学习JDK8新增的时间相关类呢?

2、JDK8时间相关类

①、ZoneId时区【Date类】

代码实现:

1、获取所有的时区名称

2、获取当前系统的默认时区

3、获取指定的时区

②、Instant时间戳【Date类】

代码实现:

1、获取当前时间的Instant对象(标准时间)

2、根据(秒/毫秒/纳秒)获取Instant对象

3、指定时区

当前时区的正确时间(已经加完了8小时)

4、isXxx判断

6、Instant minusXxx(long millisToSubtract) 减少时间系列的方法

③、ZoneDateTime带时区的时间【Date类】

代码实现:

④、DataTimeFormatter用于时间的格式化和解析【日期格式化类】

代码实现:

⑤、LocalDate(年月日)【日历类】

代码实现:

⑥、LocalTime(时分秒)【日历类】

代码实现:

计算时比较精确:(秒杀活动)

⑦、LocalDateTime【日历类】

⑧、Duration 时间间隔(秒、纳秒)【工具类】

代码实现:

⑨、Period 时间间隔(年、月、日)【工具类】

⑩、ChronoUnit (两个日期之间的间隔 所有单位) -- 最常用 【工具类】

⑪、小结

方法通性:

  • 获取当前时间:now
  • 获取指定时间:ofXxx
  • 修改当前时间:withXxx
  • 把当前的时间往前推:minusXxx
  • 把当前的时间往后加:plusXxx

十二、包装类

1、如何理解包装类?

2、获取Integer对象的方式(了解)

①、JDK5以前的方式

②、这两种方式获取对象的区别【掌握】

③、在以前包装类如何进行计算?

④、自动装箱和自动拆箱(JDK5)

⑤、小结

3、Integer成员方法

①、为什么Integer的返回值设计成String类型?

第一个原因:在int和long类型中,0无法开头

第二个原因:long和int类型是有长度限制的,以int类型为例:int类型最多能存放10位的数字,最大为2147483647

②、示例代码

③、键盘录入

十三、综合练习

1、键盘录入

示例代码

2、算法水题(自我实现parseInt方法)

示例代码

3、算法水题(自己实现toBinaryString方法)

示例代码

4、算法水题(计算活了多少天)

示例代码

①、JDK7

②、JDK8

5、算法水题(闰年判断)

示例代码

①、JDK7

但上述两种方式(计算毫秒值)还是比较麻烦,我们可以用Calendar类进行简化

②、JDK8

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

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

相关文章

微服务项目【商品秒杀接口压测及优化】

生成测试用户 将UserUtils工具类导入到zmall-user模块中,运行生成测试用户信息,可根据自身电脑情况来生成用户数量。 UserUtils: package com.xujie.zmall.utils;import com.alibaba.nacos.common.utils.MD5Utils; import com.fasterxml.j…

【黄啊码】我问ChatGPT如何学习PHP语言,它是这么说的

大家好,我是黄啊码,最近大家都在流行整chatGPT,今天它来了!别人都在吹嘘它万能,能够代替程序员写代码,今天我们就让它教教我们学习PHP语言: 黄啊码: 如何有效学习php语言&#xff1…

关于剩余电流动作继电器在配电系统中的应用探讨

摘 要:据了解,我国每年剩余电流动作继电器(RCD)的使用量超过2.7亿台,属于CCC认证产品,广泛应用于住宅、办公、商业、酒店、学校等民用建筑和数据中心及工业场所。 现在剩余电流动作继电器依据的标准是GB/T…

vue项目如何使用 SheetJS(xlsx)插件?

简言 SheetJS是一款非常好用的前端处理表格文件的工具。它分社区版和专业版,我们今天来介绍如何简单使用它的社区版。 SheetJS社区版官网 介绍 你应该打开官网浏览具体使用详情。 安装 打开官网在如上图的Installation板块中可以找到各种运行模块的使用方式。 …

MongoDB 覆盖索引查询

MongoDB 覆盖索引查询 官方的MongoDB的文档中对覆盖查询做了说明: 所有的查询字段是索引的一部分所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询…

【半监督医学图像分割 2023 CVPR】UCMT 论文翻译

文章目录【半监督医学图像分割 2023 CVPR】UCMT 论文翻译摘要1. 介绍2. 相关工作2.1 半监督学习2.2 半监督分割2.3 不确定性引导的半监督语义分割3. 方法3.1 问题的定义3.2 总览3.3 协作式均值教师3.4 不确定性指导混合4. 实验和结论5. 总结【半监督医学图像分割 2023 CVPR】UC…

webpack(4版本)使用

webpack简介:webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)。在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)…

sentinel持久化方案

一.sentinel规则推送原理 1.原有内存规则存储原理 (1)dashborad中请求到服务器后,在controller中通过http把规则直接推送给client,client接收后把规则放入内存; 2.持久化推送规则原理 ![在这里插入代码片](https://img-blog.csdnimg.cn/1…

质量保障体系建设演进案例

在业务早期发展阶段,主要是产品驱动、研发和测试互相配合。不同的测试方法是验证和保障交付质量的手段,而不是构建质量体系的基石。测试的努力带来的更多是一些“安全感”,而非安全保障。因此,要做到高质量的交付,就需…

k8s简单搭建

前言 最近学习k8s,跟着网上各种教程搭建了简单的版本,一个master节点,两个node节点,这里记录下防止以后忘记。 具体步骤 准备环境 用Oracle VM VirtualBox虚拟机软件安装3台虚拟机,一台master节点,两台…

Wails简介

https://wails.io/zh-Hans/docs/introduction 简介 Wails 是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。 将它看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能,结合丰富的现代前端,轻松的构建应用程序。 功能…

mac上安装mysql

mac上安装mysql1. 关于Linux上安装mysql2. 下载安装2.1 下载2.2 安装3. 客户端连接mysql3.1 先查看mysql服务3.2 连接mysql客户端3.2.1 终端使用命令连接3.2.2 可视化工具连接3.3 其他简单操作(启动服务等)3.3.1 可视化界面操作4. 配置环境变量4.1 配置环…

视图、索引、存储过程、触发器

视图、索引、存储过程、触发器 group by补充: 规范来说,分组查询中,select后的字段只能是group by的字段或者是聚合函数。mysql在这有一个小优化,分组后如果某个字段的所有记录相同,同样可以select。 视图 视图是虚拟…

一文详解java.nio.ByteBuffer

java.nio.ByteBuffer是一个可以进行缓冲区分配、读取和写入的缓冲区,其持有一个字节数组,并通过4个属性:capacity、limit、position、mark来管理缓冲区,进行字节级别读取和数据写入。基于此,ByteBuffer常被用来处理网络…

MySql数据库约束

概述、目的 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确性、有效性和完整性。 分类: 约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据都…

【闲聊杂谈】高并发下基于LVS的负载均衡

1、使用http协议进行网络请求 在前几年公布的用户入网数据中,移动入网的数量已经达到六七亿的规模,固网用户数也达到三至五个亿。想要解决这么大并发访问的场景,有多种的解决方案,常规有基于4层的,也有基于7层的。这个…

ChatGPT提示语编写指南

ChatGPT AI 对话模型自 2022 年 11 月下旬开始可用,此后用户一直在探索聊天机器人的局限性和功能。 然而,OpenAI 也在不断地进行调整,因此 ChatGPT 处于不断变化的状态。 但是我们在这个小指南中描述的提示应该是永恒的。 要获得想要的结果&…

SqlSession 和 SqlSessionTemplate 简单使用及注意事项

1、SqlSession 简单使用 先简单说下 SqlSession 是什么?SqlSession 是对 Connection 的包装,简化对数据库操作。所以你获取到一个 SqlSession 就相当于获取到一个数据库连接,就可以对数据库进行操作。 SqlSession API 如下图示:…

基于 CentOS7 的 KVM 部署 + 虚拟机创建

目录一、实验环境二、部署 KVM三、创建虚拟机四、远程管理 KVM 虚拟机FAQ一、实验环境 实验环境:VMware Workstation 16 Pro 打开虚拟机之前,首先开启 VMware Workstation Pro 16 上的硬件辅助虚拟化功能,如下图所示: 二、部署 …

Spring Cloud Gateway集成Nacos实现负载均衡

💡Nacas可以用于实现Spring Cloud Gateway中网关动态路由功能,也可以基于Nacos来实现对后端服务的负载均衡,前者利用Nacos配置中心功能,后者利用Nacos服务注册功能。接下来我们来看下Gateway集成Nacos实现负载均衡的架构图一. 环境…