自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 红黑树源码解读,附带【左旋/右旋】动图 (代码不想看 或看不懂 直接越过看总结)

源码解读红黑树介绍平衡插入算法(插入的节点默认为红色)左旋算法总结:变颜色条件:两个连续红色节点,并且叔叔节点是红色左旋条件:两个连续红节点,并且叔叔节点是黑色 , 下面的红色节点在右子树情况1情况2右旋条件:两个连续红节点,并且叔叔节点是黑色 , 下面的红色节点在左子树情况1情况2

2020-07-30 11:29:40 5076

原创 后端常考的算法题 整理

K 个一组翻转链表 4121.买卖股票 4三数之和 3最小栈 3二叉树中的最大路径和 3199.二叉树的右视图 3无重复字符的最长子串 3合并两个有序数组 3将有序数组转换为二叉搜索树 3平衡二叉树 3二叉树的最近公共祖先 3搜索旋转排序数组 3零钱兑换 3删除排序链表中的重复元素 2反转链表 2class Solution { public ListNode reverseList(ListNode head) { ListNode curr = .

2021-12-20 19:24:51 682

原创 2021-07-05

1.单元测试相关知识单元测试概念相关注解@Test 标识当前是一个单元测试方法@Before会在单元测试执行之前做一些事情@Ignore:这个注释是用来忽略有关不需要执行的测试的。断言Assert简单来讲 断言就是"判断"。 在单元测试中 我们可以针对接口预期的返回结果,进行判断Junit所有的断言都包含在 Assert 类中。Assert 类中的一些有用的方法列式如下:void assertEquals(boolean expected, boolean actual):检查两个

2021-07-05 15:26:23 136 1

原创 分布式事务介绍

分布式事务介绍什么是分布式事务我们来想象一个场景,现在有一个微服务架构的电商系统,其中包含了订单服务、库存服务他们分别部署在不同的服务器上,连接的也是不同的数据库。(以下的操作不考虑复杂情况)现在用户对商品进行购买操作,我们要做两件事:1.调用订单服务====> 针对用户下单的商品进行订单生成入库2.调用库存服务====> 针对该商品进行库存削减假如我们的系统是单体架构:也就是说所有的服务都在一个项目中(最原始的方式),那么解决办法非常简单,只需要把这两个操作加入到一个本地事

2020-12-23 15:20:48 251 2

原创 Seata集成Spring boot,cloud实战&&源码解读原理

分布式事务介绍、Seata框架实战分布式事务介绍什么是分布式事务分布式事务的解决方式2PC1. 第一阶段:2. 第二阶段:结论TCCSeata的AT模式AT模式介绍:- 一阶段会进行事务提交- 二阶段:等等...略Seata集成实战Seata须知Seata与SpringBoot、Cloud集成测试结果分布式事务介绍什么是分布式事务我们来想象一个场景,现在有一个微服务架构的电商系统,其中包含了订单服务、库存服务他们分别部署在不同的服务器上,连接的也是不同的数据库。(以下的操作不考虑复杂情况)现在用户

2020-12-22 15:13:17 4414 7

原创 并发编程篇-CAS技术

并发编程篇-CAS技术CAS(Compare and Swap)CAS(Compare and Swap)CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术就是利用CPU的CAS指令:进行如下操作1.从内存中读取数据(我们可以称之为旧值) 2.比较旧值和内存中的变量是否相同 3.如果相同,则进行新值的写入(写入1),返回成功,不相同则返回失败Java并发包中的很多类都使用了CAS技术先举个例子:开启10000个线程,对

2020-09-25 11:50:20 263

原创 Java中的Synchronied的锁原理及升级过程,探究想上厕所的小华是怎么拉裤兜子的

小明去小华家玩耍,中途小明想要上厕所,而小华家只有一个厕所。 我们将厕所比喻对象的锁、而小明,小华是抢占锁的两个线程、 门上的名字代表偏向的线程ID、上厕所的过程就是执行同步代码块。 1. 小明进入厕所,在自己的手上签下记录,关门后~~门上亮

2020-09-24 17:48:59 8101

原创 数据结构篇-ConcurrentHashMap源码解读(JDK1.8和1.7的对比)

ConcurrentHashMap源码解读并发编程须知CAS(Compare and Swap)Java中的锁:Synchronized和Lock实现原理以及对比ConcurrentHashMap(JDK1.7)ConcurrentHashMap的添加(JDK1.7)ConcurrentHashMap获取size(JDK1.7)ConcurrentHashMap(JDK1.8)ConcurrentHashMap的添加(JDK1.8)ConcurrentHashMap获取size(JDK1.8)并发编程须知

2020-09-23 13:17:53 194

原创 数据结构篇-HashMap(JDK1.8版本)的优化【源码解读】

HashMap[JDK1.8]的优化【源码解读】目录介绍1.链表会变为红黑树2.扩容后的重新hash2.hashcode的计算方式目录介绍首先我们知道,hashmap扩容是原长度的2倍,接着会进行rehash,也就是将原来的数据,进行重新计算hash值。在jdk1.8中,进行了优化。优化了以下几点:1.链表会变为红黑树1.7中由于链表太长,导致查询速度变慢(链表查找的时间复杂度为 O(n)),形如而在1.8中如果链表长度超过8,并且数组长度>=64,则变为红黑树(查找时间复杂度O(lo

2020-09-21 14:38:25 505 2

原创 面试题常考-JVM篇(没事就更新)

1.JVM参数主要有几种分类?2.Java中会内存泄漏么,简述一下3.Java虚拟机是如何判定两个Java类是相同的?4.Java中都有哪些引用类型5.Java中对象什么时候可以被垃圾回收?5.1.什么是GC root?6.StackOverflow一般会在什么情况下发生?7.堆空间分为哪几个部分,以及如何设置而各个部分?8.什么是栈帧?栈帧存储了什么?9.如何设置参数输出GC的日志

2020-08-07 16:09:56 279

原创 JVM篇-安装Visual GC插件

1、访问地址:https://visualvm.github.io/pluginscenters.html,找到自己JDK版本对应的插件下载地址(我的JDK版本为1.8.0_66):2、点击该链接进入如图界面,找到Visual GC插件,点击下载3、打开Java VisualVM,工具——>插件——>已下载——>添加插件——>安装:4、安装完成后的界面...

2020-08-04 12:25:21 347

原创 如何理解面向对象?

基础知识篇:类和对象的个人理解             用书上的语言来描述:具有相同属性和行为的事物抽象出来的集合 称之为类,而对象是类的实例。什么是相同的属性和行为呢?           比如 我们每个人(人而不是其他物种哦)都有眼睛,鼻子,嘴,这些事物所拥有的 静态的,就是我们人的属性, 我们同时   可以吃饭 , 睡觉 , 打豆豆,这些我们的动作就称之为行为。            所以我...

2018-04-24 20:06:00 133

空空如也

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

TA关注的人

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