自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(187)
  • 资源 (6)
  • 收藏
  • 关注

原创 如何使用CompletableFuture

掌握CompletableFuture可以使我们更加容易写出优雅的并发编程代码

2022-11-22 19:45:48 773 1

原创 Mysql分组排序后TOP N问题处理

在数据处理过程中很多时候会遇到需要针对数据进行分组然后获取每个分组TOP N,那么针对这样的问题应该如何处理呢?下文就使用一个示例进行介绍

2022-10-11 19:53:17 464

原创 Reflections一个强大的类扫描工具介绍

反射扫描和索引项目的类路径元数据,允许在运行时对类型系统进行反向传递查询

2022-09-11 15:54:24 2014

原创 Spring Event实现业务解耦

从实战角度出发,介绍使用SpringEvent进行解耦,提升代码可扩展性

2022-07-15 21:08:47 417

原创 高性能MySQL(InnoDB)

整理一些InnoDB的知识点

2022-07-14 22:56:56 605

原创 Spring AOP项目实战

本文主要介绍了Spring AOP的基础知识以及在项目中实际使用场景以及代码实现

2022-07-12 23:22:17 878

原创 Redis之布隆过滤器(Bloom Filter)

在使用Redis作为缓存服务的时候存在缓存穿透问题,可以使用布隆过滤器解决这样的问题,那么什么是布隆过滤器,如何在代码中使用?本文就主要解决这些问题。

2022-07-11 19:43:22 1258

原创 ThreadLocal详解

ThreadLocal常见的问题整理以及源码分析

2022-07-06 22:57:41 1135

原创 一文掌握Lambda表达式(下)

本文主要介绍lambda中Optional 与Collectors相关知识点

2022-06-30 17:34:08 229

原创 PlantUML绘制活动图

活动图是常用的动态视图,是用来描述在具体场景下如何做特定的事情;通过可视化的工具,描绘现实生活中具体事物运转流程,输出让人更直观理解,便于沟通的内容。本文重点介绍如何使用PlantUML绘制活动图.........

2022-06-28 19:40:54 5711

原创 PlantUML绘制类图

类图是描述类、接口以及它们之间的静态关系图;本文主要介绍如何使用PlantUML 绘制类图

2022-06-27 08:21:38 6199

原创 一文掌握Lambda表达式(上)

本文主要对流与操作做了一个总体的介绍,后续将详细介绍流的收集与汇聚

2022-06-26 23:30:36 478

原创 PlantUML 绘制时序图

介绍如何使用plantUML 进行绘制时序图

2022-06-24 22:45:05 4154

原创 【面试】JVM垃圾回收总结

主要介绍JVM垃圾回收算法和垃圾回收器

2022-06-23 19:55:12 190

原创 【面试】JAVA四种引用 -强引用、软引用、弱引用、虚引用

介绍并验证四种不用引用,以及Cleaner

2022-06-23 19:49:10 277

原创 【面试】五分钟掌握类加载过程

在面试中经常会遇到这样一道面试题“你知道类加载过程吗?什么是双亲委派”;下面我们就针对这个问题展开,看看类加载过程

2022-06-22 20:46:24 250

原创 【面试】五分钟掌握线程的六种状态

线程创建后的未调用start方法前的状态是NEW当线程调用start()方法,线程的状态就是RUNNABLE,表示线程已经准备就绪可以被执行了,如果CPU给该现场分配时间片,那么现场就被执行;RUNNABLE表示准备就绪,不是被执行。当线程需要进入临界区,但是前面有一个线程临界区代码正在被执行,此时现场就进入blocked状态,表示现场阻塞。 当线程在临界区内调用wait()方法,注意wait()方法必须在临界区内执行;或者调用jion方法,线程就进入等待状态,表示现场等待其他线程执行一个特

2022-06-20 18:14:07 103

原创 十分钟全面了解Redis

全面梳理Redis知识点

2022-06-18 23:10:50 456

原创 【面试】五分钟掌握内部类(静态内部类、成员内部类、方法内部类、匿名内部类)

全面总结整理了四种内部类的特性,并给出实例代码

2022-06-17 22:52:06 192

原创 【面试】五分钟掌握抽象类与接口两者之间的区别

从语法和语义两个维度来介绍两者之间的不同点,从这两个维度回答面试问题可以让面试官眼前一亮

2022-06-16 22:58:40 287

原创 【面试】五分钟掌握ABA问题以及解决办法

