自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈缓存雪崩、缓存穿透、缓存击穿的之间的区别及解决方案

一、缓存雪崩 概念:当缓存服务器重启或者大量缓存集中在某一时间段失效,这样在失效的时候,所有请求会得不到数据,会去数据库查询,查询数据量巨大,导致系统崩溃 解决方案: (1)在缓存失效后,通过加锁或者队列控制读数据库写缓存的线程数量。比如对其中某个key只允许一个线程查询数据,让其他线程等待。 (2)不同的key,设置不同的过期时间,让缓存失效的时间点不要集中在一起。 二、缓存穿透 概念:缓存和数据库中都没有的数据,而用户不断地发起请求,并且请求量很大,造成数据库很大的压力。 解决方案: (1)将查询结果为

2021-08-26 19:32:28 579

原创 Spring常见注解有哪些?

2021-08-25 20:44:19 245

原创 MyBatis的一级缓存与二级缓存及优势

一、MyBatis的一级缓存和二级缓存有什么区别? 1.一级缓存:存在于同一个 SqlSession生命周期中,默认是开启的 在同一个 SqlSession中MyBatis 会把执行的方法和参数通过算法生成缓存的键值, 将键值和结果存放在一个 Map 中, 如果后续的键值一样, 则直接从 Map(一级缓存)中获取数据; 一级缓存能通过配置清除缓存,并且任何的 UPDATE, INSERT, DELETE 语句都会清空缓存 2.二级缓存:发生在同一个SqlSessionFactory中,缓存以name

2021-08-19 22:41:56 2873

原创 什么是HashMap

HashMap是Map接口的实现类 一、存储方式 采用KV键值对方式存储,基于哈希表(Hash Table)设计: JDK1.7 : 底层数据结构基于“数组”+“链表” JDK1.8 : 底层数据结构基于“数组”+“链表”+“红黑树” 当链表长度大于阈值(默认为8)+ 数组长度大于64时,将链表转化为红黑树,以减少搜索时间 二、扩容机制(扩容方法是resize()方法) 初始容量为16 加载因子为0.75:当 元素个数超过容量长度的0.75倍 时,进行扩容 按原有容量的2倍进行扩容 ●初始容

2021-02-07 16:30:02 964 8

原创 Java读取Excel数据-基于Apache POI

一. POI是什么 Apache POI - the Java API for Microsoft Documents,顾名思义,Apache的第三方包,用来操作微软office文档,我们以excel来说明。 二、需要的jar包 首先需要到Apache官网下载POI的库,下载链接地址:https://poi.apache.org/download.html 进入我的百度网盘进行下载,下载链接:链接:https://pan.baidu.com/s/1hokZyOm4cztVtY4tb_6w5g 提取码:

2021-01-23 23:55:11 798 1

原创 String,StringBuffer,StringBuilder之间的区别

一、可变性 String使用 final关键字修饰(char或byte)数组,所以 String是不可变的 JDK8采用char数组:private final char value[] JDK9采用byte数组:private final byte[] value StringBuilder与 StringBuffer都继承自 AbstractStringBuilder父类,在 AbstractStringBuilder中使用char[]value字符数组保存字符串,但是没有用 final

2021-01-19 23:21:05 984 5

原创 String类中常见的方法

一、String字符串的创建 //1.先声明,再创建 String[] array01; array01=new String[10]; //2.声明+创建 String[] array02=new String[20]; //3.声明+自定义初始化 char[] array03= {'甲','乙','丙','丁'}; System.out.println(Arrays.toString(array03)); 这里引入一个概念:字符串常量池 JVM为了提升性能和减少内存的开销,避免字符串的重复

2021-01-18 23:40:55 850 1

原创 Java的创建-数据类型-数组常见操作

Java基础学习第二天 一、创建和运行程序 1、Java程序结构 *.java源文件-1个源文件可以包含N个class类 class类包含main,该类方能执行 main函数 2、Java中的输出语句 System.out.println()-输出并换行 System.out.println()-输出 System.out.printf()-格式化输出 快捷键syso=>alt+? %d代表整型,%f代表浮点数(默认小数位6位),%s代表字符串 3、数据类型(基本数据类型和引用数据类型)

2021-01-15 22:51:25 872 1

原创 Java的特点及环境搭建

Java学习第一天 1.基础知识准备 Java语言有哪些特点 Java语言是简单的 Java语言的语法与C语言很接近,因此大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C中很少使用的、很难理解的那些特性,如操作符重载等。特别地,Java语言不使用指针,并提供了自动的废料收集,程序员不必为内存管理而担忧。 Java语言是一个面向对象的 Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键implements)。J

2021-01-12 21:43:25 637 1

空空如也

空空如也

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

TA关注的人

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