Java常用API---快速达到Java工作水准系列(1)
目录
1.集合
2.包装类
3.日期处理以及格式化
4.字符串处理类
5.数组
5.BigDecimal
6.Math
1.集合
毋庸置疑,集合在实际项目的使用概率几乎是百分之百。无论是用于数据存储和管理、去重和查找亦或是数据检索和遍历,都离不开集合的使用。任何一个项目,都绕不开它。
你需要掌握的有:
包括List(ArrayList、LinkedList)、Map(HashMap、TreeMap)、Set(HashSet、TreeSet)
2.包装类
包装类(Wrapper classes)在Java中用于将基本数据类型转换为对象。这些类提供了一些方法和功能,使得基本数据类型能够像对象一样操作,也是Java集合框架中存储基本数据类型的必要组成部分。以下是包装类在实际工作中的几个常见用途:
-
在集合中存储基本数据类型:集合框架只能存储对象,而不能直接存储基本数据类型。包装类使得基本数据类型可以被存储在集合类(如
List
、Set
、Map
)中。 -
作为方法参数或返回值:有时候需要将基本数据类型传递给方法,但方法的参数类型只能是对象。这时可以使用包装类作为方法参数或返回值,从而将基本数据类型包装成对象。
-
处理与字符串之间的转换:包装类提供了与字符串之间的转换方法,可以方便地将字符串与基本数据类型之间进行转换。
-
处理数字和文本的格式化:包装类提供了格式化数字和文本的方法,可以将数字格式化为特定的字符串表示形式,或将字符串解析为数字。
-
实现泛型:在泛型中,只能使用对象类型,不能使用基本数据类型。包装类允许你在泛型中使用基本数据类型的封装对象。
-
比较数据:包装类提供了比较、判断相等等方法,可以对基本数据类型进行比较操作。
-
处理特定需求:有时候需要在对象中存储一些额外的信息,比如
Integer
类可以通过.intValue()
方法将其转换为整数。
以下是一些常见的包装类及其对应的基本数据类型:
Integer
对应int
Long
对应long
Float
对应float
Double
对应double
Boolean
对应boolean
Character
对应char
总的来说,包装类在实际工作中主要用于解决基本数据类型不能直接作为对象操作的问题,以及在集合、泛型和格式化等方面提供了更多的灵活性和功能。
3.日期处理以及格式化
日期处理和格式化在实际工作中非常常见,特别是在涉及时间、计划、日程等方面。在Java中,可以使用 java.util.Date
、java.time.LocalDate
、java.time.LocalDateTime
等类来处理日期和时间,同时可以使用 java.text.SimpleDateFormat
类来进行日期格式化和解析
最典型的是当在实体类中定义类似以Date类型的createTime或expireTime这样的属性时,我们往往会要求其以标准化的、字符串格式的时间进行输出,虽然如今已有相应的注解可以便捷我们的操作,但我们还是要会理解它的原理:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createTime;
4.字符串处理类
字符串处理类在实际工作中非常常见,因为字符串是编程中最常用的数据类型之一。Java提供了丰富的字符串处理类和方法,使得处理、操作和转换字符串变得更加便捷。以下是字符串处理类在实际工作中的一些常见用途:
-
文本操作和转换:使用字符串处理类可以进行文本的拼接、截取、替换、分割等操作。这对于处理用户输入、从文件中读取内容、处理文本数据等非常有用。
-
字符串格式化:格式化字符串以便于输出或显示。使用
String.format()
方法或者printf
格式化字符串可以根据需要插入变量、数字、日期等内容。 -
字符串比较和搜索:字符串处理类提供了比较字符串、查找子字符串、判断是否包含某个字符或子字符串等方法。这对于检查特定模式或内容的存在非常有用。
-
大小写转换:可以使用字符串处理类来将字符串转换为大写或小写形式,这对于搜索不区分大小写的内容或者统一输出格式很有帮助。
-
正则表达式匹配:使用正则表达式可以进行更复杂的字符串匹配和处理,例如搜索、替换、验证等操作。
-
字符串拼接性能优化:在大量字符串拼接时,使用
StringBuilder
或StringBuffer
可以提高性能,避免频繁创建字符串对象。 -
解析和生成 JSON、XML:在处理 JSON 或 XML 数据时,字符串处理类可以帮助你解析和生成这些格式的数据。
-
处理密码和敏感信息:在处理密码和敏感信息时,使用
String
类的不可变性质可以增加安全性,防止被篡改。 -
多语言支持:在多语言应用中,使用字符串处理类可以轻松地切换和管理不同语言的字符串资源。
总的来说,字符串处理类在各种应用中都发挥着重要作用,从基本的文本操作到复杂的模式匹配和格式化,都需要用到字符串处理类的功能。Java提供了丰富的字符串处理方法,根据具体需求选择合适的方法和类可以提高代码的可读性和效率。
5.数组
-
请求和响应数据处理:在Spring Boot的Web开发中,数组经常用于处理请求的参数和响应的数据。例如,当从前端传递多个参数时,这些参数通常被组织成数组,然后在后端进行解析和处理。
-
数据存储和操作:Spring Boot应用程序通常需要与数据库或其他数据源进行交互。在处理数据时,数组可以用来存储和操作一组数据,例如从数据库中检索一组记录。
-
集合类的操作:在Spring Boot中,使用数组可以对集合类(如列表、集合、映射等)进行操作,如转换、过滤、排序等。
-
配置属性管理:Spring Boot中的配置属性通常被组织成数组,例如处理多个配置值。你可以使用
@ConfigurationProperties
注解将数组配置属性映射到Java类中。 -
数据校验和转换:在处理用户输入或外部数据时,数组可用于存储和处理多个值,例如表单中的多选框值。
-
RESTful API的参数传递:在Spring Boot中,RESTful API可以使用数组来传递多个参数,例如查询参数、路径参数等。
-
数据分析和处理:如果你的Spring Boot应用涉及数据分析、报告生成或其他数据处理任务,数组可以用来存储和操作数据集。
-
日志处理:数组可用于存储和处理多个日志条目,例如存储异常堆栈跟踪信息。
-
前端交互:在与前端交互时,数组用于传递多个数据项,例如通过JSON格式传递给前端,或从前端接收多个选项值。
总之,Spring Boot应用程序中的数组在各个方面都有应用。它们用于数据存储、传递、操作和处理,有助于简化代码、提高效率,并为各种任务提供了一种高效的数据结构。在开发Spring Boot项目时,根据具体的场景和需求,合理地使用和处理数组是非常重要的
5.BigDecimal
BigDecimal
类通常用于处理需要高精度计算和避免浮点数精度问题的场景
货币计算:在金融领域,精确的货币计算是至关重要的。使用 BigDecimal
可以避免浮点数运算带来的精度问题。比如,在购物车结算中,计算总金额、优惠折扣等都可以使用 BigDecimal
。
税务计算:在涉及税务计算时,需要确保计算的精确性,以避免舍入错误。使用 BigDecimal
可以确保准确地计算税金。
订单金额计算:在处理订单金额时,通常需要进行多次计算,如商品价格、运费、税金等。使用 BigDecimal
可以保证精确的计算结果。
精确比较:使用 BigDecimal
可以进行精确的数字比较,避免浮点数比较带来的不准确性。
6.Math
java.lang.Math
类提供了许多数学计算相关的静态方法,用于处理各种数学运算。虽然 Math
类的方法主要涉及基本数学运算,但在实际工作中仍然有许多用途。以下是在Spring Boot项目中使用 Math
类的几个常见场景:
随机数生成:在游戏开发、随机数据生成和密码学等领域,需要生成随机数。Math.random()
方法可以生成介于0和1之间的随机浮点数。
取整和舍入:Math
类提供了取整和舍入的方法,例如 Math.round()
可以将一个浮点数四舍五入为最接近的整数。
数学运算:Math
类提供了基本的数学运算,如绝对值、幂运算、开方、对数、三角函数等。
最大值和最小值:可以使用 Math
类找到一组数字中的最大值和最小值。
总的来说,虽然 Math
类的方法是静态的且基本,但它在实际工作中仍然有许多应用。在Spring Boot项目中,你可能会在各种场景中用到 Math
类,从随机数生成到数学运算、舍入等。
相关文章:
Java常用API---快速达到Java工作水准系列(1)
目录 1.集合 2.包装类 3.日期处理以及格式化 4.字符串处理类 5.数组 5.BigDecimal 6.Math 1.集合 毋庸置疑,集合在实际项目的使用概率几乎是百分之百。无论是用于数据存储和管理、去重和查找亦或是数据检索和遍历,都离不开集合的使用。任何一个项…...

