自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程知识点汇总

然后再次在main线程中获取 t1.isInterrupted() 发现 状态又变回了false , 说明在 线程内部的 Thread.interrupted() 方法中擦除了 线程的中断标识。因为已经拦截到中断异常了,所以不用再去线程中设置中断标识。使用上述StopDemo 代码,查看执行结果是 同时打印了两句获取到锁的语句,按照正常逻辑,应该是Thread-0 先获取锁,再释放锁,然后Thread-1 再获取锁,因为t0 直接调用了stop()方法,同时释放了所有的锁资源,所以,t2 同时抢到锁了。

2024-02-08 14:40:14 368

原创 elasticsearch 学习笔记

在java 代码中的使用方法在很多博客里面都可以搜索到,常见的代码查询方法都有,基本上是围绕 BoolQueryBuilder 、NativeSearchQuery 等类来构建查询参数 然后使用 ElasticsearchRestTemplate.search(searchQuery, Object.class);注意 ,此时索引的状态如果是打开的,那么执行此命令就会失败,因为在打开的状态是不能更改settings的,那么需要先关闭索引 执行以下命令关闭索引。常用的es相关的 crud操作。

2024-02-08 14:35:47 915 1

原创 springboot+echarts+layui使用记录

编辑</a>// <a class="layui-btn layui-btn-xs" lay-event="edit">设置

2024-02-08 14:35:15 938

原创 Vue、layui学习记录笔记

然后经过这种写法 当后端返回的数据 是 “2023-08-17T17:31:19” 时,根据自己的需要来转化想要的 时间格式.使用此方法的方式也很简单直接通过@selection-change 组件。在vue的methods中定义一个 formatDate 方法。使用vue中的 :formatter 转化参数格式。示范 使用自定义封装的deleteApi。

2024-02-08 14:34:27 363

原创 kafka整合记录

kafka的一些常规操作

2023-11-27 18:30:36 507

原创 记录工作中用到的easyCode代码生成模版

在idea中链接数据库以后,直接使用easycode生成代码省去很多重复的工作量.以下是我在工作中常用的模版,如果其他人需要用的话,需要修改对应的包的名称及路径。

2023-05-04 11:05:44 388

原创 IDEA编译器和Google必装的插件

工欲善其事必先利其器。强大的工具能提高开发的效率,节省出时间学习(摸鱼)。分享一些我安装过的插件。以上idea插件有一部分是别的大佬推荐,安装以后没怎么用过,有其他好用的插件希望相互推荐。...

2022-08-24 14:49:18 617

原创 Java 垃圾算法有哪些?

说到Java虚拟机不得不提的一-个词就是“垃圾回收”(GC, Garbage Collection)垃圾回收的执行速度则影响着整个程序的执行效率所以我们需要知道更多关于垃圾回收的具体执行细节以便为我们选择合适的垃圾回收器提供理论支持.面试题垃圾回收器首先要做的就是,判断一个对象是存活状态还是死亡状态死亡的对象将会被标识为垃圾数据并等待收集器进行清除判断一个对象是否为死亡状态的常用算法有两个:引用计数器算法和可达性分析算法引用计数算法(Reference Counting)属于垃圾收集器最早的实现算

2022-06-30 17:32:22 138

原创 JVM内存布局和运行原理

《Java虚拟机规范》对Java堆的描述是:“所有的对象 实例以及数组都应当在堆上分配”比如JIT (Just In Time Compilation,即时编译)优化中的逃逸分析使得变量可以直接在栈上被分配当对象或者是变量在方法中被创建之后,其指针可能被线程所引用而这个对象就被称作指针逃逸或者是引用逃逸.比如以下代码就是指针逃逸, 他在方法中创建了变量 ,值却被其他值引用.所以上面的代码应该改为通过逃逸分析可以让变量或者是对象直接在栈.上分配从而极大地降低了垃圾回收的次数,以及堆分配对象的压力

2022-06-30 14:37:57 86

原创 Redis是如何实现高可用的?

