Java8
文章平均质量分 65
java相关技术积累、踩坑记录
citi
山东大学计算机本硕
曾就职于美团基础架构部
现快手容器云研发工程师
展开
-
java中Stream、ParallelStream和ForkjoinPool
Stream、ParallelStream和ForkjoinPool简述stream是java8开始引入的流式编程parallelStream是在流式编程的基础上并行化流水线上可以并行化的部分(StatelessOp)fork-join-pool是parallelStream并行化的底层框架,是独立于ThreadPool的多线程并行模型。三者虽然在功能上关系紧密,但掌握他们要了解的东西却互相独立A Stream的原理A.深入理解Java8中Stream的实现原理_lcgoing.原创 2022-02-11 01:02:35 · 2177 阅读 · 3 评论 -
使用AuthJwt签名认证Jwt
jwt auth0 auth-jwt rsa hsa des https原创 2021-11-20 18:43:04 · 3046 阅读 · 0 评论 -
ServiceLoader SPI 探究 - 优秀博文链接
SPI 源码解释有源码级别的注释。讲解比较到位。Java SPI 使用及原理分析 | 董宗磊的博客--靡不有初,鲜克有终据作者说下面这个是优化SPI的不足的Case,还没翻Apache Dubbo 可扩展机制分析 | 董宗磊的博客--靡不有初,鲜克有终SPI DBDriver的例子给出了基本的原理,从代码实现上对完整流程有较好的展示。【Java】ServiceLoader机制深入_简简单单兔呦-CSDN博客看文案逗比类型的。后续看看某厂面试:如何优雅使用 SPI.原创 2021-11-17 22:09:01 · 248 阅读 · 0 评论 -
JJwt耗时分析及优化
1 问题在tomcat nio的框架下,每个请求都会有一个单独的tomcat 线程对请求进行处理。Arthas观察发现,在请求中如果有jjwt的签名,有的请求耗时会非常高,高到3s ~ 4s.查看源码,jjwt的签名方法compact,有一处源码如下// io/jsonwebtoken/impl/DefaultJwtBuilder.java @Override public String compact() { if (this.serializer原创 2021-11-17 20:25:43 · 1206 阅读 · 0 评论 -
lombok-builder构造对象,变量默认值需要注解!
问题使用lombok-builder注解,在builder时不为变量赋值。@Setter@Getter@Builderclass TestGray { private String grayType = "GRAY_TYPE1"; void testMethod(){ TestGray testGray = TestGray.builder().build(); System.out.println(testGray.getGrayType()); }}直接使用Builde原创 2021-05-17 16:25:35 · 843 阅读 · 0 评论 -
Java Import 按需引入 潜龙勿用 Google规范
摘录自Google开发规范3.3.1 No wildcard importsWildcard imports, static or otherwise,are not used.3.3.1 请勿使用通配符引入(按需引入)无论是静态引入还是其他的,不要使用通配符引入3.3.2 No line-wrappingImport statements arenot line-wrapped. The column limit (Section 4.4,Column limit:...原创 2021-04-20 21:42:17 · 481 阅读 · 0 评论 -
Date-String-Timestamp时间转换
时间转换工具类直接上代码import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class TimeUtil { public static final String PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * 将Date转换为指定日期格式的Stri原创 2021-03-21 18:03:01 · 464 阅读 · 0 评论 -
lambda备忘
lambda备忘使用java8将list转为map常用方式代码如下:public Map<Long, String> getIdNameMap(List accounts) {return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));}收集成实体本身map代码如下:public Map<Long, Account> getIdAccountMap(原创 2021-03-11 15:27:51 · 812 阅读 · 0 评论