![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java知识积累
文章平均质量分 59
modelsetget
路漫漫其修远兮,吾将上下而求索。生命不止,学无止境。
展开
-
ThreadLocal使用的场景有哪些?
关于ThreadLocal及其变体的详细介绍、使用场景、原理分析、内存管理以及它们在实际开发中的应用和注意事项。原创 2024-07-13 17:20:11 · 400 阅读 · 0 评论 -
CompletableFuture是靠什么提升性能的?
文章提供了对Future和CompletableFuture的深入分析,并通过实际代码示例展示了其性能提升效果。原创 2024-07-13 17:07:00 · 272 阅读 · 0 评论 -
使用JDK17是趋势,拥抱他无疑!
jdk17那么多新特性,你确定不用下!原创 2024-07-10 10:17:08 · 273 阅读 · 0 评论 -
Cookie、Session、Token、JWT 概念与区别
Cookie和Session是传统的会话管理机制。Token和JWT提供更灵活和安全的身份验证和授权机制,适用于分布式系统。JWT作为Token的一种实现,具有高可移植性和可扩展性。原创 2024-07-09 14:46:02 · 241 阅读 · 0 评论 -
动态线程池的设置实践
动态线程池的核心要点原创 2024-07-05 14:23:19 · 255 阅读 · 0 评论 -
后端接口设计考虑要点
接口设计的关键点,包括参数校验、扩展性、幂等性、日志打印、线程池隔离、异常处理、异步处理、查询优化、限流、安全性、锁粒度控制和避免长事务原创 2024-07-05 11:23:02 · 424 阅读 · 0 评论 -
JDK21 | 借鉴了近十种语言,String终于变好用了
JDK21 字符串模板特性详尽笔记原创 2024-07-04 16:17:17 · 364 阅读 · 0 评论 -
详细对比Java SPI、Spring SPI 和 Dubbo SPI
SPI机制的基本概念、Java SPI、Spring SPI和Dubbo SPI的具体实现方式及优缺点。原创 2024-07-04 14:42:33 · 516 阅读 · 0 评论 -
UUID和自增ID做主键到底哪个好?
选择UUID还是自增ID作为主键,应根据应用的具体需求和场景来决定。如果应用场景需要高度的唯一性和分布式环境,UUID可能是更好的选择。如果应用场景更注重查询效率和数据展示的便捷性,自增ID可能更合适。原创 2024-07-03 11:24:43 · 253 阅读 · 0 评论 -
Jackson库使用教程
这份笔记涵盖了Jackson库的基本概念、优势、使用入门以及常用API的使用方法,适合作为开发人员学习和参考的资料。原创 2024-07-03 10:31:39 · 666 阅读 · 0 评论 -
枚举(Enum)在Java中的理解与使用
枚举不仅仅是简单的常量集合,它们是功能丰富的类,可以实现多种设计模式和编程技巧。原创 2024-07-03 10:18:50 · 328 阅读 · 0 评论 -
零拷贝技术 Zero-Copy
整理了零拷贝技术的基本概念、实现方式、应用场景以及在Java NIO、Linux内核、Kafka和Netty中的实现细节。原创 2024-07-02 17:28:37 · 248 阅读 · 0 评论 -
Jdk17是否有可能代替 Jdk8
对JDK新版本的全面概览,适合Java开发者了解最新技术趋势和准备技术升级。原创 2024-07-02 17:22:22 · 295 阅读 · 0 评论 -
使用 HTTPS 已成为网站的标配了
对HTTPS的全面了解,强调了HTTPS在提高网站安全性方面的重要性原创 2024-07-02 14:48:55 · 554 阅读 · 0 评论 -
避而不见!BigDecimal的四大坑
与 double 和 float 不同的是,BigDecimal 对象在计算的过程中不会丢失精度,真的是这样嘛原创 2024-06-27 15:13:09 · 481 阅读 · 0 评论 -
google aviator:Java逻辑公式引擎
背景在我们的业务场景中有一个需求,我们有一个配置功能,该功能需要配置两个变量之间比较大小。使用tab比较难表达,所以就提出了,可以让用户写比较简单的函数进行配置。或者选tab进行选择(前段直接将对应的tab字符串拼接来给后端执行)。或者这么说吧,可以通过字符串的表达的意思,进行执行这个字符串的索要表达的逻辑,且这个逻辑和这个字符串可以自定义。Aviator简介Aviator是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。现在已经有很多开源可用的jav原创 2021-03-25 16:33:15 · 1778 阅读 · 0 评论 -
mybatis trim 简单使用
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。suffix:在trim标签内sql语句加上后缀。suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。prefixOverrides:指定去除多余的前缀内容例如:..原创 2020-11-19 10:56:34 · 983 阅读 · 0 评论 -
视频图像处理 ffmpeg 使用
java ffmpeg 使用示例private void outputMp4() { String fileName = UUID.randomUUID().toString().replaceAll("-", "") + ".mp4"; log.info("录屏文件上传到文件服务器开始,文件名:{}", fileName); try { BufferedImage img = ImageIO.read(videos.get(0)原创 2020-10-28 13:04:57 · 713 阅读 · 0 评论 -
做自动化项目的感想
自动化 顾名思义 就是模拟用户的操作, 可能有误,但在软件层面上就是这样, 不然怎么算自动化,简而易见,就是不通过用户的手,而由程序去进行模拟用户的操作。 现在我们用的还是web端的, 用了selenium grid, selenium grid 是一个简单的一个实现调用不同浏览器进行网站的操作, 普通的有通过 xpath 定位, ID标签定位等。 编辑好操作的步骤,调用浏览器进行模拟用户操作,完成一序列的测试。主用用于 测试,由机器根据操作步骤进行操作,完成一序列的操作。...原创 2020-09-10 15:54:23 · 173 阅读 · 0 评论 -
Java Stream 流基本介绍
Stream系列:Java 8系列之Stream的基本语法详解Java 8系列之Stream的强大工具CollectorJava 8系列之重构和定制收集器Java 8系列之Stream中万能的reduce概述继Java 8系列之Lambda表达式之后,我们来了解Stream。Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操...转载 2019-11-24 20:17:48 · 221 阅读 · 0 评论 -
JVM 类加载面试题详解
面试题带着问题学习是最高效的,本次我们将尝试回答以下问题:什么是类的加载? 哪些情况会触发类的加载? 讲一下JVM加载一个类的过程 什么时候会为变量分配内存? JVM的类加载机制是什么? 双亲委派机制可以打破吗?为什么答案放在文章的最后,来不及看原理也可以直接跳到最后直接看答案。深入原理类的生命周期类的生命周期相信大家已经耳熟能详,就像下面这样:不过这东西总...转载 2019-11-20 17:03:16 · 168 阅读 · 0 评论 -
MyBatis-Plus 查询踩的坑
1、判断一个字段是否为空,并作为条件进行查询时 一开始我是写成了LambdaQueryWrapper<ProductCatalog> lambda = new LambdaQueryWrapper<>();if(StringUtils.isBlank(productCatalog.getParentBIds)){ lambda.in(Prod...原创 2019-11-20 16:56:17 · 4047 阅读 · 0 评论 -
淘宝双11,亿级流量高并发是怎么抗住的?看完这篇你就明白了!
1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如To...转载 2019-11-14 16:56:35 · 1295 阅读 · 0 评论 -
springboot 国际化
1、在项目下新增个资源文件2、文件内容:3、在配置文件application.yml上加上资源路径messages: # 定义国际化文件的文件地址,读取的原则是顺序读取如果存在同名的则读取第一个 basename: i18n/supplier encoding: UTF-84、添加两个Java工具类(放在当前文件下),全局读取前端传来的选择...原创 2019-11-12 17:01:12 · 243 阅读 · 0 评论 -
Java List 去重的方法
最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢?试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。//set集...原创 2019-11-12 16:04:18 · 2507 阅读 · 3 评论 -
tk-mybatis 的简单使用
tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具实现对员工表的增删改查的代码java的dao层接口public interface WorkerMapper extends Mapper<Worker> {}实体对象@Table(n...原创 2019-05-16 14:00:23 · 2523 阅读 · 0 评论 -
JAVA中几种常用JSON库性能比较
JSON类库比较本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心,除非是在性能要求比较高的系统。目前对于Java开源的...原创 2019-05-16 19:49:47 · 879 阅读 · 0 评论 -
工具类的寻找
我最近在网上找了下各种工具类,发现很多工具类,其中有个工具类还是可以的!HuTool工具类,包含了各种Java的代码方法的封装,只需引用进来,就可以使用调用,十分方便,感觉省了很多重复造轮子的时间极大的提高了开发效率,不过对于新手还是尝试自己写哈,能提高自己对代码的熟练度,而不至于太依赖于外部引用的工具类,毕竟还是要提升下自己在代码上的运用!最后附上该工具类的地址:http://h...原创 2019-09-26 10:35:43 · 152 阅读 · 0 评论 -
Java Integer(-128~127)值的==和equals比较产生的思考
java中有两种类型基本类型基本数据类类型存的是数值本身引用类型引用类型变量在内存放的是数据的引用基本类型通过==比较的是他们的值大小,而引用类型比较的是他们的引用地址正文在一些特殊的类中,如Integer在使用==比较的时候往往非常容易出错,下面通过几个例子来探索一下具体的原理代码片段public class Test03 { public static ...转载 2018-10-13 10:56:21 · 1134 阅读 · 0 评论 -
上传图片至七牛云
/*** 上传文件到七牛云服务器后返回上传路径(根据MultipartFile)* * @Title uploadFileToQiNiu* @return String 文件访问全路径* @date 2017年7月13日 下午2:17:41*/public String uploadFileToQiNiu(HttpServletRequest request, File fil...原创 2018-06-27 18:20:54 · 316 阅读 · 0 评论 -
OffsetDateTime 设置时间格式
import java.time.LocalDateTime;import java.time.OffsetDateTime;import java.time.ZoneOffset;import java.time.format.DateTimeFormatter; import org.apache.commons.lang3.StringUtils; /** * Offset...原创 2019-05-09 14:49:25 · 7917 阅读 · 0 评论 -
JAVA 中15 种锁介绍
1、公平锁/非公平锁2、可重入锁/不可重入锁3、独享锁/共享锁4、互斥锁/读写锁5、乐观锁/悲观锁6、分段锁7、偏向锁/轻量级锁/重量级锁8、自旋锁上面很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的特性,有的指锁的设计,下面总结内容对每个锁的名词进行一定的解释.公平锁/非公平锁公平锁公平锁是指多个线程按照申请锁...原创 2019-04-29 15:23:49 · 145 阅读 · 0 评论 -
【POI框架实战】——POI导出Excel时设置单元格类型为数值类型
背 景 最近做的一个ITFIN的项目中,后台需要用POI实现导出功能,导出的数据中有文本格式,也有货币格式,所以为了方便在将来导出的表格中做计算,存放货币的单元格需要设置为数值类型。 导出的Excel的单元格都是文本格式(单元格左上角有个小三角): 费了不少功夫,终于把“小三角”去掉了,这里总结并分享一下问题的解决方法。 通过poi导出excel的过程大致是这样的:...转载 2019-04-17 15:43:54 · 9347 阅读 · 5 评论 -
Java 使用sftp 进行上传下载文件
基于JSch的Sftp工具类本Sftp工具类的API如下所示。1)构造方法摘要 Sftp(String host, int port, int timeout, String username, String password) 参数: host - SFTP服务器IP地址 port - SFTP服务器端口 timeout - 连接超时时间,单位毫...转载 2018-08-13 10:06:25 · 4069 阅读 · 0 评论 -
Java 多线程的理解
Java中的程序是多线程的, 一个简单的程序中包含了两个线程, 即main程序主入口,还有个是gc ,垃圾回收机制的线程。线程跟进程的区别:进程是程序中执行的一个过程,它是一个动态的概念, 进程最少有5种基本状态,包含了,初始-->执行--->等待-->就绪--> 终止。线程是进程的一部分,一个没有线程的进程以可看成是一个单线程,线程有时又被称之为轻量级进程或是...原创 2018-08-18 00:19:41 · 3358 阅读 · 1 评论 -
java8 新特性之流 Stream
流与集合的比较流是按需计算的,相当于线上的视频,是按用户的需求进行读取的,而集合则是已经存储好电影内容的DVD光盘, 需要通读一遍,是个完整的内容, 就类似于供应商,先有货物,在消费给消费者, 流则是按照需求进行提供消费。 集合是外部迭代, 流是内部迭代的, 简化了对并行运行的麻烦, 支持多核并行运行。以前对集合遍历都是通过Iterator或者For-Each的方式, 显式的在集...原创 2018-08-08 10:09:05 · 232 阅读 · 0 评论 -
解决Activemq 访问后台出现503的错误
1、查询机器名cat /etc/sysconfig/network2、修改hosts文件 admin.CentOs-- 192.168.25.175 trainingcat /etc/hosts 在127.0.0.1后面加上机器名3、重启Activemq服务 ...原创 2018-08-05 00:08:04 · 637 阅读 · 0 评论 -
Spring Boot 入门实战
Spring Boot是什么我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。2012 年 10 月...转载 2018-07-22 12:53:53 · 157 阅读 · 0 评论 -
List 字符串转换成JsonArray
public JSONArray parseListForMapsToJsonArrayStr(List<Map<String, Object>> list) { JSONArray jsonArray = new JSONArray(); if (list != null && list.size() != 0) { JSONObjec...原创 2018-07-04 11:26:54 · 1651 阅读 · 0 评论 -
jsp 读取配置文件
<%@ page import="java.util.ResourceBundle" %>ResourceBundle res = ResourceBundle.getBundle("application");String accessKey=res.getString("AccessKey");String secretKey=res.getString("SecretKey");...原创 2018-06-27 17:05:26 · 2118 阅读 · 0 评论