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集合框架中存储基本数据类型的必要组成部分。以下是包装类在实际工作中的几个常见用途:

  1. 在集合中存储基本数据类型:集合框架只能存储对象,而不能直接存储基本数据类型。包装类使得基本数据类型可以被存储在集合类(如 ListSetMap)中。

  2. 作为方法参数或返回值:有时候需要将基本数据类型传递给方法,但方法的参数类型只能是对象。这时可以使用包装类作为方法参数或返回值,从而将基本数据类型包装成对象。

  3. 处理与字符串之间的转换包装类提供了与字符串之间的转换方法,可以方便地将字符串与基本数据类型之间进行转换。

  4. 处理数字和文本的格式化:包装类提供了格式化数字和文本的方法,可以将数字格式化为特定的字符串表示形式,或将字符串解析为数字。

  5. 实现泛型:在泛型中,只能使用对象类型,不能使用基本数据类型。包装类允许你在泛型中使用基本数据类型的封装对象。

  6. 比较数据:包装类提供了比较、判断相等等方法,可以对基本数据类型进行比较操作。

  7. 处理特定需求:有时候需要在对象中存储一些额外的信息,比如 Integer 类可以通过 .intValue() 方法将其转换为整数。

以下是一些常见的包装类及其对应的基本数据类型:

  • Integer 对应 int
  • Long 对应 long
  • Float 对应 float
  • Double 对应 double
  • Boolean 对应 boolean
  • Character 对应 char

总的来说,包装类在实际工作中主要用于解决基本数据类型不能直接作为对象操作的问题,以及在集合、泛型和格式化等方面提供了更多的灵活性和功能。

3.日期处理以及格式化

日期处理和格式化在实际工作中非常常见,特别是在涉及时间、计划、日程等方面。在Java中,可以使用 java.util.Datejava.time.LocalDatejava.time.LocalDateTime 等类来处理日期和时间,同时可以使用 java.text.SimpleDateFormat 类来进行日期格式化和解析

最典型的是当在实体类中定义类似以Date类型的createTime或expireTime这样的属性时,我们往往会要求其以标准化的、字符串格式的时间进行输出,虽然如今已有相应的注解可以便捷我们的操作,但我们还是要会理解它的原理:

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createTime;

4.字符串处理类

字符串处理类在实际工作中非常常见,因为字符串是编程中最常用的数据类型之一。Java提供了丰富的字符串处理类和方法,使得处理、操作和转换字符串变得更加便捷。以下是字符串处理类在实际工作中的一些常见用途:

  1. 文本操作和转换:使用字符串处理类可以进行文本的拼接、截取、替换、分割等操作。这对于处理用户输入、从文件中读取内容、处理文本数据等非常有用。

  2. 字符串格式化:格式化字符串以便于输出或显示。使用 String.format() 方法或者 printf 格式化字符串可以根据需要插入变量、数字、日期等内容。

  3. 字符串比较和搜索:字符串处理类提供了比较字符串、查找子字符串、判断是否包含某个字符或子字符串等方法。这对于检查特定模式或内容的存在非常有用。

  4. 大小写转换:可以使用字符串处理类来将字符串转换为大写或小写形式,这对于搜索不区分大小写的内容或者统一输出格式很有帮助。

  5. 正则表达式匹配:使用正则表达式可以进行更复杂的字符串匹配和处理,例如搜索、替换、验证等操作。

  6. 字符串拼接性能优化:在大量字符串拼接时,使用 StringBuilderStringBuffer 可以提高性能,避免频繁创建字符串对象。

  7. 解析和生成 JSON、XML:在处理 JSON 或 XML 数据时,字符串处理类可以帮助你解析和生成这些格式的数据。

  8. 处理密码和敏感信息:在处理密码和敏感信息时,使用 String 类的不可变性质可以增加安全性,防止被篡改。

  9. 多语言支持:在多语言应用中,使用字符串处理类可以轻松地切换和管理不同语言的字符串资源。

总的来说,字符串处理类在各种应用中都发挥着重要作用,从基本的文本操作到复杂的模式匹配和格式化,都需要用到字符串处理类的功能。Java提供了丰富的字符串处理方法,根据具体需求选择合适的方法和类可以提高代码的可读性和效率。

