
java
文章平均质量分 53
Colourful.
往者不可谏,来者犹可追
展开
-
Optional 处理空指针
实际开发中经常会遇到判空需求的处理,通常我们可以采用if判断的形式:ArrayList<String> nullAbleList = demoService.getList();if(CollectionUtils.isEmpty(nullAbleList )){ //new 一个ArrayList,避免下面业务逻辑空指针异常 nullAbleList = new ArrayList(); //或者直接抛出异常提示 throw new RuntimeExcepton();}可以原创 2021-12-08 10:37:28 · 618 阅读 · 1 评论 -
java 读取jar包中的文件
文章目录项目resource中文件路径和jar包中文件路径的区别正常读取jar包读取完整代码:项目resource中文件路径和jar包中文件路径的区别打成jar包后,是一个整体的文件。正常读取 InputStream inputStream = new FileInputStream("src/main/resources/invoiceTemplate.xlsx");jar包读取 InputStream inputStream = this.getClass().getResourceAs原创 2021-11-26 17:42:49 · 676 阅读 · 0 评论 -
线程池 总结
文章目录线程池优点线程池创建参数队列总类线程池执行流程线程池类型定长 FixedThreadPool轮询 ScheduledThreadPool缓存 CachedThreadPool单线程 SingleThreadPool线程池优点1.避免线程频繁创建、消亡消耗资源。2.提高响应效率。3.线程可管理性。4.线程可复用性。线程池创建参数参数含义corePoolSize最大核心线程数maximumPoolSize最大线程数keepAliveTime闲置回原创 2021-11-09 18:57:12 · 640 阅读 · 0 评论 -
Redis
文章目录redis数据类型redis数据同步redis持久化redis分布式存储(高可用)redis集群切片redis 雪崩、击穿、穿透redis数据类型String (字符串,整数和浮点数)List (队列,先入先出)Hash (具有String key和String value的map容器,可以将多个key-value存储到一个key中)Set (无序不可重复)Sort Set (有序不可重复)redis数据同步1.读取数据时:redis有有效缓存,取缓存。redis无缓存,取DB,并原创 2021-08-27 14:08:35 · 101 阅读 · 1 评论 -
EasyExcel 导出
文章目录1.EasyExcel 写入1.1. 创建excel映射对象、一次写入response1.2. 不创建excel映射对象、多次写入File1.3. 单元格合并策略1.4. 列宽样式策略1.5. 转换器1.5.1. 转换器注入方式1.5.2. 转换器 注解1.6. RowWriteHandler 行处理器1.7. CellWriteHandler 单元格处理器1.8. 单元格、字体样式1.EasyExcel 写入1.1. 创建excel映射对象、一次写入responseexcel导出实体:@原创 2021-08-13 20:47:12 · 8470 阅读 · 0 评论 -
系统架构设计师 - 23种设计模式(GOF)
文章目录创建型结构型行为型创建型结构型组合模式行为型原创 2021-05-27 11:06:58 · 560 阅读 · 0 评论 -
树形结构递归初始化(父节点,统计字段等)
核心思想:1.先将每个节点按层级进行分组成map,并记录最大层级;2.层级自下而上的递归,赋值父节点和统计金额类的字段;完整代码如下我的节点数据来自excel的导入(excel的导入导出可以看:Springboot 下 EasyExcel 的数据导入导出)节点数据按层级分组后的是 hierarchyMap ,是在 invoke() 方法中初始化的;核心思想的实现,只需要看 doAfterAllAnalysed()方法/** * 解析监听类 <br> * * @author l原创 2021-05-19 19:41:36 · 758 阅读 · 0 评论 -
统计一个字符在另一个字符串中出现的次数
文章目录1.一个字符在另一个字符串中出现的次数2.测试3.输出1.一个字符在另一个字符串中出现的次数 /** * showTime 懂得都懂 <br> * @param findStr: 要寻找的字符 * @param fromStr: 可能包含 findStr 的字符串 * @return java.lang.Integer 次数 * @see */ private static Integer countShowTime(原创 2021-05-19 19:32:50 · 648 阅读 · 0 评论 -
Springboot 下 EasyExcel 的数据导入导出
文章目录1.环境准备1.1. pom1.2. 元数据1.3. 自定义日期转换器2. 数据导出3. 数据导入3.1. excel解析监听类3.2. excel导入1.环境准备1.1. pom <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</ver原创 2021-05-19 14:54:06 · 362 阅读 · 1 评论 -
自定义Valid注解,校验List集合
自定义注解@Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = ListValidator.class)public @interface ListValid { int min() default 0; int max() default Integer.MAX_VALUE; String message() default ""; C原创 2021-05-13 16:17:17 · 2752 阅读 · 0 评论 -
@Builder(toBuilder=true) 链式初始化对象、修改对象
引入lombok: <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency&原创 2021-02-07 10:24:41 · 2024 阅读 · 0 评论 -
AOP+自定义注解 实现service统一的异常信息处理
返回信息枚举 TipsMsg:public enum TipsMsg { DEFAULT_SUCCESS("0","操作成功"), DEFAULT_FAILED("1","操作失败"), //其他枚举 //get //set自定义注解 ReturnMsg (也是切点) :@Target(ElementType.METHOD)//方法上声明@Retention(RetentionPolicy.RUNTIME)//注解将被编译器记录在class文件中,而且在运行时会被虚拟机保留,因此它们能通原创 2021-01-22 10:54:51 · 592 阅读 · 0 评论 -
ByteArrayOutputStream和ByteArrayInputStream的简单使用
@ByteArrayOutputStream和ByteArrayInputStream的简单使用1.首先看下这两个IO流是什么?ByteArrayOutputStream:字节数组输出流.在内存中创建一个字节数组缓冲区,所有发送到输出流的数据保存在该字节数组缓冲区中。ByteArrayInputStream:字节数组输入流.在内存中创建一个字节数组缓冲区,从输入流读取的数据保存在该字节数组缓...原创 2019-11-27 22:41:49 · 379 阅读 · 0 评论 -
Bigdecimal基本运算及小数保留方式枚举
Bigdecimal基本运算及小数保留方式枚举1.Bigdecimal运算final BigDecimal a = new BigDecimal("2.99");final BigDecimal b = BigDecimal.valueOf(0.49);//a+bfinal BigDecimal add = a.add(b);//a-bfinal BigDecimal subtrac...原创 2019-12-16 22:10:00 · 1938 阅读 · 0 评论