因为以下四个特性所以实现了高可用数据持久化保证了系统在发生宕机或者重启之后数据不会丢失增加了系统的可靠性和减少了系统不可用的时间(省去了手动恢复数据的过程)在Redis 4.0之前数据持久化方式有两种:●RDB (Redis DataBase,快照方式)是将某一个时刻的内存数据,以二进制的方式写入磁盘,默认的保存文件为dump.rdb,优点是以二进制存储的,因此占用的空间更小.数据存储更紧凑,并且与AOF相比,RDB具备更快速的重启恢复能力●AOF (Append Only File, 文件追加方式)

2022-06-27 17:20:58 1178

原创 Redis 是如何实现消息队列的?

Redis中消息队列的四种实现方式: List 方式、ZSet 方式、发布订阅者模式、Stream 方式其中发布订阅者模式不支持消息持久化、而其他三种方式支持持久化,并且Stream方式支持消费者确认List类型实现的方式最为简单和直接通过lpush、rpop 存入和读取实现消息队列的,如下图所示:lpush可以把最新的消息存储到消息队列(List 集合)的首部rpop可以读取消息队列的尾部,这样就实现了先进先出,如下图所示:lpush 可以一次放入多个element ,但是rpop一次却只能

2022-06-27 16:44:03 446

原创 Redis的过期策略和 内存淘汰机制有什么区别?Redis 如何实现分布式锁?

Redis●对于已经过期的数据, Redis 将使用两种策略来删除这些过期键,它们分别是惰性删除和定期删除●惰性删除是指Redis服务器不主动删除过期的键值,而是当访问键值时,再检查当前的键值是否过期如果过期则执行删除并返回null给客户端;如果没过期则正常返回值信息给客户端●优点:不会浪费太多的系统资源,只是在每次访问时才检查键值是否过期缺点:删除过期键不及时,造成了一定的空间浪费●除了惰性删除之外,Redis还提供了定期删除功能以弥补惰性删除的不足●定期删除:指Redis服务器每隔一

2022-06-24 17:34:20 368

原创 关系型数据和文档型 数据库有什么区别?

●关系数据库(Relational Database)是建立在关系模型基础上的数据库借助于几何代数等数学概念和方法来处理数据库中的数据●所谓关系模型是一对一、一对多或者多对多等关系常见的关系型数据库有Oracle、SQL Server、DB2、 MySQL 等●文档型数据库是一种非关系型数据库.非关系型数据库(Not Only SQL, NoSQL) 正好与关系型数据库相反它不是建立在“关系模型”. 上的数据库文档型数据库的典型代表是MongoDB●关系型数据库属于早期的传统型数据库,它有着标准

2022-06-22 15:11:10 2122

原创 mysql优化

注意 如果是mysql 8.0 以上是没有查询缓存的步骤了.使用SHOW ENGINES命令来查看MySQL数据库使用的存储引擎,如下图所示:常用的数据库引擎有InnoDB、MyISAM、 MEMORY等●MySQL 8.0之前可以正常的使用查询缓存的功能通过“SHOW GLOBAL VARIABLES LIKE ‘query_cache_type’ ”命令查询数据库是否开启了查询缓存的功能查询缓存功能的结果值:1 OFF:关闭了查询缓存功能2 ON:开启了查询缓存功能3 DEMAND:在sq

2022-06-22 13:56:08 140

原创 spring面试题

3. request作用域:每次Http请求时都会创建一个新的 Bean该作用域仅适应于WebApplicationContext环境4. session作用域:同一个Http Session共享-个Bean对象不同的Session拥有不同的Bean对象,仅适用于WebApplicationContext环境 5. application作用域:全局的Web作用域,类似于Servlet中的ApplicationdoCreateBean 的源码bean 的初始化会自动调用方法initializeB

2022-06-17 13:58:56 177

原创 如何手动实现一个消息队列和消息队列延迟,常见的MQ中间件有哪些?

