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对应intLong对应longFloat对应floatDouble对应doubleBoolean对应booleanCharacter对应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. 引言…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
