- 博客(10)
- 收藏
- 关注
原创 JDK源码解析--ArrayList
一、ArrayList简介ArrayList是用一个数组实现的集合,支持随机访问,元素有序且可以重复。 ArrayList是一种变长的集合类,基于定长数组实现。 ArrayList允许空值和重复元素,当在其添加的元素数量大于其底层数组容量是,其会通过扩容机制重新生成一个更大的数据。 ArrayList底层基于数组实现,所以可以保证在0(1)复杂度下完成随机查找操作。 ArrayList并非线程安全类,在并发环境下,多个线程同时操作ArrayList,会引发不可预知的异常或错误。Random
2022-04-11 07:29:34
277
1
原创 JDK源码解析--Object类
作为一名java开发,肯定会知道object类,object类是所有类的基类,当一个类没有直接继承任何类时,默认继承object类,所以也被称之为“上帝类”。一、继承Object的时机由此,我们抛出一个问题,object类时什么时候成为一个类的父类的?是编译时还是虚拟机处理的时候。这里我们通过JDK自带的反编译工具javap来看一下就明白了可以看到在编译时期就已经继承了object类二、类中方法解析这是object类中方法,其中...
2022-04-11 05:10:40
492
原创 SpringCloud-Gateway高级应用及解析
Gateway作为SpringCloud体系中的网关,可以用来进行鉴权,安全控制,日志统一处理,易于监控,限流等。
2022-03-14 02:21:33
1456
原创 Dubbo服务暴露(导出)流程
Dubbo作为一个Rpc框架,服务端必须得将自己暴露出去,以便客户端的调用,所以我们来看一下dubbo是如何将服务进行暴露的。首先我们知道,启动dubbo得进行一些配置,如下图所示的一些dubbo标签(关于spring为什么能识别dubbo标签,可以搜索一下spring的schema机制,这里不做阐述,因为不是重点)然后我们可以在下图的文件中找到两个命名空间处理器(因为dubbo是由阿里巴巴捐赠给apache),点进apache的文件里面 进去之后可以看到就...
2022-02-20 22:15:02
1348
原创 Java中的Spi以及Dubbo中的Spi机制解析
SPI 全称为 Service Provider Interface,是一种服务发现机制。本质是由将接口的实现类的全限定名配置在文件当中,由服务加载,这样可以在运行时,动态的为接口加载实现类。举个例子,我们在用JDBC连接数据库时,创建连接就能直接获取到Mysql或者Oracle,Java时如何调用到相对应的驱动呢?我们将连接数据库看作一个扩展点,其他数据都是该点的实现,当我们需要连接相对应的的数据库时,Spi会帮助我们发现有哪些实现并加载。一、J...
2022-02-16 00:38:05
596
1
原创 Netty通信技术(一)
一、简介一、概述Netty是JBOSS提供的一个开源框架, 本质为网络应用程序框架, 提供了非阻塞的、事件驱动的网络应用程序框架和工具,便于快速开发出高性能、高可靠性的网络服务端以及客户端。二、核心架构上图是netty的核心架构,从官网上截取的, 有兴趣的可以去看看核心:可拓展的事件模型 统一的通信API,简化了通信编码 零拷贝和丰富的字节缓冲区传输服务:支持Socket和Datagram(数据报) HTTP传输 In-VM Pi...
2022-01-06 17:58:12
786
原创 SpringBoot--自动装配原理详解及应用之Conditional注解
SpringBoot作为当今开发的主流框架,作为一名java开发是不可能的不了解的,这个东西是典型的用起来很简单,但是了解到原理之后就会不自觉地感叹,真TMNB! 本文主要讲解其自动装配的原理,以及我们日常中怎么去用到这块的内容。一、Conditional注解 首先我们先建立一个Student对象,里面没有任何属性public class Student {}然后我们建立一个命题:如果项目中导入了fastjson,则会将Student放...
2021-12-06 00:10:41
1291
原创 Java中的关键字volatile解析
volatile是研究Java并发编程绕不过去的一个关键字,先说结论:volatile的作用: 1.保证被修饰变量的可见性 2.保证程序一定程度上的有序性 3.不能保证原子性下面,我们将从理论以及实际的案例来逐个解析上面的三个结论 一、可见性 在JVM的当中...
2021-09-15 01:02:54
457
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人