5.数组

  1. 请求和响应数据处理:在Spring Boot的Web开发中,数组经常用于处理请求的参数和响应的数据。例如,当从前端传递多个参数时,这些参数通常被组织成数组,然后在后端进行解析和处理。

  2. 数据存储和操作:Spring Boot应用程序通常需要与数据库或其他数据源进行交互。在处理数据时,数组可以用来存储和操作一组数据,例如从数据库中检索一组记录。

  3. 集合类的操作:在Spring Boot中,使用数组可以对集合类(如列表、集合、映射等)进行操作,如转换、过滤、排序等。

  4. 配置属性管理:Spring Boot中的配置属性通常被组织成数组,例如处理多个配置值。你可以使用@ConfigurationProperties注解将数组配置属性映射到Java类中。

  5. 数据校验和转换:在处理用户输入或外部数据时,数组可用于存储和处理多个值,例如表单中的多选框值。

  6. RESTful API的参数传递:在Spring Boot中,RESTful API可以使用数组来传递多个参数,例如查询参数、路径参数等。

  7. 数据分析和处理:如果你的Spring Boot应用涉及数据分析、报告生成或其他数据处理任务,数组可以用来存储和操作数据集。

  8. 日志处理:数组可用于存储和处理多个日志条目,例如存储异常堆栈跟踪信息。

  9. 前端交互:在与前端交互时,数组用于传递多个数据项,例如通过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 类,从随机数生成到数学运算、舍入等。

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

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

相关文章

Spring Cloud Gateway系例—参数配置(CORS 配置、SSL、元数据)

一、CORS 配置 你可以配置网关来控制全局或每个路由的 CORS 行为。两者都提供同样的可能性。 1. Global CORS 配置 “global” CORS配置是对 Spring Framework CorsConfiguration 的URL模式的映射。下面的例子配置了 CORS。 Example 77. application.yml spring:cloud:gat…

【【STM32----I2C通信协议】】

STM32----I2C通信协议 我们会发现I2C有两根通信线: SCL和SDA 同步 半双工 带数据应答 支持总线挂载多设备(一主多从,多主多从) 硬件电路 所有I2C设备的SCL连在一起,SDA连在一起 设备的SCL和SDA均要配置成开漏输出模式 …

5.Vue_Element

文章目录 1 Ajax1.1 Ajax介绍1.1.1 Ajax概述1.1.2 Ajax作用1.1.3 同步异步 1.2 Axios1.2.1 Axios的基本使用1.2.2 Axios请求方法的别名 2 前端工程化2.1 前端工程化特点2.2 Vue项目开发流程 3 Vue组件库Element3.1 Element介绍 1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 Ajax: 全…

【Unity游戏开发】基于前缀树的红点系统构思与客户端方案

一、前言 前段时间负责了项目中红点系统的实现,和大家分享一下初期是设计思路 红点系统客户端业务的一般实现过程与方式: 数据管理:首先要在客户端建立一个数据管理系统,用于存储和管理各个业务模块的红点状态。可以是一个中央数据管理器或模块化的数据管理系统,具体根据游…

VUE中babel.config.js配置按需引入

