• 欢迎访问 优知学院 请加入我们的架构交流分享群优知学院-架构师进阶
  • 如果您觉得这个博客非常有看点,那么赶紧使用Ctrl+D 收藏 :优知学院 吧!

标签:java教程

Java多线程

深度源码剖析AQS的实现原理

深度源码剖析AQS的实现原理
在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS。 本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程,让你对AQS的整体设计有清晰了解,让你迈出高并发编程的第一步。 AQS AQS(AbstractQueuedSynchronizer)就是一个抽象的队列同步器……继续阅读 »

陈睿 6个月前 (12-31) 1513浏览 0评论 3个赞

Java多线程

线程的五大状态,以及线程之间的通信与协作

线程的五大状态,以及线程之间的通信与协作
在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如: Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项 Java并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 Java并发编程系列:CountDownLatch、Semaphore等4大并发工……继续阅读 »

陈睿 1年前 (2019-07-03) 2466浏览 0评论 0个赞

消息中间件

消息中间件系列(六):什么是流量削峰?如何解决秒杀业务的削峰场景

消息中间件系列(六):什么是流量削峰?如何解决秒杀业务的削峰场景
流量削峰的由来 主要是还是来自于互联网的业务场景,例如,马上即将开始的春节火车票抢购,大量的用户需要同一时间去抢购;以及大家熟知的阿里双11秒杀, 短时间上亿的用户涌入,瞬间流量巨大(高并发),比如:200万人准备在凌晨12:00准备抢购一件商品,但是商品的数量缺是有限的100-500件左右。 这样真实能购买到该件商品的用户也只有几百人左右, 但是从业务上来说……继续阅读 »

陈睿 2年前 (2018-12-29) 5491浏览 3评论 14个赞

消息中间件

消息中间件系列(四):消息队列MQ的特点、选型、及应用场景详解

消息中间件系列(四):消息队列MQ的特点、选型、及应用场景详解
前面集中谈了分布式缓存Redis系列: 高并发架构系列:分布式锁的由来、特点、及Redis分布式锁的实现详解 高并发架构系列:Redis并发竞争key的解决方案详解 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别 高并发架构系列:Redi……继续阅读 »

陈睿 2年前 (2018-12-26) 3147浏览 0评论 4个赞

Redis

Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解

Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解
Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。 Redis过期策……继续阅读 »

陈睿 2年前 (2018-12-21) 3674浏览 1评论 8个赞

Redis

Redis系列教程(八):分布式锁的由来、及Redis分布式锁的实现详解

Redis系列教程(八):分布式锁的由来、及Redis分布式锁的实现详解
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。 什么是分布式锁 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。……继续阅读 »

陈睿 2年前 (2018-12-20) 4107浏览 1评论 8个赞

Redis

Redis系列教程(七):Redis并发竞争key的解决方案详解

Redis系列教程(七):Redis并发竞争key的解决方案详解
Redis高并发的问题 Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题: 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 以及今天要谈到的Redis并发竞争问题,这里的并发指的是多个redis的cli……继续阅读 »

陈睿 2年前 (2018-12-19) 4068浏览 0评论 3个赞

学习资料

阿里架构师进阶23期精讲:Redis、Kafka、Dubbo、Docker等

阿里架构师进阶23期精讲:Redis、Kafka、Dubbo、Docker等
史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等 高并发架构系列:Redis缓存和MySQL数据一致性方案详解  Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别 高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解 如何解决Redis缓存雪崩、缓存穿……继续阅读 »

陈睿 2年前 (2018-12-18) 3103浏览 3评论 6个赞

Redis

Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解

Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解
需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。 读取缓存步骤一般没有什么问题,……继续阅读 »

陈睿 2年前 (2018-12-17) 6093浏览 8评论 9个赞

Redis

Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别
前一篇文章高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。 谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 哨兵(Sentinel):可以管理多个Redis服务器,它提供……继续阅读 »

陈睿 2年前 (2018-12-14) 5326浏览 1评论 8个赞

Redis

Redis系列教程(四):Redis为什么是单线程、及高并发快的3大原因详解

Redis系列教程(四):Redis为什么是单线程、及高并发快的3大原因详解
Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特……继续阅读 »

陈睿 2年前 (2018-12-13) 4346浏览 0评论 11个赞

Redis

Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题

Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
Java相关的面试都会问到缓存的问题:史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等,除此之外还会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等不常见的问题,但却是非常重要的问题,今天谈谈这个话题。 基本看完这两篇,可以对redis有一个比较全面的初步了解,后续我再补充redis相关的实战篇,总结为一个redis系列。 ……继续阅读 »