在很多面试中常被问ABA问题,这里就从什么是ABA以及如何解决ABA问题

2022-06-16 08:25:39 436

原创 你想知道的关于Semaphore、CyclicBarrier、CountDownLatch都在这里

通过示例代码介绍不不同使用场景,通过源码分析知其所以然

2022-06-15 22:09:16 109

原创 一文了解HTTP与HTTPS

通过图解的方式直观的介绍了http三次握手和四次挥手过程以及https四次握手过程

2022-06-11 00:31:23 406

原创 基于Groovy的规则脚本引擎实战

在实际的平台化项目中,为了提升平台抽象能力使用更多场景,引入了规则引擎。如一个用户购买了168元商品可以获得10元红包,异或是购买了指定会场商品获取50元优惠券等。在不通互动场景中活动的规则是不同的,如果通过JAVA去实现,每次有新的规则要求,都要发布一次,这样成本就太高了。基于业务场景,我们需要的就是简单的规则脚本,所以不需要引入太重的规则引擎;对比了Q LExpress 和Groovy后,我们选择了Groovy. 主要是因为groovy没有学些成本,可以直接按照Java语法风格去写。 Java 与Gro

2022-06-09 00:29:08 2076

原创 JVM内部锁升级过程(偏向锁,轻量级锁,重量级锁)

目录对象在内存中是如何布局的如何查看对象在内存中的布局markword数据结构加锁后发生了什么偏向锁什么是偏向锁为什么需要偏向锁为什么从JDK15开始默认关闭偏向锁JDK8 为什么要延迟4S后开启偏向锁锁升级流程对象在内存中是如何布局的在聊到对象加锁这个话题,那就必须先聊聊对象在内存中的布局, 你知道一个对象在内存中是如何布局的吗?一个对象new出来以后,它在内存中主要分为一下四个部分:markword 这部分就是加锁的核心,占8个字节 .

2022-05-30 23:37:41 2071

原创 BTrace简介与使用说明

大家在开发过程中总会预告各种个样的BUG,不是什么时候都可以去debug,也不是什么时候都可以去在代码中增加需要的日志,这个时候该如何解决呢?这个时候就是BTrace的大展身手的时候时候了,下面通过对于BTrace的介绍,同时会有一些示例代码希望可以给大家带来一定的了解 简介 Btrace (Byte Trace)是sun推出的一款java 动态、安全追踪工具,可以不停.........

2018-08-19 19:30:00 307

原创 Lettuce同步命令源码分析

Lettuce同步源码分析 在上一篇分享中分享了单机模式异步连接创建过程Lettuce创建连接过程源码分析; 在本次分享内容主要介绍同步命令的处理过程.Lettuce是基于Netty的Redis高级客户端,对于异步命令来说是天然的,那么lettuce中是如何处理同步命令的呢?实际上同步连接还是对异步命令的一次封装;下面我们就通过源码进行分析看看Lettuce中的具体实现. 通.........

2018-07-01 11:05:00 458

原创 Lettuce创建连接过程源码分析

Lettuce是一个高级的Redis客户端,下面通过对其创建连接过程的源码进行走读 下面看看RedisClient是如何创建单机模式的异步连接的, 首先从RedisClient中的connectAsync看起,在该方法中并没有什么特别的地方,在对RedisURI进行非空校验后就直接调用了内部方法public <K, V> StatefulRedisConnection......

2018-06-30 15:04:00 982

原创 Lettuce之RedisClusterClient使用以及源码分析

Redis Cluster模式简介 redis集群并没有使用一致性hash算法而引入了哈希槽概念,Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽.也就是说如果key是不变的对应的slot也是不变的 Redis 服务器命令 cluster info可以通过cluster in.........

2018-06-17 20:30:00 2128

原创 Lettuce连接池

Lettuce 连接被设计为线程安全,所以一个连接可以被多个线程共享,同时lettuce连接默认是自动重连.虽然连接池在大多数情况下是不必要的,但在某些用例中可能是有用的.lettuce提供通用的连接池支持. 如有疏漏后续会更新 https://www.cnblogs.com/wei-zw/p/9163687.html连接池是否有必要? Lettuce被线程安全的,它满......

2018-06-10 17:07:00 2935

原创 Lettuce命令延迟测量(CommandLatency)