Python中使用隧道爬虫ip提升数据爬取效率
作为专业爬虫程序员,我们经常面临需要爬取大量数据的任务。然而,有些网站可能会对频繁的请求进行限制,这就需要我们使用隧道爬虫ip来绕过这些限制,提高数据爬取效率。本文将分享如何在Python中使用隧道爬虫ip实现API请求与响应的技…...

深入源码分析kubernetes informer机制(四)DeltaFIFO
[阅读指南] 这是该系列第四篇 基于kubernetes 1.27 stage版本 为了方便阅读,后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 client-go中的存储结构DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 总结 client-go中的存储结构…...

UI设计师个人工作总结范文
UI设计师个人工作总结范文篇一 感受到了领导们“海纳百川”的胸襟,感受到了作为广告人“不经历风雨,怎能见彩虹”的豪气,也体会到了重庆广告从业人员作为拓荒者的艰难和坚定(就目前国内广告业而言,我认为重庆广告业尚在发展阶段并…...
explicit关键字 和 static成员
explicit关键字 和 static成员 1、explicit 关键字2、static成员(静态成员变量属于类的(只有所属这个类的对象才能修改),不同于全局变量(任何对象都能修改))2.1 定义和性质2.2 静态成员的使用场…...

安装Linux操作系统CentOS 6详细图文步骤
为满足业务对Linux操作系统部署的要求,本文档主要提供CentOS 6操作系统的最小化安装和基本配置, 安装本系统建议最少1GB内存和2GB磁盘空间。 1、 使用光盘或者挂载ISO镜像,在出现如下图形界面时选择【Install or upgrade an existing system】并按Ent…...

新增守护进程管理、支持添加MySQL远程数据库,支持PHP版本切换,1Panel开源面板v1.5.0发布
2023年8月14日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.5.0版本。 在这个版本中,1Panel新增了守护进程管理功能;支持添加MySQL远程数据库;支持添加FTP/S和WebDAV的SFTP服务;支持PHP版本切换。此外&am…...

十、接口(1)
本章概要 抽象类和方法接口创建 默认方法多继承接口中的静态方法Instrument 作为接口 接口和抽象类提供了一种将接口与实现分离的更加结构化的方法。 这种机制在编程语言中不常见,例如 C 只对这种概念有间接的支持。而在 Java 中存在这些关键字,说明…...
percentile_approx 聚合函数
返回组内 expr 的百分位近似值。 此函数是 approx_percentile 聚合函数的同义词。 语法 percentile_approx ( [ALL | DISTINCT ] expr, percentile [, accuracy] ) [FILTER ( WHERE cond ) ] 还可以使用 OVER 子句将此函数作为窗口函数调用。 参数 expr:数值表达…...

面试热题(全排列)
给定一个不含重复数字的整数数组 nums ,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 先在这里说明一下排列和组合的区别? 组合:是指从一…...

一文走进时序数据库性能测试工具 TSBS
一、背景 在物联网、车联网等时序数据场景中,数据的高速写入能力至关重要,会对产品方案的可用性、可靠性和扩展性产生影响。 以物联网为例,当面临千万甚至上亿设备、平均每个设备采集几十个到几百个指标时,每秒生成的数据将达到…...
通俗讲解-动量梯度下降法原理与代码实例
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一.动量梯度下降法介绍 1.1 动量梯度下降法简介与思想 1.2 动量梯度下降法的算法流程 二.动量梯度下降法代码实例 2.1 动量梯度下降法实例代码 一.动量梯度下降法介绍…...

【【STM32-USART串口协议】】
STM32-USART串口协议 USART串口协议 •通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统 •通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 就是我们并不能在芯片上设计完全部的一下子完成所有的设计&…...
vue3.0组件通信
1、props 没有加TS限制类型的时候 1. 数组写法 defineProps([count, changCount]) 2. 对象写法 defineProps({count: Number,changCount: Function }) 3. 配置对象 defineProps({count: {type: Number,default: 2},changCount: {type: Function,required: true} })注意: defi…...
费曼学习法
费曼学习法 费曼学习法(Feynman Technique)是一种学习和理解复杂概念的方法,以理查德费曼(Richard Feynman)这位著名的理论物理学家命名。该方法的核心思想是通过将学习内容简化并用自己的话解释给别人,来…...
Kubernetes介绍和部署,使用
1.k8s kubernetes来自希腊语舵手,google, 8是ubernete 1.管理docker容器 go写的(并发) 2.用于微服务 3.cncf云原生基金会 2.mater(管理节点)和nodes(微服务节点) 3.部署 1.minikube kind官网在线测试语句 2.kubeadm(官方)(安装比较方便 添加) 3.github下载二进制包 4.yum(老) …...

视频汇聚平台EasyCVR视频监控播放平台WebRTC流地址无法播放的问题解决方案
开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…...
node.js 基础高并发案例
什么是高并发 高并发是指系统在同一时间段内需要处理大量的并发请求或同时进行大量的操作。在计算机领域中,高并发通常指的是在短时间内有大量的用户或客户端同时访问系统或进行操作,对系统的并发处理能力提出了较高的要求。 高并发的特点包括 大量的…...

OpenCV实例(八)车牌字符识别技术(二)字符识别
车牌字符识别技术(二)字符识别 1.字符识别原理及其发展阶段2.字符识别方法3.英文、数字识别4.车牌定位实例 1.字符识别原理及其发展阶段 匹配判别是字符识别的基本思想,与其他模式识别的应用非常类似。字符识别的基本原理就是对字符图像进行…...
svn文章五:问题排查与修复 - 出了问题怎么办?SVN故障排除与修复指南
文章五:问题排查与修复 - “出了问题怎么办?SVN故障排除与修复指南” 概述:在使用SVN时,难免会遇到一些问题和错误。在这篇文章中,我们将教您如何进行故障排查和修复,保护您的SVN仓库和数据安全。 1. 引言…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...