![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 53
loveLifeLoveCoding
这个作者很懒,什么都没留下…
展开
-
单测使用 mock 如何解决使用 @Value 注解注入的属性
在编写单元测试时,在不启动容器的条件下,如何对这种属性进行mock?原创 2024-07-10 16:58:38 · 208 阅读 · 0 评论 -
java 取 list 对象中取某个字段值的最大值
【代码】java 取 list 对象中取某个字段值的最大值。原创 2024-07-01 15:24:17 · 98 阅读 · 0 评论 -
Java 内存分页
例:12条数据,pageSize10, 最后一页虽然 limit10 ,但扔返回预期数值2。4. 当最后一页不够 pageSize, limit(pageSize) 返回实际条数。3. 当分页数超过总数,返回空集合。例:总数10,页码2,pagesize10。2. 根据 stream 流进行分页。1. 查询出要分页的总数。原创 2024-06-28 10:33:38 · 293 阅读 · 0 评论 -
实战:设计模式之责任链设计模式深度解析
相信大家都有做过表单校验的工作,假如此时需要做一个登陆校验(用户名、密码、验证码),首先肯定是校验用户名,校验通过则进入下一步校验密码,否则提示用户,校验密码用过,则校验验证码,否则提示用户,表单全部校验通过,才开始提交到后台。2. 如果此时我想更改关卡的顺序,比如将第 3 关放到第 1 关,第 4 关放到第 2 关,每次更改关卡的顺序非常不便,而且更改关卡的顺序,对应关卡的逻辑也要跟着一起改变位置,非常麻烦,而且容易改出问题。或者说,当你的代码中出现这种情况的时候,你也可以考虑通过责任链设计模式来改进。转载 2023-03-05 15:45:30 · 443 阅读 · 0 评论 -
SimpleDateFormat 格式化日期
日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串。白话文的讲:这些A——Z,a——z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。日期和时间模式(注意大小写,代表的含义是不同的)获取指定时间的 时间戳。转载 2022-10-23 14:57:05 · 1022 阅读 · 0 评论 -
高并发性能指标:QPS、TPS、RT、吞吐量
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。响应时间RT(Response-time),是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数-导致资源的竞争,超过最佳线程数-响应时间递增。在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。转载 2022-09-11 19:07:21 · 1952 阅读 · 0 评论 -
log4j2.xml 获取当前系统属性
支持多种方式动态读取配置, 下面写几个我用过的示例:1. bundle:${bundle:BundleName:BundleKey}bundle: 固定前缀, 标识读取配置文件BundleName: 配置文件名(如application.properties)BundleKey: 配置keyeg:${bundle:application:log.path}从application.properties中读取key为log.path的值, yml文件是否支持不太清楚, 自己尝试下..原创 2022-08-25 14:44:40 · 1278 阅读 · 0 评论 -
jdk 新特性介绍
在 Java 8 中,Function 接口是一个函数接口,它位于包 java.util.function 下。Function 接口中定义了一个 R apply(T t) 方法,它可以接受一个泛型 T 对象,返回一个泛型 R 对象,即参数类型和返回类型可以不同。Java 8 Function 函数接口 | 未读代码。转载 2022-08-22 21:23:22 · 74 阅读 · 0 评论 -
解压修改jar包后运行报错:Unable to open nested entry ‘BOOT-INF/lib/**.jar‘. It has been compressed
打部署jar包后,使用winwar解压工具,替换了lib里面的一个引用包,报这个错:Unable to open nested entry 'BOOT-INF/lib/**.jar'. It has been compressed这是说这个jar包访问失败,错误原因是,使用winrar或者7zip解压工具,点开后修改lib内的第二层jar包,修改后重新保存的时候,对lib内的jar包进行了重复压缩,所以访问不到。 重新打正确引用的包修改第一层的配置文件可以继续使用解压修改jar包后运行报错:Unable转载 2022-07-10 23:38:42 · 1969 阅读 · 0 评论 -
java两个List的交集,并集
使用apache的CollectionUtils工具类(推荐)转载 2022-06-02 15:06:05 · 1545 阅读 · 0 评论 -
Java stream使用流进行多字段排序
在开发过程中我们经常会遇到根据对象中不同字段的值进行排序,也就是我们常说的多字段排序。在中我们可以使用流很便捷的进行排序。下面我将以年龄和班级两个字段的值来演示使用流进行多字段排序的操作。1.3 字段排序1.3.1 单个字段排序根据年龄升序排序 根据年龄降序排序 先以年龄升序,相同年龄的对班级进行升序年龄升序,班级升序 年龄降序,班级升序 年龄降序,班级降序年龄升序,班级降序 如果只进行单个字段的升序降序排列,我们使用 或者 都可以如果要进行多个字段的升转载 2022-06-02 15:00:44 · 707 阅读 · 0 评论 -
JAVA把InputStream 转 字节数组(byte[])
1. 引入依赖<!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4<转载 2021-12-26 19:06:08 · 7744 阅读 · 4 评论 -
Java检查字符串是否包含中文字符
/*判断字符串中是否仅包含字母数字和汉字*各种字符的unicode编码的范围:*汉字:[0x4e00,0x9fa5](或十进制[19968,40869])* 数字:[0x30,0x39](或十进制[48, 57])*小写字母:[0x61,0x7a](或十进制[97, 122])*大写字母:[0x41,0x5a](或十进制[65, 90])*/public static boolean isLetterDigitOrChinese(St...转载 2021-12-26 18:55:19 · 14400 阅读 · 1 评论 -
判断 Map 是否为空
第一步:导入依赖包 <!--tools--> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> </dependency> <dep转载 2021-12-26 18:46:00 · 558 阅读 · 0 评论 -
Dom4j 解析 xml
引入依赖 <!-- dom4j --> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version></dependency>xml 例子<CertAuth> <success>true</原创 2021-08-13 15:28:12 · 110 阅读 · 0 评论 -
Druid连接池配置详解
什么是DruidDruid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等Druid配置过程加入maven依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-sprin转载 2021-08-13 14:42:16 · 13421 阅读 · 0 评论 -
读取本地文件转化成MultipartFile
介绍现在有个上传文件功能,需要将文件上传到oss上,但是文件有点多,于是使用接口进行上传。但是需要上传文件转换为MultipartFile类型文件进行上传。上传文件代码 @RequestMapping(value = "up") public String upFile() { ExecutorService fixedThreadPool = Executors.newFixedThreadPool(10); String filepath = "D:转载 2021-08-13 14:27:19 · 4641 阅读 · 1 评论 -
java 手机号 邮箱 身份证 信息脱敏
需求邮箱第一个字符和’@‘之后的原文显示,第一个字符之后’@‘之前的,显示为’****’ 电话号码,前面3位,后面4位显示原文,中间的显示为’****’实现 public static void main(String[] args) { String email = "zhangnero@163.com"; System.out.println("原邮箱: " + email); email = email.replaceAll("(.原创 2021-07-19 11:18:01 · 2478 阅读 · 0 评论 -
httpclient、hutool(发送HTTP请求)
使用 hutool <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.5.16</version> </dependency>使用 cn.hutool.http.HttpRe转载 2021-05-26 09:40:53 · 3192 阅读 · 0 评论 -
java 异常捕捉 ( try catch finally )
参考链接:http://www.blogjava.net/fancydeepin/archive/2012/07/08/java_try-catch-finally.html前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit() 方法怎么处理?当 catch 和 finally 体里同时遇上 return 怎么办?相信你在处理异常的时候不是每次都把它.转载 2021-05-19 09:28:16 · 102 阅读 · 0 评论 -
@DateTimeFormat 和 @JsonFormat 注解
转载:https://blog.csdn.net/zhou520yue520/article/details/813489261. 准备定义一个pojo,它有一个 java.util.Date 类型的属性 date。import java.util.Date; public class DateVo { private Date date; public void setDate(Date date){ this.date = date; }转载 2021-05-14 09:24:12 · 97 阅读 · 0 评论 -
LocalDateTime用法
前言最近看别人项目源码,发现Java8新的日期时间API很方便强大,所以转载该入门介绍博客,记录一下。使用新时间日期API的必要性在java8以前,或许:当你在做有关时间日期的操作时,你会想到用Date; 当你在做日期、月份、天数相加减时,你会想到用Calendar; 当你需要对时间日期进行格式化时,你会想到使用SimpleDateFormat或DateFormat下的其他子类; ……但是,你必须知道,以上有关的时间日期操作对象,都是可变的、线程不安全的,同时,如果作为一个经常写过类转载 2021-05-12 09:27:53 · 2363 阅读 · 0 评论 -
EasyExcel导出添加水印(设置背景,非插入图片的方式)
引言本文添加水印通过java生成图片,设置为excel背景图片实现。不仅仅局限于EasyExcel,凡是采用POI实现都可以采用该方案,但唯一的局限在于必须使用POI中的XSSFWorkbook对象,也就是对应Excel2007的版本,扩展名是.xlsx,具体实现可查看以下代码。maven依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel<转载 2021-04-09 20:38:34 · 4005 阅读 · 1 评论 -
Java为 pdf、word和excel添加水印
1. 引入依赖 <!--easyexcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version> </dependency&转载 2021-04-09 16:59:00 · 1241 阅读 · 0 评论 -
HttpClient发送Post请求————StringEntity 和 UrlEncodedFormEntity 的区别
apache的httpclient,在实现带参数的post请求的时候看到有两个entity可以作为参数首先说StringEntityStringEntity extends AbstractHttpEntity implements Cloneable继承于AbstractHttpEntity类,这个类做参数的时候设置比较灵活,通过类的构造方法可以看到有两个参数,一个是具体的参数值(string串),另一个是ContentType,通过重写的构造方法看到,当不指定ContentType时默认的转载 2021-01-06 16:05:04 · 891 阅读 · 0 评论 -
alibaba / fastjson 常用转换
获取方式maven 引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version></dependency>直接下载https://search.maven.org/remote_content?g=com.alibaba&原创 2021-01-06 15:55:58 · 275 阅读 · 0 评论 -
HttpClient工具类
1. 什么是HttpClientHTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是Apache HttpComponents 下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP 协议的客户端编程工具包,并且它支持 HTTP .转载 2020-12-31 21:38:21 · 142 阅读 · 0 评论 -
Java socket详解
一:socket通信基本原理。首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。如上图,在七个层级关系中,我们将的socket属于传输层,其中UDP是一种面向无连接的传输层协议。UDP不关心对端是否真正收到了传送过去的数据。如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用在分组数据较少或多播、广播通信以及视频通信等多媒体领域。在这里我们不进行详细讨论,这里主要讲解的是基于TCP/IP协议下的s.转载 2020-12-31 21:25:18 · 1098 阅读 · 0 评论 -
Java网络(Socket编程)
网络编程指的是编写跨多个设备(计算机)执行的程序,设备使用网络彼此连接。J2SE API的java.net包中包含一组类和接口,它们提供低级别的通信详细信息,开发者可编写专注于解决手头问题的程序。java.net包提供对两种常见网络协议的支持 -TCP - TCP代表传输控制协议,它允许两个应用程序之间的可靠通信。TCP通常用于Internet协议,称为TCP/IP。 UDP - UDP代表用户数据报协议,这是一种无连接协议,允许在应用程序之间传输数据包。本章为这两个协议准备了两个示例,转载 2020-12-31 21:11:44 · 180 阅读 · 0 评论 -
日期格式化使用 YYYY-MM-dd 的潜在问题
问题表现import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public static void dateBug() { SimpleDateFormat df1 = new SimpleDateFormat("YYYY-MM-dd"); SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM转载 2020-12-31 15:39:58 · 403 阅读 · 1 评论 -
Java如何创建不存在的指定路径的文件
实际应用中,要在指定位置创建一个文件,但文件及文件之前的目录都不存在,此时可用以下方法进行创建。File f = new File("I:" + File.separator + "a" + File.separator + "b" + File.separator + "test.txt");if (!f.getParentFile().exists()) { //判断父目录路径是否存在,即test.txt前的I:\a\b\ try { f.getParentFile()转载 2020-12-26 22:14:14 · 801 阅读 · 0 评论 -
Java 创建多级目录
创建单级目录 mkdir()创建多级目录 mkdirs()实例:File dir = new File("E:/a/b/c/d/e");if(!dir.exists()) { dir.mkdirs(); System.out.println("创建目录成功");}原创 2020-12-26 22:02:01 · 2164 阅读 · 0 评论 -
java Runtime.exec方法详解
在做一个项目时用到了Runtime.exec(String command),但是网上的很多博客讲解的都很不详细明白,也不全,干脆我自己来做一个讲解。我们先来看看api的解释:从字面上理解的意思就是在单独打开一条线程执行指定的命令。当然,这个方法有多个重载,如下:下面会讲到其它的重载方法,不急。想到api的解释我第一时间想到的就是cmd命令行!因为确实有些相似,但是转念一想又不对,“在单独的进程中执行指定的字符串命令”不就是这玩意儿吗!然后我分别测试了这几个命令“..转载 2020-12-19 21:30:46 · 2029 阅读 · 2 评论 -
java使用ssl协议发送邮件,出现 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcep
网上找了一大圈,大部分都是让安装证书,或者忽略ssl加密都是比较繁琐的后来找到一种方式,3行代码就可以解决这个问题oracle官网解释:https://www.oracle.com/java/technologies/javamail-sslnotes.html最方便的解决方式MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); // or // sf原创 2020-10-22 21:34:03 · 3041 阅读 · 2 评论 -
List集合转字符串,并去除前后中括号
1. List集合去重import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;public class Stream { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("a");原创 2020-07-25 15:22:15 · 6921 阅读 · 1 评论 -
com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 0 报错解决方案
把json对象装换成对象时,调用该JSONObject.parseObject(String text, Class<T> clazz); 方法传入字符串为String text = "{\"content\":\"测试内容\",\"topic\":\"测试主题\"}";结果报如下错误Caused by: com.alibaba.fastjson.JSONEx...原创 2020-03-17 18:11:44 · 7748 阅读 · 0 评论 -
JUnit测试多线程
单元测试是不支持多线程的,主线程结束之后,不管子线程有没有结束,都会强制退出。但是我们可以通过控制主线程结束的时间来做多线程测试.在JUnit的@Test方法中启用多线程,新启动的线程会随着@Test主线程的死亡而死亡!导致没有任何输出解决方法:在@Test方法中每创建一个线程,就join一下,这样我们新建的线程不死亡,Test主线程也不会死亡。 通过主线程休眠足够长的时间来等待子线...转载 2020-03-04 17:01:15 · 1062 阅读 · 0 评论 -
java Response输出流下载文件不显示中文
用Response输出流下载文件不显示中文,全部是 _____代替解决方案:resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));也就是把文件名经过url编码URLEncoder.encode(filename, "UTF-8")...原创 2020-01-04 17:08:20 · 1111 阅读 · 0 评论 -
imap与pop3的区别
1、IMAP提供Webmail 与电子邮件客户端之间的双向通信,客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上(如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。)。而POP3在客户端的操作不会反馈到服务器上。2、IMAP更好地支持了从多个不同设备中随时访问新邮件。3、IMAP...转载 2019-12-28 20:46:24 · 2800 阅读 · 0 评论 -
JavaMail 使用IMAP协议接收并解析电子邮件
package org.yangxin.study.jm; import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Properties; import javax.mail.Flags.Flag;import javax.mail.Folder;import javax.ma...转载 2019-12-28 20:44:43 · 2464 阅读 · 2 评论