0%

本次接着上篇说jdk 中的HashMap,这个是一个比较复杂的重点,因为看懂了这个,后面Redis 的数据结构基本上就懂一半,而且之后所有涉及hash 表的逻辑都可以套用,最主要的就是这玩意儿面试问jdk 基本都要被问到。本次我会和结合hash表、hash碰撞的解决来聊一下hashMap 的源码,同时会将jdk1.7 和1.8 之间hashMap 区别更新说一下,至于1.8 扩容出现的红黑树这里会简单聊一下,具体的后面算法文章再详谈。

阅读全文 »

本次会将剩下的AOP 内容全部聊一下,其实就是剩一个请求调用全流程了,后续Spring 系列文章就还剩boot 和cloud 呢,boot 在我面试前应该还能讲一讲,但是cloud 因为这些年一直在保险行业混,现在也不是很清楚,分布式现在能记住的就是dubbo 体系的了,这个只能后面再说了,如果面试这个必须上的话,我就再看看cloud 然后整理一下相应文章,不行的话,只能等面试结束了,不过今年应该能写完。

阅读全文 »

Spring IOC 一系列文章下来,我们已经了解了整个spring IOC 核心refresh 方法的全部内容,这个方法名我是每篇文章都有提到,一定要记住。本次就聊一下IOC 的最后一个知识点:循环依赖的问题。

什么是循环依赖?

很多小伙伴都在各种渠道听到过“循环依赖”这个词,也应该有一定了解,但是我这里还是要重新在具体描述一下循环依赖的概念。

循环依赖是指:在spring IOC 容器初始化的时候,记住是初始化,不是实例化,上篇文章IOC流程解析-实例化和初始化 就已近说过了spring 对于bean 的实例化和初始化是分开的,一定要记住这里是指初始化,也就是为bean 对象属性赋值的是时候,如果目前初始化的对象A,其中有一个属性对象B,那么这里就会先去加载注册对象B,但是如果B中又有属性对象A,但是A目前还在初始化过程,这样就会形成了循环依赖。

简单描述就是:A 对象加载B 对象的时候,B 对象反过来需要加载A 对象。甚至可以再加多个中间对象,比如加一个C 对象,那么这就是A 对象加载B 对象的时候,B 对象需要加载C 对象,而C 对象又需要加载A 对象。只要形成加载循环,那么就会存在循环依赖的问题。

阅读全文 »

spring 现在算是针对java语言的企业级业务的基本框架了,现在中高级面试基本都要问spring,其中的区别就是深度问题,我后面的文章也是对于spring 源码的分析,不再针对初级内容做解析了,主要就是简单说下spring 的基本概念,然后就是说IOC 容器部分的内容了,如果不知道spring 基本使用的初学者建议还是要先看看基础的相关文章。

Spring的设计理念

spring 是面向bean的编程,bean 在spring 中才是真正的主角。bean 在spring 中的作用就相当于是object 对于oop 的意义一样。spring 中没有bean 也就没有spring 存在的意义。spring 提供了IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系。

控制反转也就是IOC,是面向对象编程中的一种设计原则,可以用来降低代码之间的耦合。其中常见的方式叫做依赖注入,还有一种方式叫依赖查找。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将所有依赖的对象的引用传递给它。

阅读全文 »

本篇作为JDK 源码分析的第一篇,就先从简单的说起。本篇主要分析的就是Object、ArrayList 以及LinkedList 的源码,Object 主要就是简单介绍一下hashCode 的生成还有一些基本的概念,object 本身来说也并不是很复杂,面试的时候也不会问到太多,所以也就不多聊。剩下的ArrayList 和LinkedList 都是从数据结构、初始化、增删改查以及扩容流程来详谈。

阅读全文 »

时间许久再次捡起博客,新的一年开始学习新的内容,没什么好说的,还是得卷,本篇主要是总结最近一段时间在学习的docker 命令,后续在总结阿里云服务器的购买和使用流程,以及docker 的安装流程。

阅读全文 »

上篇讲了keycloak 的概述和项目搭建流程,本篇的主要内容就是配置权限粒度管理、RBAC-API配置、单点登出等,算是对上篇keycloak 基础内容的一个加强,至于集成网关、用户数据注册存储、docker 部署等内容后面再说。

阅读全文 »

keycloak 目前算是完全空白的一开内容,后续的一系列文章都是来整理学习这块内容的,目前本篇要做的就是了解keycloak 是什么?用于做什么?然后怎么配置启动?怎么集成到项目中?

阅读全文 »

本次内容为解析核心方法剩下的全部内容,重点是bean 的实例化和初始化部分。对于其余IOC 部分内容感兴趣的小伙伴可以根据文章最后的导航栏直接跳跃。

源码分析

接着上篇文章(上篇文章是:[IOC流程解析-BeanFactoyPostProcessor和BeanPostProcessor](https://liwqtm.github.io/2022/03/14/Spring IOC-3/#more)),我们还是继续看IOC 的核心方法refresh 方法的内容。这次会提到两个面试常问的问题:BeanFactory 和FactoryBean 的区别、FactoryBean 和普通Bean 的区别,这个文章的最后我会细说一下,有需要面试的小伙伴可以直接跳到文章最后查看。

阅读全文 »