- 博客(15)
- 收藏
- 关注
原创 记录一次 Guava 的 Cache 的简单使用
当缓存超过最大缓存大小限制时,Guava 的 Cache 和 Caffeine 缓存库会根据其内部的淘汰策略来删除一些键值对以腾出空间给新的键值对。默认情况下,Guava 的 Cache 使用的是基于 LRU(最近最少使用)算法的淘汰策略。如果预计缓存中的键值对数量较大,则可以适当增加初始容量以避免频繁的扩容操作。反之,如果预计缓存中的键值对数量较小,则可以减小初始容量以节省内存空间。需要根据具体的应用场景和预期的缓存大小来决定合适的初始容量。具体的淘汰策略取决于缓存库的配置和实现。
2023-12-20 14:17:50
396
原创 Spring事务
事务,是在数据库中用于保证数据正确性的一种机制,涉及到很多概念以及不同的情况,这里做一个总结相关概念事务四特性(ACID)原子性(Atomicity,或称不可分割性):要么全部完成或者全部不完成,错误是会发生回滚,这个要求两条相关的操作,就像情侣一样,要么一起海誓山盟,一个发生意外,另外一个也挂了一致性(Consistency):操作完成后和原本想的结果一样,不能对数据完整性造成破坏隔离性(Isolation,又称独立性):可以同时开启多个事务,为避免出现错误,针对这个问题制定了事务在处理时对数据
2022-01-14 13:47:31
133
原创 JUC—CountDownLatch、CyclicBarrier、Semaphore
JUC中T0级的三大辅助工具类:CountDownLatch(减少计数)CyclicBarrier(循环栅栏)Semaphore(信号量)一、CountDownLatch(减少计数)让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒主要有两个方法,1.1、当一个或多个线程调用await方法时,这些线程会阻塞,其它线程调用countDown方法会将计数器减一(调用countDown方法的线程不会阻塞);1.2、当计数器的值变为0时,await方法阻塞的线程会被唤醒,继续执行package c
2021-12-12 12:06:53
240
原创 Mysql 查看死锁,解除死锁
解除正在死锁的状态有两种方法:第一种:1.查询是否锁表show OPEN TABLES where In_use > 0;2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)show processlist3.杀死进程id(就是上面命令的id列)kill id第二种:1.查看下在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;2.杀死进程id(就是上面命令的trx_mysql_thread_id列
2021-12-11 17:42:05
1864
转载 单例模式实现JedisPool附加jedis工具类
package com.example.sdc_jedis_pool.Util.Redis;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;/** * @author: SunDC * @Date: 2020/9/8 3:19 下午 * @Description: redis操作类 * 采用懒汉式单例模式进行编
2021-11-26 15:13:10
286
原创 高并发下redis缓存穿透问题解决
双重检测锁try{ //序列化器,将key的值设置为字符串 RedisSerializer redisSerializer=new StringRedisSerializer(); redisTemplate.setKeySerializer(redisSerializer); //查缓存 List<UsersDO> list=(List<UsersDO>
2021-11-26 11:39:51
653
转载 java 字符串压缩长度并解压
package com.wy.data.emaildata.util;import org.apache.commons.io.FileUtils;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.util.zip.GZIPInputStream;import java.util
2021-11-24 16:44:23
1082
1
原创 Hikari 数据库连接池配置
<!-- Hikari Datasource --> <bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="jdbcUrl
2021-11-24 16:18:35
616
原创 重新启动mysql服务器
Linux下重启MySQL的正确方法: 1、通过rpm包安装的MySQL service mysqld restart 2、从源码包安装的MySQL // linux关闭MySQL的命令 $mysql_dir/bin/mysqladmin -uroot -p shutdown // linux启动MySQL的命令 $mysql_dir/bin/mysqld_safe & 其中mysql_dir为MySQL的安装目录,mysqladmin和mysqld_
2021-11-24 16:04:26
766
原创 使用map遇见的问题
1. 如何实现Map中key为泛型,value为泛型集合 public static void main(String[] args) { Map<String,List<String>> dataMap = Maps.newHashMap(); setMap(dataMap); } public static void setMap(Map<?,?> dataMap){ Set<
2021-11-22 13:40:27
126
原创 冒泡排序、插入排序、选择排序
//冒泡排序public static void bubbleSort(int[] arr,int n){ if(n<=1) return; for(int i = 0;i<n;i++){ boolean flag = false; for(int j = 0;j<n-i-1;j++){ if(arr[j] > arr[j+1]){ int tmp = arr[j];
2021-11-21 14:57:58
853
原创 提取字符串个人练习
@TOC 把字符串中的元素中学生信息取出来一道题目有字符串:”101,lisi,98;202,wangwu,76;303,chenqi,84;404,zhangsan,49;505,xiaoming,67”,保存的学生的学号,姓名,成绩信息. 要求把字符串中学生信息取出来,创建Student对象, 把Student对象保存到数组中;遍历学生对象数组;在数组中查找名字为xiaoming同学是...
2020-04-17 15:52:10
534
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人