Lettuce使用了LatencyUtils进行命令延迟测量,LatencyUtils是一个延迟统计追踪开发包,提供了很多有用的追踪工具.LatencyStats的设计旨在通过简单、嵌入式(drop-in)的延迟行为记录对象,对进程间延迟进行记录和追踪。LatencyStats的功能包括底层追踪和暂停影响纠正、遗漏补偿等。通过可插拔式的暂停监测器与区间估计(interval estima...

2018-06-09 13:52:00 479

原创 Lettuce异步读取过程分析

通过走读Lettuce异步读取源码,针对Lettuce连接建立过程进行源码走读总体展示一个Lettuce异步get时序通过时序图可以发现MasterSlaveChannelWriter主要提供一个负载分配的功能,并不是真正的命令发送服务下面通过源码分析实现过程public static <K, V> StatefulRedisMasterSlaveConnection&...

2018-06-08 22:02:00 322

原创 Lettuce在Spring boot中的使用方式

Lettuce是一个可伸缩线程安全的Redis客户端。多个线程可以共享同一个RedisConnection.本文是基于Lettuce5,主要介绍的知识点如下:Lettuce在Spring Boot中的配置Lettuce的同步,异步,响应式使用方式事件的订阅发布自定义事件读写分离读写分离策略实现源码客户端分片实现@Configurationpublic class Lett...

2018-06-06 23:06:00 1636

原创 Mybatis ResultMap复合映射使用以及源码分析

我们知道在mybatis中可以针对一列值作为入参进行嵌套查询,那么如果入参为多个时该如何处理呢? mybatis支持复合映射,下面通过示例代码看看复合映射的使用 <resultMap id="postLiteMap2NestedWithSelect" type="org.apache.ibatis.domain.blog.BlogLite"> <id colum.........

2018-05-07 11:52:00 307

原创 序列化反序列化源码分析以及Mybatis中的实际运用

目录序列化反序列化Mybatis中的实际使用 主要知识点: writeObject writeReplace readObject readResolve序列化与反序列化的定义 序列化就是将对象转为字节码的过程,反序列化则是将字节码转换为对象的过程序列化 JAVA序列化 java.i.........

2018-04-29 14:06:00 781

原创 Mybatis BatchExecutor源码分析

在介绍Mybatis批处理之前,首先回顾一下PreparedStatement的批处理假如现在需要向用户表中插入两条数据,如果不适用批处理的实现如下,有三次网络交互//加载驱动 Class.forName("org.hsqldb.jdbcDriver"); //获取连接 Connection connection = DriverManager.getConn...

2018-04-28 15:26:00 135

原创 Mybatis插件的使用以及源码分析

Mybatis支持那些类型插件Executor (update, query, flushStatements, commit, rollback,getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets...

2018-04-24 15:15:00 56

原创 Mybatis中selectKey源码分析

刚回答了一个问题这样一个问题,mybatis不能正常返回主键增加值 下面通过源码分析一下selectKey都具体实现;关于Mybatis 基于注解Mapper源码分析可以看一下具体解析过程。 如果向数据库中插入一条数据,同时有希望返回该条记录的主键,该怎么处理了?有两种情况:数据库主键不是自增列,需要预先生成是自增列,插入后才能知道 这两种情况都可以通过SelectKe...

2018-04-23 21:01:00 139

原创 Mybatis 基于注解Mapper源码分析

目前Mybatis除了可以通过XML配置SQL外还可以通过注解的形式配置SQL,本文中主要介绍了Mybatis是如何处理注解SQL映射的,通过源码分析处理过程XML配置<configuration> <settings> <setting name="defaultExecutorType" value="SIMPLE"/> &lt.........

2018-04-22 22:38:00 116

原创 MyBatis的二级缓存以及装饰器模式运用

目录Mybatis中如何配置二级缓存Cache解析处理过程Cache支持的过期策略装饰器模式装饰器源码Mybatis中如何配置二级缓存基于注解配置缓存@CacheNamespace(blocking=true)public interface PersonMapper { @Select("select id, firstname, lastname fro......

2018-04-21 21:58:00 333

JAVA基础技术框架面试题.txt

3基础技术框架.txt

2022-06-15

2022最新字节面试题

字节面试题-新.docx

2022-06-15

JAVA基础技术框架详解二.pdf

JAVA基础技术框架详解二.pdf

2022-06-11

JAVA基础技术框架详解一.pdf

JAVA基础技术框架详解一.pdf

2022-06-11

Jetty Demo

Hello Jetty 入门简单实例!可直接运行!

2013-10-07

W3CSchool电子书

W3CSchool电子书

2013-05-06

空空如也

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

TA关注的人

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