- 博客(13)
- 收藏
- 关注
原创 阿里架构阿里架构师手把手带你a学Mybatis开源ORM框架“
上述是我在写这个框架时的一些思路历程,代码演示请见我github。通过自己手写源码,对mybatis也有了个深刻的见解。当然有很多问题,后面也会进一步去完善,如果你对这个开源项目感兴趣,不妨star一下呀!
2022-12-21 17:09:03
208
原创 字节最新算法题解:在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。
2022-12-21 17:06:03
140
原创 20 道 Spring Boot 面试题,我经常拿来面试别人!
有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓。Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。下面,我给大家总结下有哪些 Spring Boot 的面试题,这是我经常拿来问面试者的,希望对你有帮助。
2022-12-20 17:02:03
1285
原创 面试官:分布式锁用Redis好?还是Zookeeper好?
提到锁大家肯定有了解,像 Synchronized、ReentrantLock,在单进程情况下,多个线程访问同一资源,可以用它们来保证线程的安全性。不过目前互联网项目越来越多的项目采用集群部署,也就是分布式情况,这两种锁就有些不够用了。来两张图举例说明下,本地锁的情况下:分布式锁情况下:就其思想来说,就是一种“我全都要”的思想,所有服务都到一个统一的地方来取锁,只有取到锁的才能继续执行下去。说完思想,下面来说一下具体的实现。Redis 实现为实现分布式锁,在 Redis 中存在 SET
2022-12-20 17:01:54
143
原创 面试官问:Spring 如何解决循环依赖?
有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓。从图中我们可以很清楚的看到,B 对象的 a 属性是在第三步中注入的半成品 A 对象,而 A 对象的 b 属性是在第二步中注入的成品 B 对象,此时半成品的 A 对象也就变成了成品的 A 对象,因为其属性已经设置完成了。但是需要注意的是,这个 A 是一个引用,其本质上还是最开始就实例化的 A 对象。
2022-12-20 17:01:17
78
原创 学不会K8s的程序员有福了 阿里P8实战笔记,进大厂靠他就够了
写在前面在开源云计算技术蓬勃发展的过程中,Kubernetes、 容器、微服务、区块链、智能运维、大数据等技术和理念的融合应用,无疑已经成为影响云计算发展格局的几项关键技术。云计算是IT信息技术发展和服务模式创新的集中体现,是信息化发展的重大变革和必然趋势。有不少企业已经在生产环境中大规模使用容器技术支撑微服务化的应用,获得了灵活、快速、弹性、高效所带来的收益。越来越多的企业也已经顺应趋势、改变思路,开始尝试或者采用该类技术,根据业务特性选择适合的业务,通过逐步推进来建设自己的企业级容器云平台。容器云
2022-05-14 18:23:28
857
原创 牛批了第一次见到这么清晰的微服务概述,助你轻松入门到进阶
前言随着各行各业的快速发展,业务规模的不断扩大,不可避免地造成原有架构不能够适应快速的增长和变化。这时,微服务就进入大家的视野,其实在微服务之前,很多公司已经做过服务化的改造,并且取得了一定的成果,但是对于整体流程的标准化还有一定有差距。那么,什么是微服务呢?微服务概述准确地说,微服务是一种软件架构模式,将大型系统或者复杂的应用分割成多个服务的架构,服务之间互相协调、互相配合,为用户提供最终价值。每个服务都有独立的生命周期,可以单独维护和部署,各个业务模块之间是松耦合的,比传统的应用程序更有效地利用了
2022-05-14 18:22:13
231
原创 面试官:分布式锁用Redis好?还是Zookeeper好?
提到锁大家肯定有了解,像 Synchronized、ReentrantLock,在单进程情况下,多个线程访问同一资源,可以用它们来保证线程的安全性。不过目前互联网项目越来越多的项目采用集群部署,也就是分布式情况,这两种锁就有些不够用了。来两张图举例说明下,本地锁的情况下:分布式锁情况下:就其思想来说,就是一种“我全都要”的思想,所有服务都到一个统一的地方来取锁,只有取到锁的才能继续执行下去。说完思想,下面来说一下具体的实现。Redis 实现为实现分布式锁,在 Redis 中存在 SET
2022-05-13 20:04:42
103
原创 SpringMVC工作原理
SpringMVC的工作原理图:SpringMVC原理用户发送请求至前端控制器DispatcherServlet。DispatcherServlet收到请求调用HandlerMapping处理器映射器。处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。DispatcherServlet调用HandlerAdapter处理器适配器。HandlerAdapter经过适配调用具体的处理器(Co
2022-05-13 20:04:07
122
原创 这可能是目前最透彻的Netty原理架构解析二
Netty 工作原理架构初始化并启动 Netty 服务端过程如下:public static void main(String[] args) { // 创建mainReactor NioEventLoopGroup boosGroup = new NioEventLoopGroup(); // 创建工作线程组 NioEventLoopGroup workerGroup = new NioEventLoopGroup(); final Serv
2022-04-02 20:51:46
274
原创 这可能是目前最透彻的Netty原理架构解析
本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。JDK 原生 NIO 程序的问题JDK 原生也有一套网络应用程序 API,但是存在一系列问题,主要如下:NIO 的类库和 API 繁杂,使用麻烦。你需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、By
2022-04-02 20:50:11
933
原创 netty源码分析之服务端启动全解析
老套路,学习某一门技术或者框架的时候,第一步当然是要了解下面这几样东西。是什么?有哪些特点?有哪些应用场景?有哪些成功使用的案例?…为了让你更好地了解 Netty 以及它诞生的原因,先从传统的网络编程说起吧!还是要从 BIO 说起传统的阻塞式通信流程早期的 Java 网络相关的 API(java.net包) 使用 Socket(套接字)进行网络通信,不过只支持阻塞函数使用。要通过互联网进行通信,至少需要一对套接字:运行于服务器端的 Server Socket。运行于客户机端的 Client So
2022-04-01 21:45:20
183
原创 Netty源码分析之Reactor线程模型详解
分析了Netty服务端启动的初始化过程,今天我们来分析一下Netty中的Reactor线程模型在分析源码之前,我们先分析,哪些地方用到了EventLoop?NioServerSocketChannel的连接监听注册NioSocketChannel的IO事件注册NioServerSocketChannel连接监听在AbstractBootstrap类的initAndRegister()方法中,当NioServerSocketChannel初始化完成后,会调用case标记位置的代码进行注册。fi
2022-04-01 21:40:18
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人