- 博客(40)
- 资源 (4)
- 收藏
- 关注
原创 Java 如何快速实现一个先入先出的缓存(FIFO Cache)?
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-26 20:54:18
388
原创 java 中 i++ 到底是否线程安全?
大家在写代码中i++经常用到,那大家是否知道他是否安全的?更进一步的问为什么呢?今天我们就一起深入研究中i++。为什么i++是线程不安全的?为什么是线程安全的?的源码解读首先给我们的编辑器安装一个插件专门用来看直接码的。int i = 0;// IINC 1 1 将指定int型变量增加指定值 线程不安全i++;//ILOAD 1 将指定的int型本地变量推送至栈顶//ICONST_1 将int型1推送至栈顶//IADD 将栈顶两int型数值相加并将结果压入栈顶。
2024-07-26 20:53:46
633
原创 Java 中如何执行命令行方法
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-24 20:52:04
1318
原创 史上最详细的 HashMap 的 get 方法的源码注释
HashMap 大家工作中遇到的太多了,已经成了必须使用的类了, 在面试的时候 HashMap 基本是必问题,但是很多同学只是打开看过原理,没有真正的去研究过。今天我们就一起来看看 HashMap 的 get/remove 方法的源码,保证你从来没见过这么详细注释的源码。完全熟悉 HashMap 的 get/remove 的原理HashMap 是怎么用最高的性能来实现移除操作的?
2024-07-24 20:51:29
847
原创 Java 如何获取一个 class 的所有属性和方法
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-23 22:28:04
393
原创 史上最详细的 HashMap 的 put 方法的源码注释
HashMap 大家工作中遇到的太多了,已经成了必须使用的类了, 在面试的时候 HashMap 基本是必问题,但是很多同学只是打开看过原理,没有真正的去研究过。今天我们就一起来看看 HashMap 的 put 方法的源码,保证你从来没见过这么详细注释的源码。完全 HashMap 的 put 的原理为什么 HashMap 里面 table 数组长度一定是2的次幂?HashMap 是如何 resize table 数组的?做了哪些性能优化?
2024-07-23 22:26:49
970
原创 Java 中如何快速读取 CSV 文件
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-22 20:46:18
1141
原创 手把手带你写一个精简版 HashMap 的 get 方法
HashMap 大家工作中遇到的太多了,已经成了必须使用的类了, 在面试的时候 HashMap 基本是必问题,但是很多同学只是打开看过原理,没有真正的去研究过。里面是大佬写代码,为了性能和我们的业务代码写法差别很大,今天我带大家手写一个简单的 get 和 remove 方法,保证用大家看得懂的代码来写。需要看 put 方法实现的可以点开首页自己查找。最近2次课程带大家手写了HashMap的put、get、remove 几个核心的方法,大家一定要自己去尝试写着试试,这样才不会忘记。
2024-07-22 20:45:12
634
原创 Java 中如何获取一个中文的拼音
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-21 22:19:09
677
原创 Java 中如何支持任意格式的压缩和解压缩
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-21 22:18:26
558
原创 Java 如何提取身份证中的生日
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-19 21:55:03
941
原创 手把手带你写一个精简版 HashMap 的 put 方法
HashMap 大家工作中遇到的太多了,已经成了必须使用的类了, 在面试的时候 HashMap 基本是必问题,但是很多同学只是打开看过原理,没有真正的去研究过。里面是大佬写代码,为了性能和我们的业务代码写法差别很大,今天我带大家手写一个简单put 方法,保证用大家看得懂的代码来写。今天带着大家了手写了 HashMap 的 put方法,大家是不是感觉 HashMap 原来可以这么简单,看过还需要自己去试一下哟。下一节会给大家介绍 HashMap 的 get 方法,大家敬请期待。
2024-07-19 21:54:25
1449
原创 Java 中快速生成唯一id
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-18 22:20:47
819
原创 Java对象复制系列六: 史上最快的对象复制工具 Mapper Struct 原理浅析
Mapper Struct 是目前最好的 Java 对象复制的工具之一。上一节我们介绍了 Mapper Struct 高阶应用,今天我们来看下为什么可以做到这么快。今天带着大家了解了为什么 Mapper Struct 为上面这么快,知根知底以后大家可以在工作中使用起来了,本人在项目中引入收到的反馈非常棒,绝对是一款项目必备的工具。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-18 22:20:13
1206
原创 Java 中最全的 hash 算法集合
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-17 22:32:02
474
原创 Java对象复制系列五: 最快速度、方便的对象复制工具 Mapper Struct 的高阶应用
Mapper Struct 是目前最好的 Java 对象复制的工具之一。上一节我们讲到了 Mapper Struct 的应用,以及测试了他的性能,发现他的性能已经无限接近直接 get/set 了。今天我们来讲一下如何集成spring 以及一些高阶用法。让你在工作中各种对象转换游刃有余。今天给大家介绍了各种高阶的使用方法,平时工作应该完全胜任了,代码会别的特别优雅,把复杂的逻辑写到转换器里面,代码会变得特别优雅。
2024-07-17 22:31:26
944
原创 Java 中怎么解决 0.1 + 0.2 不等于 0.3?
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-16 21:41:43
385
原创 Java对象复制系列四: 还在使用 Spring BeanUtils 复制属性?这个工具性能秒杀它
我们在平时的工作中经常会遇到两个对象的拷贝,很多同学使用 Spring BeanUtils ,感觉性能不错。但是他无法解决属性名不一样的情况,也无法解决属性类型的转换,性能和原生的 get/set 比也差的很多。今天我来介绍一款性能堪比原生 get/set 的对象复制工具:MapperStruct。对 Spring BeanUtils 或者 Apache BeanUtils 原理好奇的同学可以去主页查看对应的文章。
2024-07-16 21:40:23
1042
原创 还在用 System.currentTimeMillis() 计时?试试 Hutool 的 TimeInterval
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-15 20:49:17
624
原创 Java对象复制系列三: 手把手带你写一个 Spring BeanUtils
上一节我带大家手写了一个 Apache BeanUtils,并阅读了源码,大家应该都自己去阅读过源码了吧?今天我大家手写一个 Spring BeanUtils,不像 Apache BeanUtils 我们就写了一个简单的案例,这次我们要写一个完整的 Spring BeanUtils 并带上和 Apache BeanUtils ,看看我们自己写的和 Apache BeanUtils 性能会有啥差别?
2024-07-15 20:48:00
1132
原创 Java 如何快速根据 key 获取枚举的值?
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-14 22:40:08
605
原创 Java 一行代码如何扫描一个包下面所有的类?
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-14 22:39:26
672
原创 Java 如何不用再每次新建线程,直接使用公共线程池
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-13 23:18:08
790
原创 Java 图片缩放、裁剪、水印神器
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
2024-07-13 23:17:19
573
原创 用 Hutool 一行代码搞定压缩、解压缩
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程。
2024-07-12 21:13:25
2748
原创 Java对象复制系列二: 手把手带你写一个Apache BeanUtils
上一篇文章我们讲到了 Apache BeanUtils 性能相对比较差,今天我不仅仅要带你学习源代码 ,更要带你手把手写一个Apache BeanUtils。今天学习了 Apache BeanUtils 的源码,总体上就是一个缓存+反射的调用,看是记不住的,大家赶快打开自己的电脑跟几遍源码吧。后面还会带大家看 Spring BeanUtils 的源码,欢迎持续关注。
2024-07-12 21:12:30
2072
原创 java 如何一行代码生成随机数据?
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
2024-07-11 22:02:22
533
原创 Java对象复制系列一: Apache 这么常用的工具类,性能居然如此差?
对象复制是编码过程中非常超级常见,为了方便大量字段复制,一般都会使用 Apache 的 BeanUtils 或者 Spring 的 BeanUtils。但是大家有没有想过,这两个 BeanUtils 类的有啥区别?性能到底好不好?今天我就带大家来测试下,结果可能会出乎大家意料。所以大家在工作中尽量使用 Spring BeanUtils 来替换 Apache BeanUtils,这个替换成本非常低,但是效果收货很不错。为啥 Spring BeanUtils 比 Apache BeanUtils 性能好。
2024-07-11 22:01:44
1099
原创 大厂面试必备系列:一文彻底搞懂 Jdk 动态代理
大家在面试中经常被问到 Cglib 和 JDK动态代理有啥区别?然后每次回答都是 Jdk 动态代理是实现接口。这个回答当然是对的,但是太敷衍了,没得加分,今天我带大家深入了解下,带你搞清楚到时实现了啥东西。通过这篇文章给大家普及了 Jdk 动态代理的基础知识,让 Jdk 动态代理变的不在神秘,大家有时间就去动手试试吧,试过才是自己的。
2024-07-09 22:58:56
578
原创 还在代码中写HttpUtil?是时候说再见啦
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
2024-07-09 22:57:35
939
原创 大厂面试必备系列:一文彻底搞懂 Cglib 代理
大家在面试中经常被问到 Cglib 和 JDK动态代理有啥区别?然后每次回答都是 Cglib 通过创建目标类的子类来实现代理。这个回答当然是对的,但是太敷衍了,没得加分,今天我带大家深入了解下。通过这篇文章大家是不是对吹的神乎其技的 Cglib 有了新的理解,实际上他比大家想象的容易非常多,只是大家没有时间去实践一下,大家去动手试试吧,试过才是自己的。
2024-07-08 21:24:34
480
原创 还在代码中写DateUtil?是时候说再见啦
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
2024-07-08 21:21:39
609
原创 java 开源项目是如何将多个 module 版本统一配置的?
现在大部分开源项目也包括我们自己的项目,现都会创建model,然后每个model都会配置一个版本,在升级版本的时候需要一个个的去修改。
2024-07-05 20:37:58
728
原创 基于hibernate-validator,java前端入参校验最佳实践
今天要给大家介绍的是基于 spring + hibernate-validator 完成前端入参校验。
2024-07-05 20:36:59
663
原创 告别代码中遍地的 try-catch,使用 spring 全局统一异常处理
今天要给大家介绍的是如何告别业务代码中大量的try-catch,让你专注于业务代码而不用考虑异常处理。大家是不是在业务代码里面经常看到这种代码:在每个类里都写上这些代码,不仅仅看起来丑陋,后续维护也非常麻烦,万一要改个异常或者日志,要改一万个地方。今天我要手把手教大家使用使用统一拦截器来告别这种丑陋的代码。基本思路使用提供的注解来统一拦截异常,并返回给前端。
2024-07-04 22:13:43
653
1
原创 Java中使用统一Reuslt对象最佳实践
在工作中看到很多项目都封装了一个统一的Result对象来封装返回值,但是封装的经常不太友好,是否好奇大厂是怎么来做结果封装的呢?今天我来分享一个非常完善的实战。我们可以到很多大项目都会使用统一的Result对象来封装返回值,那使用统一的Result对象有什么好处呢?提升开发效率:统一封装Result可以显著提升开发效率。开发者无需在每个方法中重复编写错误处理和数据封装的逻辑,而是可以集中精力于业务逻辑的实现。这种封装方式简化了代码结构,使得开发人员能够快速地编写和测试代码。
2024-07-03 23:30:34
1143
1
原创 Java到底能不能使用异常来控制流程
我们经常在很多项目里面看到用异常来处理业务逻辑,发现不符合逾期直接抛出异常,然后在最外面捕获异常统一处理,这样使用非常方便。但是又有很多文章写着异常处理性能,所以不建议使用异常来做流程控制。那么问题来了:究竟能不能用异常来做流程控制?效率低是低多少?看完这一篇文章你就知道了。
2023-02-09 16:25:19
686
原创 EasyExcel如何解决临时文件过大问题
在使用EasyExcel导出excel的时候,会遇到占用大量磁盘的问题,当并发比较大时,会使服务器文件撑满。可以看到1万3行的数据,就占用了17M内存,当数据量大了时候占用的磁盘会更大。`log.info("写入完毕,开始准备迁移压缩文件。然后代码继续运行完成,会发现这个文件被删除了。将这个临时的xml做压缩处理。所以这个文件占用是临时的,最后会自动删除。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)查看临时目录的文件大小。
2023-01-14 20:29:50
2537
1
原创 使用spring+redisson解决集群同步锁问题
提要:先说明下应用场景,例如:在修改订单的时候,防止同一个订单号,只有一个线程在修改,如果多个修改,则后面的等待一定时间后直接报错(支持集群)。基础组件:redis、spring1.spring的配置我这里不再详细说明,具体可以自己去搜搜 如何搭建spring。创建spring-redisson.xml,并且引入到spring配置中:<beans xmlns="http://ww
2017-11-22 17:01:45
4395
原创 关于mybatis-generator中文注释 乱码解决
具体怎么实现用mybatis-generator实现,可以参照:http://blog.csdn.net/gufeng672/article/details/27196347中文注释乱码的原因是,mybatis-generator输出文件使用jdk的默认编码,而一般jdk的默认编码是根据操作系统的是GBK,而项目工程是utf-8.在每次运行 mvn mybatis-gen
2017-04-12 13:20:29
11280
mybatis-generator 解决中文注释乱码
2016-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人