VUE中babel.config.js配置 vue/cli-plugin-babel/preset是一款 babel 插件,它会在编译过程中将 import 引入自动转换为按需引入的方式。 module.exports {presets: [vue/cli-plugin-babel/preset],plugins: [[import, {libraryName: element-ui,libraryDirectory…

系统架构设计师---多媒体技术及其应用

概念 媒体:承载信息的载体。 多媒体:数字、文字、声音、图形、图像和动画等各种媒体的有机组合,并与先进的计 算机、通信和广播电视技术相结合,形成一个可组织、存储、操纵和控制多媒体信息的集成环境和 交互系统。 多媒体技术:以数字化为基础,能够对多…

召集令:CloudQuery 社区有奖征文活动来啦!

CloudQuery 社区第一期征文活动来袭!!!只要你对 CloudQuery 产品感兴趣,或者是希望了解 CQ ,都可以来参加,在本期活动中,我们也为大家准备了多种主题供你选择,CQ 使用案例、版本对比…

udp与can通信的选择与比较

UDP(用户数据报协议)和CAN(控制器局域网)是两种不同的通信协议,它们在实时传递性上有一些区别。 UDP是一种无连接的传输协议,它提供了简单的、不可靠的数据传输。UDP不提供可靠性保证、流控制或重传机制。…

EMO实战:使用EMO实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam安装einops 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译:https://blog.csdn.net/m0_47867638/article/details/132034098?spm1001.2014.3001.5501 官方源码:https://github.com/…

shell的两种属性: 交互(interactive)与登录(login)

1. 背景 在看shell变量的时候引起了兴趣: 局部变量,全局变量,环境变量,shell的配置文件,参考博客: http://c.biancheng.net/view/773.html 2. 交互式与非交互式 参考博客: shell的两个属性:是否交互式(interactive), 是否登录…

生产环境下的终极指南:使用 Docker 部署 Nacos 集群和 MySQL

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

01-集群安装JDK(普通用户)

机器部署 集群规划 我们准备三台服务器kk01、kk02、kk03,内存4G、硬盘50G、处理器4核心2内核(总8) kk01使用 192.168.188.128 kk02使用 192.168.188.129 kk03使用 192.168.188.130 模板机准备 我们先创建一台作为模板机,后…

C++ 11 新特性 学习笔记

1、字符串原始字面量 R“()”用于取消转义,可用于路径表示 运行成功 这两个RawValue起到描述作用(可以不写),并不参与输出 注意,这里输出中文乱码 2、nullptr NULL在C中表示0,在非C中表示万能指针 nullpt…

Vue3 使用json编辑器

安装 npm install json-editor-vue3 main中引入 main.js 中加入下面代码 import "jsoneditor";不然会有报错&#xff0c;如jsoneditor does not provide an export named ‘default’。 图片信息来源-github 代码示例 <template><json-editor-vue class…

SQL | 分组数据

10-分组数据 两个新的select子句&#xff1a;group by子句和having子句。 10.1-数据分组 上面我们学到了&#xff0c;使用SQL中的聚集函数可以汇总数据&#xff0c;这样&#xff0c;我们就能够对行进行计数&#xff0c;计算和&#xff0c;计算平均数。 目前为止&#xff0c…

ESP-C3入门21. I2C接口点亮1306驱动的OLED屏

ESP-C3入门21. 点亮1306驱动的OLED屏 一、Espressif/ssd1306 驱动简介1. 驱动介绍2. OLED充电泵概念 二、I2C 通讯步骤1. 初始化 I2C 总线 (i2c_master_init()函数)&#xff1a;2. 创建 I2C 命令句柄 (i2c_cmd_handle_t cmd i2c_cmd_link_create())&#xff1a;3. 发送启动信号…

【C#】获取电脑CPU、内存、屏幕、磁盘等信息

通过WMI类来获取电脑各种信息&#xff0c;参考文章&#xff1a;WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客 自己整理了获取电脑CPU、内存、屏幕、磁盘等信息的代码 #region 系统信息/// <summary>/// 电脑信息/// </summary>public p…

flinksql报错 Cannot determine simple type name “org“

flink版本 1.15 报错内容 2023-08-17 15:46:02 java.lang.RuntimeException: Could not instantiate generated class WatermarkGenerator$0at org.apache.flink.table.runtime.generated.GeneratedClass.newInstance(GeneratedClass.java:74)at org.apache.flink.table.runt…

低功耗、5Mbps、RS-422 接口电路MS2583/MS2583M

MS2583/MS2583M 是一款低功耗、 5Mbps 、高 ESD 能力的 RS422 通讯接口电路。 在接收状态下&#xff0c;其功耗仅为 0.3mA 左右。 A/B 端 ESD 耐压可达 15kV &#xff0c;且无自激现象。当输出短路发生大电 流导致电路温度过高时&#xff0c;开启内部过温保护电路&…

go 使用 make 初始化 slice 切片使用注意

go 使用 make 初始化 slice 切片 时指定长度和不指定长度的情况 指定长度 package mainimport "fmt"func main() {s1 : make([]int, 5)data : []int{1, 2, 3}for _, v : range data {s1 append(s1, v)}fmt.Println(s1) }// 以上代码会输出 // [0 0 0 0 0 1 2 3] //…