自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 记一次性能优化和LinkedList导致更严重的性能问题

1、导致此次新的更严重性能问题,上面两个原因缺一不可2、List尽量使用ArrayList虽然LinkedList理论上add()方法比ArrayList好,但LinkedList.add()时需要封装成node对象(耗时耗空间),以及随机读取慢,部分方法的时间复杂度为O(n)ArrayList因底层为数组,随机读取快,add()时不需要重新封装,虽然有扩容机制,但因其每次扩容为1.5倍,后期扩容量将越来越大,且扩容频率将会变少综合考虑ArrayList性能优于LinkedList。

2024-06-08 01:18:46 639

原创 SpringBoot使用sharding分库分表、读写分离(主从)

SpringBoot使用sharding分库分表、读写分离(主从)

2022-10-22 01:50:46 452 1

原创 SpringBoot使用druid+mybatis配置多数据源

SpringBoot使用druid+mybatis配置多数据源

2022-10-20 23:14:06 586

原创 使用OpenSSL自签证书

目录文章目录目录一. 名词解释1. CA机构2. SSL 证书(SSL Certificates)3. HTTPS(超文本传输安全协议)4. 单向认证5. 双向认证二. 获取证书途径三. 使用OpenSSL自签证书前置准备1. 生成CA证书生成步骤注意事项2. 生成服务端证书配置文件生成步骤注意事项3. 生成客户端证书生成步骤四. 配置证书单向认证双向认证五. 吊销列表吊销步骤Nginx使用吊销列表一. 名词解释1. CA机构电子商务认证中心、电子商务认证授权机构。是负责发放和管理数字证书的权威机构

2022-01-05 16:48:09 3194 1

原创 SpringBoot通过freemarker模板,返回字符串或生成文件

目的:通过一个模板文件,将数据填充后以字符串返回,或者生成一个文件pom文件:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> <version>2.4.2</version></dependency>ym

2021-01-28 17:14:30 1673 2

原创 HaspMap的get/put源码个人分析

以下只是个人分析put方法 /** * @param hash key的hash值 * @param key key值 * @param value value值 * @param onlyIfAbsent 如果为true,若找到相同key的节点,则替换value,如果为false,则不替换 * @param evict 如果为false,则处于创建模式,个人理解为HashMap初始化中 */final V putVal(int has

2020-11-25 20:15:05 172 1

原创 SpringBoot映射本地文件到URL路径

需要一个配置类,实现了WebMvcConfigurer接口import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframewo

2020-09-05 12:10:13 2852

原创 用代理模式做具体任务的分发(代理模式的简单应用)

最近的工作是在对接飞鹅打印机,对接打印机厂家的开发平台,后台调用厂家的打印机接口(添加、删除、打印等),然后进行小票的打印后续需要对接多个品牌的打印机有三个主要类:打印机实体类、打印机管理者类(具体品牌的打印机管理者、代理管理者)我用代理模式做成了一个任务分发的打印模板定义了一个商家打印机实体类,有商家id、打印机品牌,打印机SN码、打印机其他参数属性步骤:打印服务传递订单和商家id给打印机代理管理者代理管理者根据商家id,从数据库中获取商家绑定的打印机列表(商家打印机实体类),并根据各台

2020-07-30 09:12:43 363 1

原创 通过泛型(和反射)封装建造者模式(并不是)

思路:把建造者接口创建的产品类型定义为泛型,由具体建造者来约束产品的具体类型和具体实现(泛型)构建具体建造者时调用抽象建造者的构造方法,抽象建造者获取产品的具体类型,通过反射创建的一个默认产品,在具体建造者的建造方法里对产品进行具体建造(泛型+反射)后续使用:具体建造者继承抽象建造者,通过泛型定义生产的产品类型,和实现产品具体生产方法具体指挥者继承抽象指挥者,可指挥一个或多个建造者来完成复杂产品的生产例如:建造一个客厅指挥者指挥单个建造者,建造者需要完成整个客厅和物品的建造,例如打地

2020-07-29 10:25:25 480 1

原创 Java日常工作笔记

这篇文章只是记录下日常工作中遇到的一些事,随手记录下浮点数计算问题问题:0.1+0.2 不等于 0.3、1.1+1.3 不等于 1.4、等等这是因为计算机用二进制表示一个数,但有些浮点数用二进制并不能准确表示,计算机只能舍去部分精度所造成的解决办法:使用BigDecimal类BigDecimal bNum1=new BigDecimal("0.1");BigDecimal bNum2=new BigDecimal("0.2");System.out.println("bNum1: "+b

2020-07-10 17:44:26 180

转载 18位身份证的正则表达式并说明

转载链接:https://blog.csdn.net/zgrkaka/article/details/80341068. ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$先拆分成5段 ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]

2020-06-04 12:54:50 17609 2

原创 MyBatis通过泛型实现对Service和Mapper类简单封装

参考链接:https://www.yuque.com/page/luan.ma/ssm-baseservice主要是通过泛型自动入住mapper类,和实现基础的增删改查方法如需添加自定义方法,还是需要在mapper类和Service类增加对应的方法结构图Service4Dao接口定义了设置和获取mapper的接口public interface Service4Dao<T>...

2020-04-17 23:37:17 3699 1

原创 SpringBoot通过ApplicationContextAware接口获取Bean

Context类实现ApplicationContextAware接口并且需要加上@Component注解 不加无法通过此方法获取bean@Componentpublic class Context implements ApplicationContextAware { private static ApplicationContext context; @Override...

2020-04-17 13:12:16 1516

原创 Java二分法----递归实现

/** * 二分法--递归实现 * @param nArray 数组 * @param val 需要查找的值 * @param startIndex 搜索起始点 * @param endIndex 搜索结束点 * @return 找到的位置,-1为未找到 */ public static int binarySe...

2020-04-08 21:17:24 344 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除