陈睿 2年前 (2018-12-12) 5512浏览 0评论 8个赞

Redis

Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景

Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景
高并发架构系列 高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较 高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍 高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较 高并发架构系列:Netty的实现原理、特点与优势、以及适用场景 什么是redis redis是一……继续阅读 »

陈睿 2年前 (2018-11-29) 4318浏览 2评论 8个赞

JVM

4大JVM性能分析工具详解,及内存泄漏分析方案

4大JVM性能分析工具详解,及内存泄漏分析方案
谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表、慢查询、长事务的优化等 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结 阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则(数据库分库分表) 常用的后……继续阅读 »

陈睿 2年前 (2018-11-24) 6153浏览 0评论 5个赞

微服务

微服务系列:服务注册与发现的实现原理、及实现优劣势比较

微服务系列:服务注册与发现的实现原理、及实现优劣势比较
服务注册与发现的来源 首先,服务注册与发现是来自于微服务架构的产物。 在传统的服务架构中,服务的规模处于运维人员的可控范围内。当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定。而在微服务应用中,服务实例的数量和网络地址都是动态变化的,这对系统运维提出了巨大的挑战。 而且服务集群的跨度很大、数量很多(数以百计甚至更多),为保障系统的正常……继续阅读 »

陈睿 2年前 (2018-11-22) 3517浏览 0评论 3个赞

Java NIO

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型
谈到并发编程就不得不提到NIO,以及相关的Java NIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及Java NIO框架选型。 高并发编程系列 高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK……继续阅读 »

陈睿 2年前 (2018-11-17) 7247浏览 0评论 39个赞

JVM

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解
JVM系列 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和F……继续阅读 »

陈睿 2年前 (2018-11-15) 12335浏览 0评论 30个赞

Java集合

彻底搞清楚ConcurrentHashMap的实现原理(含JDK1.7和JDK1.8的区别)

彻底搞清楚ConcurrentHashMap的实现原理(含JDK1.7和JDK1.8的区别)
ConcurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制,深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈ConcurrentHashMap的实现原理,以及在JDK1.7和1.8的区别。 为了彻底搞清楚ConcurrentHashMap的实现机制,我会先从它的底层数据实现:哈希表谈起……继续阅读 »

陈睿 2年前 (2018-11-14) 9282浏览 3评论 52个赞

Java多线程

Java并发容器的原理:7大并发容器详解、及使用场景

Java并发容器的原理:7大并发容器详解、及使用场景
之前谈过高并发编程系列: 高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解  高并发编程系列:4大JVM性能分析工具详解,及内存泄漏分析方案 高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) ……继续阅读 »

陈睿 2年前 (2018-11-09) 4409浏览 0评论 12个赞

Java多线程

Java线程池的使用方式,及核心运行原理

Java线程池的使用方式,及核心运行原理
之前谈过多线程相关的4种常用Java线程锁的特点,性能比较、使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点。 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。 为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定……继续阅读 »

陈睿 2年前 (2018-11-08) 4913浏览 0评论 16个赞

Java多线程

4种常用Java线程锁的特点,性能比较、使用场景

4种常用Java线程锁的特点,性能比较、使用场景
多线程的缘由 在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。 使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更"节俭"的多任务操作方式。 在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立……继续阅读 »

陈睿 2年前 (2018-11-07) 9882浏览 1评论 16个赞

JVM

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景
直通BAT之JVM系列 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 常见的垃……继续阅读 »

陈睿 2年前 (2018-11-05) 6602浏览 3评论 23个赞

Java多线程

线程池的实现原理、优点与风险、以及四种线程池实现

线程池的实现原理、优点与风险、以及四种线程池实现
为什么需要线程池 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存。那么有没有一种方法能让线程运行完后不立即销毁,而是让线程重复使用,继续执行其他的任……继续阅读 »

陈睿 2年前 (2018-10-20) 4805浏览 2评论 18个赞

Java集合

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制
摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。 随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。 简介 Ja……继续阅读 »

陈睿 2年前 (2018-09-29) 8931浏览 2评论 26个赞

消息中间件

消息中间件系列(三):主流的消息队列中间件有哪些?

消息中间件系列(三):主流的消息队列中间件有哪些?
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。 本文主要探讨主流的消息队列MQ比较,特征,以及典型使……继续阅读 »

陈睿 2年前 (2018-09-25) 4244浏览 0评论 6个赞

Kafka

消息中间件系列(二):Kafka的原理、基础架构、以及使用场景

消息中间件系列(二):Kafka的原理、基础架构、以及使用场景
一:Kafka简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 ……继续阅读 »

陈睿 2年前 (2018-09-07) 3729浏览 0评论 4个赞