1, 如秒杀活动时 短时间内爆发大量用户请求. 如果不处理相关请求,轻则导致系统响应超时 重则导致系统宕机.如果使用消息队列 ,将请求全部写入到队列中 . 在队列中排队处理.如果超过了队列的最大请求长度.可以直接将后续的请求抛弃,返回通知给用户提示 请求出错了,请刷新.2. 系统解藕如果现在需求频繁变更的情况,如何在不修改原代码的基础上添加或者修改功能.消息队列使用场景1. 当用户进行某个操作后 需要进行日志记录时 .可以将记录日志的步骤 发送到消息队列里面常用的消息队列 RabbitMQ

2022-06-15 14:42:55 544

原创 如何实现一个本地缓存和分布式缓存

本地缓存可以使用 EhCache 和 Google的 Guava来实现分布式缓存可以使用 Memcached 和 redis 来实现EhCache的本地实现首先添加依赖然后自定义一个EhCache的实现类使用guava 生成的缓存如下如何手动实现一个本地缓存附上代码...

2022-06-15 13:19:52 331

原创 一些好用的idea开发技巧记录

1.在使用springboot 开发中,经常需要获取到配置文件的值,常用的方法是使用@Value(“${}”) 注解 ,也可以使用另外一种方式 直接在services 中注入Environment 类, 注意当输入的参数在配置文件中未找到对应的数据,会返回-1。shift+alt+↑/↓ 移动当前行代码的位置,shift+ctrl+↑/↓在方法上移动可以移动整个方法。shift+F6 修改变量,类的名字,甚至可以将变量定义到方法的参数上(抽取参数为方法的变量)Ctrl+E 查看最近打开的类。

2022-06-14 14:43:32 193

原创 实战Kafka+springboot的开发经验记录

策略模式的代码实现记录

2022-06-10 16:31:21 155

原创 JDK Proxy和CGLib

Java中的动态代理

2022-06-02 17:44:07 265

原创 业务开发中常用的Mysql函数

在日常业务开发函数中,除了常用的crud ,有时候调整、查询数据还需要用到常用、常见的函数,使用这些函数的原因除了进行业务调整以外,还是对操作的数据,进行记录GROUP_CONCAT比如需要将查询结果的ID进行其他业务处理,而这个sql又比较复杂且结果不直观时候, 我们可以将查询结果的ID进行返回然后保存当前做他sql的参数比如select GROUP_CONCAT(distinct id) from user_info– 结果 1,2,3,4,5,6,7,9,10,11,12– 将上面的sql 运

2022-06-02 15:41:00 363

原创 一些算法题记录

几个常见的面试算法题.

2022-05-05 17:55:57 2357

原创 Java有趣的面试题记录

一些有意思的面试题,后续更新

2022-04-22 16:57:27 292

原创 HashMap的初始化创建长度

hashMap的初始化容量

2022-04-22 16:41:59 935

原创 MyByatis 中使用了哪些设计模式分别是怎样体现的?

下面展示一些 。build(parser.parse()) 方法源码如下只有一个单纯的对象ErrorContext使用private 修饰的ThreadLocal来保证每个线程拥有一个ErrorContext对象在调用instance()方法时再从ThreadLocal中获取此单例对象个转换头就相当于程序中的适配器模式适配器模式在MyBatis中的典型代表是LogMyBatis中的日志模块适配了以下多种日志类型:SLF4JApache Commons LoggingLog4j 2Log4

2022-04-19 17:57:53 54

原创 ThreadPoolExecutor 线程池相关学习记录

线程池相关问题直接使用线程的run方法和start方法的区别 ,在断点方法中点击idea 的照相机的图标按钮,可以查看线程信息直接运行runstart方法启动线程池的操作效率大于普通线程操作速度,经过代码验证常见的3种线程池创建方式ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); // 运行速度最快 ExecutorService fixedThreadPool = Executors.newFixedTh

2022-03-01 00:27:19 275

原创 解决spring的循环依赖的源码解析

spring循环依赖的解决

2022-02-23 14:42:07 2292

原创 redis 三大缓存问题

redis三大缓存问题

2022-02-23 14:40:18 424

原创 redis集群搭建

redis集群搭建

2022-02-23 14:38:23 858

原创 java 虚拟机知识记录

java虚拟机基础知识学习记录

2022-02-23 14:31:07 41

空空如也

空空如也

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

TA关注的人

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