04 2023 档案
摘要:文章目录 HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异HashMap的数据结构和原理JDK1.6、1.7和1.8中的HashMap源码演变JDK1.6JDK1.7JDK1.8 总结自己实现一个简单的HashMapHashMap的时间复杂度分析HashMap的空间
阅读全文
摘要:文章目录 CopyOnWriteArrayList 的底层原理与多线程注意事项1. CopyOnWriteArrayList 底层原理1.1 概念说明1.2 实现原理1.3 优点1.4 缺点 2. CopyOnWriteArrayList 多线程注意事项与实例2.1 注意事项2.2 示例2.2.1
阅读全文
摘要:文章目录 Java集合框架与ArrayList、LinkedList的区别集合框架ArrayList特点操作 LinkedList特点操作 区别代码实践注意事项 Java集合框架与ArrayList、LinkedList的区别 在Java中,集合框架是非常重要的一部分。集合框架提供了各种数据结构和算
阅读全文
摘要:文章目录 Java中的String、StringBuffer和StringBuilderString 类型特点操作 StringBuffer 类型特点操作 StringBuilder 类型特点操作 总结代码实践注意事项 Java中的String、StringBuffer和StringBuilder
阅读全文
摘要:文章目录 消息队列如何保证消息可靠性传输可靠性传输机制持久化存储消息确认机制重试机制幂等性处理 Apache Kafka 实践生产者代码实现消费者代码实现 RabbitMQ 实践生产者代码实现消费者代码实现 操作步骤总结 消息队列如何保证消息可靠性传输 随着互联网的发展,消息队列已经成为了系统设计中
阅读全文
摘要:文章目录 RocketMQ 底层实现原理RocketMQ 消息发送流程生产者发送消息Broker 存储消息消费者拉取消息 RocketMQ 内存管理机制PageCacheConsumeQueue RocketMQ 崩溃恢复机制消息队列偏移量Checkpoint 文件CommitLog 文件校验 Ro
阅读全文
摘要:文章目录 kafka的push、pull分别有什么优缺点Push 模式优点缺点 Pull 模式优点缺点 实践操作 kafka的push、pull分别有什么优缺点 Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,广泛应用于各大互联网公司的消息系统中。在 Kafka 中,生产者使用
阅读全文
摘要:文章目录 InnoDB如何实现事务、undo log、redo log、binlog多版本并发控制(MVCC)锁机制操作步骤InnoDB的事务概念特性1. ACID特性2. 事务控制块(TCB)3. undo log4. redo log binlog InnoDB如何实现事务、undo log、r
阅读全文
摘要:文章目录 B树、B+树的区别及MySQL为何选择B+树1. B树和B+树的定义B树B+树 2. B树和B+树的区别存储结构叶子节点查询性能 3. MySQL为什么选择B+树 B树、B+树的区别及MySQL为何选择B+树 1. B树和B+树的定义 B树和B+树都是一种多路搜索树,常用于数据库和文件系统
阅读全文
摘要:文章目录 用户角色权限设计(功能权限)需求特点关于设计关于权限管理系统的重用性 用户角色权限设计(功能权限) 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览
阅读全文
摘要:文章目录 MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别InnoDB存储引擎特点操作示例创建InnoDB表修改表引擎为InnoDB MyISAM存储引擎特点操作示例创建MyISAM表修改表引擎为MyISAM MEMORY存储引擎特点操作示例创建MEMORY表修改表引擎为ME
阅读全文
摘要:文章目录 MySQL索引B+树、执行计划explain、索引覆盖最左匹配、慢查询问题B树与B+树的区别及MySQL为何选择B+树B树和B+树的基本概念B树和B+树的区别叶子节点的存储方式非叶子节点的结构叶子节点之间的关系 MySQL选择B+树索引结构的原因 Explain各个字段的含义索引覆盖与最左
阅读全文
摘要:文章目录 MySQL执行计划详解什么是执行计划?如何查看执行计划?1. 使用EXPLAIN关键字2. 使用MySQL Workbench 如何优化查询效率?1. 索引优化2. 避免使用SELECT *3. 优化SQL语句 实践演练总结 MySQL执行计划详解 在使用MySQL进行数据库开发和运维过程
阅读全文
摘要:文章目录 Redis缓存MySQL数据库存储二者如何保证数据一致性数据一致性问题缓存穿透缓存雪崩 Redis缓存MySQL数据库存储一致性解决方案方案一:读写数据库时同步更新缓存方案二:使用消息队列异步更新缓存 总结 Redis缓存MySQL数据库存储二者如何保证数据一致性 在大型互联网应用中,由于
阅读全文
摘要:文章目录 Java缓存穿透、击穿、雪崩解决方案缓存穿透解决方案代码实践 缓存击穿解决方案代码实践 缓存雪崩解决方案代码实践 总结 Java缓存穿透、击穿、雪崩解决方案 在互联网高并发的场景下,对于数据库查询频率高的数据,为了提高查询效率,常常会采用缓存技术进行优化。然而,缓存技术也会带来一些问题,比
阅读全文
摘要:文章目录 Redis主从复制的核心原理Redis主从复制的基本概念Redis主从复制的核心原理Redis主从复制的优点Redis主从复制的实践代码和操作步骤步骤一:安装Redis步骤二:配置主Redis服务器步骤三:配置从Redis服务器步骤四:测试主从复制 总结 Redis哨兵模式的核心原理Red
阅读全文
摘要:文章目录 CountDownLatch、CyclicBarrier、Semaphore 的原理以及实例总结一、CountDownLatch二、CyclicBarrier三、Semaphore总结 CountDownLatch、CyclicBarrier、Semaphore 的原理以及实例总结 在Ja
阅读全文
摘要:文章目录 JAVA8函数式编程中关于集合的各种操作实例(持续更新增加实例) JAVA8函数式编程中关于集合的各种操作实例(持续更新增加实例) map - 将集合中的每个元素映射为另一个元素 示例:将数字集合中的每个元素平方并返回平方后的集合。 List<Integer> nums = Arrays.
阅读全文
摘要:文章目录 Redis分布式锁的实现方式及底层原理Redis分布式锁的实现方式1. SETNX命令2. SET命令带过期时间3. Redlock算法 Redis分布式锁的底层原理代码实践集群环境下Redis分布式锁的实现方式Redlock 实现的分布式锁以及对应的代码实现细节 Redis分布式锁的实现
阅读全文
摘要:文章目录 HashMap的关键性源代码进行解读put(key, value)get(key)resize()使用HashMap需要注意以下几个问题或场景HashMap线程不安全体现HashMap的扩缩容细节 HashMap的关键性源代码进行解读 HashMap是Java中用来存储键值对的一个类,实现
阅读全文
摘要:文章目录 SpringCloud微服务技术栈的配置中心SpringCloud Config简介前提条件操作步骤第一步:搭建配置中心接口1. 创建Spring Boot应用程序2. 配置application.yml文件 第二步:配置客户端1. 创建Spring Boot应用程序2. 配置bootst
阅读全文
摘要:文章目录 Netty的高性能体现在哪些方面1. 非阻塞I/O2. 零拷贝3. 内存池4. 线程模型 Netty的高性能体现在哪些方面 Netty是一个高性能、异步事件驱动的网络应用程序框架,它具有出色的稳定性和灵活性。在现代的分布式系统和互联网应用中,Netty已经成为构建高效、可扩展和解耦合的网络
阅读全文
摘要:文章目录 Netty的线程模型什么是线程模型线程模型实践开发环境服务器代码服务端处理器测试服务器 Netty的线程模型 Netty是一个高性能、异步事件驱动的网络编程框架。它提供了一个基于NIO的抽象层,使得开发者可以轻松地构建可伸缩、可扩展的网络应用。 在Netty中,线程模型是一个重要的概念。它
阅读全文
摘要:文章目录 从BIO到NIO、AIO和零拷贝BIONIOAIO零拷贝结论 从BIO到NIO、AIO和零拷贝 在JAVA的网络编程方面,BIO、NIO、AIO和零拷贝是我们必须掌握的技术,它们分别代表着不同的网络编程实现方式。 BIO BIO(Blocking I/O)阻塞式I/O模型是Java网络编程
阅读全文
摘要:文章目录 分布式事务处理常用手段及生产实践引言两阶段提交补偿事务消息队列可靠消息最终一致性结论 分布式事务处理常用手段及生产实践 引言 在分布式系统架构设计中,如何保证数据的一致性是一个非常重要的问题。而分布式事务处理就是解决这个问题的常见手段之一。本篇将介绍常见的分布式事务处理手段,并结合生产实践
阅读全文
摘要:文章目录 从零开始,手把手教你实现基于 Websocket 的微服务1. Websocket 简介2. 构建基于 Websocket 的微服务应用2.1 准备工作2.2 编写服务端代码2.3 编写客户端代码 3. 技术实践案例:基于 Websocket 的在线聊天室3.1 界面设计3.2 服务端实现
阅读全文
摘要:文章目录 SpringBoot常见的的面试点什么是SpringBoot?SpringBoot的优缺点是什么?SpringBoot如何实现自动配置?SpringBoot如何实现热部署?SpringBoot与Spring Cloud的关系是什么?常用的SpringBoot注解有哪些?如何在SpringB
阅读全文
摘要:文章目录 SpringCloud微服务技术栈之网关服务Gateway前言网关服务Gateway的基本概念Gateway的体系结构Gateway的主要功能 网关服务Gateway的架构设计架构设计方案示例代码 网关服务Gateway的实践操作1. 创建工程2. 配置路由规则3. 实现过滤器4. 集成服
阅读全文
摘要:服务雪崩、服务限流、服务熔断和服务降级 文章目录 服务雪崩、服务限流、服务熔断和服务降级服务雪崩解决方案及代码实践限流步骤1:添加Hystrix依赖步骤2:创建HystrixCommand步骤3:配置Hystrix 缓存步骤1:添加依赖步骤2:配置缓存步骤3:使用缓存 超时重试步骤1:添加依赖步骤2
阅读全文
摘要:文章目录 SpringCloud微服务技术栈的注册中心Eureka简介Eureka特点操作步骤环境准备创建Eureka Server注册服务提供方调用服务消费方 总结 SpringCloud微服务技术栈的注册中心Eureka 简介 在微服务架构中,服务的数量庞大,而且每个服务可能会有多个实例。此时,
阅读全文
摘要:文章目录 Dubbo服务暴露步骤详解背景介绍理论知识讲解什么是服务暴露?Dubbo 服务暴露的基本原理 操作步骤具体实现环境准备实现服务接口实现服务提供者配置 Dubbo 服务提供者启动服务提供者实现服务消费者配置 Dubbo 服务消费者测试 总结 Dubbo服务暴露步骤详解 背景介绍 Dubbo
阅读全文
摘要:文章目录 Dubbo负载均衡策略Dubbo负载均衡策略操作步骤1. 环境准备2. 配置提供者3. 编写服务提供者接口与实现类4. 配置消费者5. 编写服务消费者代码6. 运行项目7. 扩展Dubbo负载均衡策略8. 配置扩展负载均衡策略9. 运行项目 Dubbo负载均衡策略 在Dubbo中,负载均衡
阅读全文
摘要:文章目录 ZK节点间数据同步以及API实践数据同步原理实践操作环境准备创建节点更新节点删除节点 总结 ZK节点间数据同步以及API实践 Apache ZooKeeper(以下简称ZK)是一个分布式的协调服务,为分布式系统提供了一致性、可靠性和高性能。ZK可以用于实现诸如统一命名服务、配置管理、分布式
阅读全文
摘要:文章目录 ZooKeeper领导者选举流程Leader选举算法代码实践总结 ZooKeeper领导者选举流程 ZooKeeper(ZK)是一个分布式系统协调服务,它可以用来管理配置信息、提供分布式锁等。在ZK中,一个节点可以被选为领导者,其他节点则作为从节点,领导者节点负责处理客户端请求,从节点则通
阅读全文
摘要:分布式理论CAP、BASE和RPC CAP 原则 CAP原则是指当分布式系统遇到网络分区时,只能满足其中两个需求,一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。在实际系统中,我们常常会选择在CA、CP或AP三者中做出取舍。
阅读全文
摘要:IDEA中如何配置并查看OpenJDK8的源码? 下载openjdk源码: http://hg.openjdk.java.net/jdk8/jdk8/jdk/ IDEA中配置SDK 查看源码 可以看到Unsafe都有javadoc了: 这里也分享包含java、javax包的所有源文件,你可以下载解压
阅读全文
摘要:文章目录 分布式锁介绍及解决方案什么是分布式锁?常用的分布式锁实现方式ZooKeeper 实现分布式锁ZooKeeper 分布式锁实现步骤ZooKeeper 分布式锁示例代码 Redis 实现分布式锁Redis 分布式锁实现步骤Redis 分布式锁示例代码 分布式锁的应用场景参考资料 分布式锁介绍及
阅读全文
摘要:文章目录 分布式ID介绍及实际解决方案分布式ID生成方案UUID自增IDSnowflake算法 总结参考资料 分布式ID介绍及实际解决方案 在分布式系统中,生成全局唯一的ID是一个常见的需求。但是,在分布式系统中,单机生成的ID难以保证全局唯一性,因此需要一种分布式ID生成方案。 分布式ID生成方案
阅读全文
摘要:文章目录 生产环境常见的限流算法令牌桶算法漏桶算法令牌桶算法 vs 漏桶算法操作步骤结束语 生产环境常见的限流算法 在高并发场景下,为了保护系统的稳定性和可用性,需要对请求进行限流。本文介绍几种生产环境中常见的限流算法,并结合Java代码实现。 令牌桶算法 令牌桶算法是一种基于固定时间间隔补充令牌的
阅读全文
摘要:文章目录 延迟队列的设计与最佳实践RabbitMQ实践RabbitMQ延迟队列的设计RabbitMQ延迟队列的最佳实践 Redis实践Redis延迟队列的设计Redis延迟队列的最佳实践 总结 延迟队列的设计与最佳实践 在现代分布式系统中,延迟任务是一种非常重要的概念。它们可以用来处理需要特殊关注或
阅读全文
摘要:ClassPool 类池 一个ClassPool对象是包含CtClass对象的容器。一旦一个CtClass对象被创建后,就会被记录到一个ClassPool中。这是因为编译器在编译源码时会引用代表CtClass的类,可能会访问CtClass对象。 比如,假设一个新的方法getter()被添加到一个代表
阅读全文