- 博客(16)
- 收藏
- 关注
原创 volatile关键字的作用详解
1.volatile关键字的作用详解概要:我们经常在java变量当中发现有些属性用volatile修饰,volatile修饰的属性到底和没用这个关键字修饰的属性有什么不同呢?1.1 Java内存模型:定义了程序中各种变量的访问规则 首先我们要了解volatile变量的作用,就必须了解Java的内存模型,我们都知道CPU的计算速度是远远大于磁盘io,而应用的瓶颈通常也是消耗在磁盘io,网络io,访问资源等。为了使存储设备更解决cup的处理速度,我们通常会使用高速缓存来作为内存和处理器之间的缓存,
2021-04-11 20:04:15 365
原创 ArrayList集合解析
Java8 ArrayList集合解析 1.概念解析: ArrayList底层就是个数组,不过他封装了一系列对数组的操作,并且实现了自动扩容 2.首先我们来看下类中有哪些属性/** * 默认的初始化容量大小为10 */private static final int DEFAULT_CAPACITY = 10;/** * 用于共享空实例的共享空实例数组 */private static final Object[] EMPTY_ELEMENTDATA = {};/**
2021-04-10 08:59:15 148
原创 Java8 HashMap集合解析
Java8 HashMap集合解析1.概要:hashMap作为面试常用考点经常被问道,所以需要多加了解,带着问题去思考才是最好的学习手段,在分析之前我先提几个问题 1.HashMap的put流程? 2.扩容机制? 3.底层数据结构? 4.默认容器大小和默认负载因子? 5.什么时候转红黑树什么时候又退化成链表? 6.线程安全吗?为什么不安全2.首先了解一个类之前,我们先来分析类中有哪些属性/**
2021-04-09 14:18:42 164
原创 ES写入找不到主节点问题排查
1.记一次线上es问题:写入找不到主节点背景描述: 某天早上突然收到容器的流量告告警,network ingress usage high: 63289.54 KB/s 即网络入口使用量过高…开始还没在意,因为没发现影响到上线的业务…信息过少也不好排查。。。直到数据中心那边说每天定时小时级别写入数据到es集群的任务出现问题挂了…我才赶紧把运维拉了进来让运维帮忙分析…首先数据的小伙伴抛出了一个异常信息出来:Caused by: ClusterBlockException[blocked by: [SER
2021-04-09 06:59:28 3360 1
原创 Spring事务的七种传播行为
1.什么是事务的传播行为: 即一个包含事务的方法调用另一个方法,事务的传递机制有哪些2.七种传播行为: 1.REQUIRED(默认值):如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中 2.SUPPORTS:如果当前存在事务则加入到当前事务运行, 不存在则以非事务运行 3.MANDATORY(强制的):支持当前事务,如果不存在则抛出异常4.REQUIRES_NEW:如果当前没有事务则自己创建一个新的事务,如果存在当前事务,则当前事务会被挂
2021-04-09 06:51:24 177
原创 Elasearch选主流程过程分析总结
1.ES选主流程分析 概要: 我们知道es本身就是具有分布式特性的框架,并且采用的主从的架构,有主有从,那么当出现网络故障或主节点挂了,ES如果维持集群的状态,重新选举出一个master结点呢?1.1 采用的选举算法 es采用的选择算法是Bully算法,他假定集群中所以结点都有一个唯一的ID,使用该ID对结点进行排序。任何时候的当前Leader都是参与集群的最高ID结点.相关概念可参考:https://zhuanlan.
2021-01-30 20:18:10 439
原创 Synchronized原理及锁升级
1. Synchronized概念及作用 1.1 现如今的操作系统已经步入多核时代,可以支持大量的并行并发的访问计算机资源,既然存在并行和并发则如何处理各个线程对同一资源进行修改和访问的数据安全性问题.要保证正确的并发访问手段,提供方式有互斥同步,非阻塞同步. 互斥同步: 同步是指在多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一条线程访问,而互斥是实现同步的一种手段,临界区,互斥量(Mutex)和信号量都是常用的互斥实现方法,互斥是因,同步是果;
2020-10-05 11:44:32 272
原创 Netty的零拷贝机制
(1)什么是零拷贝 零拷贝其实就是将不必要的拷贝消除掉,内核层面可以通过其他硬件来实现,而用户空间层面可以通过自身的逻辑来消息不必要的数据拷贝。而不是通过CPU来实现将一个数据区域复制到另一个,总之一句话尽量消除不必要的copy机制(2) Netty是如何做到的呢 2.1直接内存 在执行I / O操作时,比如通过
2020-05-16 14:02:38 366
原创 netty源码深度解析(二)
ServerBootstrap创建流程解析(1) 直奔主题public final class EchoServer { public static void main(String[] args) throws Exception { //配置一个bossGroup. &...
2020-05-08 15:19:43 271
原创 netty源码深度解析(一)
(一) Netty的概念 1.1 Netty是一个NIO客户端服务器框架,可以快速轻松地开发网络应用程序,例如协议服务器和客户端。它极大地简化和简化了网络编程,例如TCP和UDP套接字服务器。比如阿里的RPC框架Dubbo和其概念。 &nbs...
2020-04-30 14:37:05 774
原创 springboot redis执行lua脚本报错:@user_script:1: ERR value is not an integer or out of range
Caused by: io.lettuce.core.RedisCommandExecutionException: ERR Error running script (call to f_50c4a82077451bbe92991e3a3facfa9ab88b58e4): @user_script:3: ERR value is not an integer or out of rangeat...
2020-04-16 20:21:53 2966
原创 记一次springboot整合dubbo依赖冲突错误
启动dubbo服务就报错!org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘requestMappingHandlerMapping’ defined in class path resource [org/springframework/boot/autoconfigu...
2020-03-27 20:26:37 928
原创 阿里巴巴开发手册总结(2)-异常日志
(一)异常处理1.【强制】Java 类库中定义的可以通过预检查方式规避的 RuntimeException 异常不应该通过 catch 的方式来处理,比如:NullPointerException,IndexOutOfBoundsException 等等。即会发生异常的地方可以通过预检测的方式,不要通过catch的方式2 【强制】异常不要用来做流程控制,条件控制。 直接抛出3.【强制】cat...
2020-03-06 13:28:10 105
原创 Spring Single Bean生命周期源码解析
我们都知道spring包含着管理bean的容器,那么bean的创建过程是如何的呢?他的生命周期又是如何体现的呢?我们先来看一张图这图包含了一个bean是如何在spring容器当中从生存到死亡的。接下来我们来看这些过程在源码那些地方能体现出来1.实例化//这里我直接手动创建一个context,并通过getBean()触发bean的创建过程 ClassPathXmlApplication...
2020-03-04 14:57:06 260
原创 阿里巴巴开发手册总结(1)-编程规约
(一)命名风格1.代码中的命名不能以**$**和_(下划线)开头和结束。这个规则是强制的,工作当中千万不能这样命名。例如:_name / name / name/name/namename / name_ / namename/name/name / name2.代码中的命名严禁使用中文和拼英和英文混合,楼主之前实习的时候干过这样的蠢事情,其实也知道不能但是偷懒不知道对应的英文。被Leade...
2020-03-03 15:35:23 544
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人