自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hxt的博客

成长中的Java攻城狮

原创 二刷Java多线程:Java并发包中线程同步器详解(CountDownLatch、CyclicBarrier、Semaphore)

一、等待多线程完成的CountDownLatch 1、案例介绍 public class CountDownLatchDemo { private static CountDownLatch countDownLatch = new CountDownLatch(2); ...

2019-10-06 18:19:35

阅读数 307

评论数 0

原创 二刷Java多线程:Java并发包中锁详解(一):抽象同步队列AQS

一、抽象同步队列AQS 队列同步器AbstractQueuedSynchronizer是用来构建锁或者其他组件的基本框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作 同步器的主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态,...

2019-10-02 18:49:21

阅读数 70

评论数 0

原创 TCP与UDP协议

一、TCP协议 1、TCP 的特性 TCP提供一种面向连接的、可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复 TCP使用滑动窗口...

2019-09-16 16:55:48

阅读数 66

评论数 0

原创 分布式配置中心Apollo详解(二):Apollo设计原理、将Config Service和Admin Service注册到自己的Eureka Server、Apollo配置信息加密

五、Apollo设计原理 1、架构模块 上图简要描述了Apollo的总体设计,从下往上看: Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端 Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面) ...

2019-07-20 17:12:29

阅读数 461

评论数 0

原创 Redis实现分布式锁

使用Jedis实现Redis客户端,且只考虑Redis服务端单机部署的场景 一、可靠性 为了确保分布式锁可用,锁的实现至少要同时满足以下三个条件: 互斥性。在任意时刻,只有一个客户端能持有锁 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。...

2019-04-10 16:08:21

阅读数 320

评论数 0

转载 Docker核心技术与实现原理

https://draveness.me/docker

2019-03-30 07:07:28

阅读数 368

评论数 0

原创 Redis缓存雪崩、缓存击穿、缓存穿透和常见的几种缓存模式

一、缓存雪崩 1)、什么是缓存雪崩? 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩 由于原有缓存失效,新缓存未到期间所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机 2)、有什么解决方案来防...

2019-03-09 14:58:05

阅读数 390

评论数 0

原创 Linux下的五种I/O模型

一、程序空间与内核空间 在Linux中,对于一次读取的I/O的操作,数据并不会直接拷贝到程序的程序缓冲区。它首先会被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的缓冲区 Waiting for the d...

2019-03-04 22:45:31

阅读数 338

评论数 0

原创 Spring Cloud原理

之前一直在看《Spring Cloud微服务实战》,最近又看了公众号石衫的架构笔记的《拜托!面试请不要再问我Spring Cloud底层原理》,对Spring Cloud的主要组件的原理有了更深的理解,特地做一下总结 一、Spring Cloud核心组件:Eureka (1)Netflix E...

2019-01-19 15:16:25

阅读数 1921

评论数 0

原创 LeetCode腾讯精选练习(50 题)

一、数组相关题目 1、LeetCode54:螺旋矩阵 给定一个包含mxn个元素的矩阵(m 行,n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素 示例1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,...

2019-12-13 07:35:54

阅读数 145

评论数 0

原创 字符串操作问题

一、字符串基础问题 1、LeetCode709:转换成小写字母 实现函数ToLowerCase(),该函数接收一个字符串参数str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串 示例1: 输入: "Hello" 输出: "hello" 示例2...

2019-12-08 16:18:13

阅读数 12

评论数 0

原创 动态规划相关题目详解

一、LeetCode746:使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始) 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为...

2019-12-08 14:54:08

阅读数 18

评论数 0

原创 初识AVL树和红黑树

一、平衡二叉查找树 二叉查找树支持快速插入、删除、查找操作,各个操作的时间复杂度跟树的高度成正比。而平衡二叉查找树是为了解决普通二叉查找树在频繁的插入、删除等动态更新的情况下,出现时间复杂度退化的问题 平衡二叉查找树中平衡的意思,其实就是让整棵树左右看起来比较对称、比较平衡,不要出现左子树很高...

2019-12-02 09:05:35

阅读数 24

评论数 0

原创 LRU Cache、LinkedHashMap源码分析2.0

一、LRU Cache LRU Cache(最近最少使用缓存机制):当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间 LRU Cache工作示例: LRU Cache一般使用哈希表+双向链表来实现,支持时间复杂度为O(1)O(1)O(1)的查...

2019-12-01 15:21:56

阅读数 86

评论数 0

原创 N皇后问题

LeetCode51:N皇后 n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击 上图为8皇后问题的一种解法 给定一个整数n,返回所有不同的n皇后问题的解决方案 每一种解法包含一个明确的n皇后问题的棋子放置方案,该方案中Q和.分别代表了皇后和空位 示...

2019-11-29 10:02:15

阅读数 29

评论数 0

原创 排序算法

排序算法过程动态图:https://visualgo.net/zh/sorting 一、排序算法基础理论 原地排序:特指空间复杂度是O(1)O(1)O(1)的排序算法 排序算法的稳定性:如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后排序不变,这种排序算法称为稳定的排...

2019-11-27 20:42:25

阅读数 37

评论数 0

原创 位运算

一、位运算 1、位运算符 运算符 含义 << 左移,左边的二进制位丢弃,右边补0 >> 右移,正数左补0,负数左补1,右边丢弃 >>> ...

2019-11-27 08:55:04

阅读数 26

评论数 0

原创 并查集

一、并查集 并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题 并查集主要包含以下几种基本操作: init(s):建立一个新的并查集,其中包含s个单元素集合 union(x, y):把元素x和元素y所在的集合合并,要求x和y所在的集合不相交,如果相交则不合并 find(x...

2019-11-24 14:52:18

阅读数 18

评论数 0

原创 Trie树(字典树)

一、Trie树 Trie树,也叫字典树,是一种专门用来处理字符串匹配的树形结构,用来解决在一组字符串集合中快速查找某个字符串的问题 Trie树可以最大限度地减少无谓的字符串比较,查询效率比哈希表高 Trie树的本质就是利用字符串之间的公共前缀,将重复的前缀合并在一起 举个例子,有6个字符串...

2019-11-19 07:19:36

阅读数 32

评论数 0

原创 动态规划

一、动态规划 1)动态规划和递归或者分治没有根本上的区别(关键看有无最优的子结构) 相同点:找到重复子问题 不同点:最优子结构、中途可以淘汰次优解 2)使用DP解决问题的步骤 找到重复子问题 状态定义 写出DP方程 二、动态规划相关题目 1、LeetCode62:不同路径 一个机器人位于一个m...

2019-11-15 07:32:34

阅读数 22

评论数 0

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