WeiG's blog
首页
  • 类目

    • Java
    • Mysql
  • 学习笔记

    • 《SpringBoot-学习笔记》
  • 大杂烩
  • Docker
  • Git
  • 博客搭建
  • 程序人生
  • 所思所想
  • 人生游记
  • 归档
  • 分类
  • 标签
收藏
关于我

Wei-G

即使再小的帆也可以远航!
首页
  • 类目

    • Java
    • Mysql
  • 学习笔记

    • 《SpringBoot-学习笔记》
  • 大杂烩
  • Docker
  • Git
  • 博客搭建
  • 程序人生
  • 所思所想
  • 人生游记
  • 归档
  • 分类
  • 标签
收藏
关于我
全部标签
所思所想 年终总结 注解 SpringBoot mybatis easyExcel 基础 equals和hashcode 泛型 分布式事务 线上问题排查 线程池 Git git 第二职业 SEO 博客 Github Action 短信服务 制作启动U盘 docker 图床 秋招 mysql索引 mysql

原来我们真的会死

gangzi 2022-03-17 百草屋所思所想 所思所想

2021年终总结

gangzi 2022-01-23 百草屋程序人生 年终总结

注解Data与EqualsAndHashCode的使用

gangzi 2022-01-19 后端乱炖Java 注解

# 前言

@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。所以可知,当使用@Data注解时,则有了@EqualsAndHashCode注解,那么编译后就会自动重写equals() 和 hashCode()方法。用在一般的普通实体类不会出现什么问题,但是当用来派生类上时,可能会导致不必要的错误。

阅读全文

01|springboot配置mybatis

gangzi 2022-01-19 《SpringBoot-学习笔记》 SpringBootmybatis

02|springBoot配置easyExcel

gangzi 2022-01-19 《SpringBoot-学习笔记》 SpringBooteasyExcel

# 前言

在平时的业务系统开发中,少不了需要用到导出、导入excel功能。Apache POI不做过多介绍

主要学习下,EasyPoi和EasyExcel的使用和区别对比。 ​

官网 https://www.yuque.com/easyexcel ​

EasyPoi和EasyExcel都是基于Apache POI进行二次开发的。

不同点在于:

  1. EasyPoi 在读写数据的时候,优先是先将数据写入内存,优点是读写性能非常高,但是当数据量很大的时候,会出现OOM,当然它也提供了 sax 模式的读写方式,需要调用特定的方法实现。它主要的特点就是将更多重复的工作,全部简单化,避免编写重复的代码!
  2. EasyExcel 基于sax模式一行一行解析进行读写数据,不会出现OOM情况,在并发量很大的情况下,程序在经过高并发场景的验证下,依然能稳定运行!相对于 EasyPoi 来说,读写性能稍慢!

SAX(simple API for XML) 是一种XML解析的替代方法。相比于DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。而且相比于DOM,SAX可以在解析文档的任意时刻停止解析,但任何事物都有其相反的一面,对于SAX来说就是操作复杂。

​

EasyPoi 对定制化的导出支持非常的丰富,如果当前的项目需求,并发量不大、数据量也不大,但是需要导出 excel 的文件样式千差万别,那么我推荐你用 EasyPoi;反之,使用 EasyExcel !

本篇学习EasyExcel的使用 👇

# 简单使用测试

pom.xml添加依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.0.5</version>
</dependency>
1
2
3
4
5
阅读全文

为什么重写equals一定要重写hashcode

gangzi 2022-01-19 后端乱炖Java 基础equals和hashcode

在原始的Object类中

默认equals比较规则是通过“==”来进行判断,这样比较的是两个对象的内存地址,默认的hashcode方法返回的是对象的内存地址由哈希算法转换成的一个整数,实际上指的的也是内存。哈希算法具有一定的偶然性,不同的内存地址可能计算出相同的哈希值。

对于原始的hashCode()和equals() 方法来说,通过equals() 比较两个对象相等,说明这两个对象的内存地址相同,进而知hashcode也是相同的。 ​

在实际使用中,大多数场景下,如HashMap中存放自定义对象类作为key

当用 HashMap 存入自定义的类时,如果不重写这个自定义类的 equals 和 hashCode 方法,得到的结果会和预期的不一样。

阅读全文

java泛型的理解

gangzi 2022-01-19 后端乱炖Java 基础泛型

分布式事务小结

李文华 2022-01-13 后端乱炖Java 分布式事务

[作者简介] 李文华,小米信息技术部海外商城组

随着互联网技术的不断发展,系统越来越复杂,几乎所有 IT 公司的系统都已经完成从单体架构到分布式架构的转变,分布式系统几乎无处不在。谈到分布式系统,特别是微服务架构,不得不谈分布式事务

阅读全文

目标完成后的失落

gangzi 2021-12-26 百草屋所思所想 所思所想

一次线上线程池任务事故

gangzi 2021-12-23 后端乱炖Java 线上问题排查线程池

# 前言

线上出现线程池提交任务抛出 RejectedExecutionException 异常

即任务提交执行了拒绝策略的操作。查看业务情况和线程池配置,发现并行执行的任务数是小于线程池最大线程数的。以下是排查过程

阅读全文

上一页

下一页

全部标签
所思所想 年终总结 注解 SpringBoot mybatis easyExcel 基础 equals和hashcode 泛型 分布式事务 线上问题排查 线程池 Git git 第二职业 SEO 博客 Github Action 短信服务 制作启动U盘 docker 图床 秋招 mysql索引 mysql
本站总访问量 次 | 本站访客数 人
Copyright © 2021-2022 Gang zi | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 生命绿
  • 收获黄
  • 天空蓝
  • 激情红
  • 高贵紫