自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 ReentrantLock源码解析

可重入锁源码分析AQS 首节点:1.是持有锁的线程 2如果没有持有锁,则虚拟出来的线程节点。 假如T2拿到线程, T2又变成首节点了。 队首的线程不参与队列,第一人永远处于受理状态,第二个才是排队的第一个。ReentrantLock实现了Lock接口,Lock接口中定义了一下锁需要实现的方法。类中定义了不可变的Sync属性. Sync是一个静态的抽象类,继承了AbstractQueue...

2019-10-22 18:24:11 164

原创 Redis与Mysql怎么样保证一致性

//本文是对看到的文章进行的总结,文章原地址已经忘记了一、先更新数据库,再更新缓存(Pass) 存在的问题: //线程安全角度A更新了数据库 B更新了数据库 因为网络的原因线程B先更新了缓存 A更新了缓存 //业务场景角度 写多读少的场景:根本没去操作读数据,而缓存就被频繁的更新,浪费性能。二、先删除缓存,再更新数据库 场景...

2019-09-29 11:29:25 188

原创 Spring源码导入到 IDEA

IDEA导入Spring源码1.先从github上面把spring源码下载下来并解压。地址:https://github.com/spring-projects/spring-framework 切记:解压完成后不要直接用IDEA打开,如果已经用IDEA打开了请删除后重新解压。2.因为Spring源码是用gradle构建的。所以先去官网下载gradle地址:http:/...

2019-09-24 09:11:11 468 1

原创 CAS总结

CAS:compare and Swap 翻译成比较并交换偏移量: 指的是该元素在二进制文件中的位置CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。compareAndSet这个方法主要调用unsafe.compareAndSwapInt这个方法,这个方法有四个参数,其中第一个参数为需要改变的对象,第二...

2019-09-03 15:15:00 227

原创 SpringMvc的工作流程

2019-09-03 15:09:39 77

转载 互联网场景下为什么不建议用Join

第一:单机的数据库资源很稀缺,要同时服务读和写,都需要消耗CPU。为了能让数据库的吞吐变得更高,而业务又不在乎这几百微妙到毫秒级的延时差距。业务可以选择把更多计算放到service层做。毕竟计算机资源很容易扩展,数据库较难。所以大多数业务会把纯计算操作放到service层,而将数据库当成一种带事务能力的KV系统来使用,这是一个重业务,轻DB的架构思路。第二:由于数据规模庞大,不得不对数据进行分...

2019-08-22 14:53:18 1443

原创 RocketMq总结

MQMQ可以应用于 应用解耦、流量削峰、消息分发。还可以保证最终一致性、方便动态扩容等功能。Product Consumer Broker NameServer cluster发信者 收信者 负责传输 调度室 集群nameserver是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。broker分为master与slave,一个master可以对应多个sla...

2019-07-04 15:47:42 496

原创 Mybatis的初始化

Mybatis最近接了一个需求,就是要把上传的Excel中的数据导入到数据库的某张表中。咋看这是一个比较简单的需求,但是这张表有可能在A、B、C等等数据库上,这个是通过配置来获取的。由于该系统的其他的业务运行时只需要A数据库,只有解析Excel数据的时候会涉及到其他的数据库,所以在application中只配置A数据库,其他数据库只在需要的时候创建连接。代码如下:由于数据库的...

2019-05-19 16:08:39 270

转载 jedis与Lettuce

最近开发的项目需要接入redis,在网上查了一下redis的客户端分别有jedis和Lettuce网上说jedis和Lettuce的主要区别是,jedis在多线程环境下,线程是不安全的。而Lettuce在多线程环境下线程是安全的。那为什么jedis在多线程环境下是不安全的呢?1.jedis是基于redis设计的,redis本身就是单线程的,所以jedis就没有做多线程的处理。jedis实...

2019-01-15 13:24:32 3272

原创 项目总结

1.为什么做这个项目,做这个项目的背景2.这个项目要做成什么样子,针对我想象中的样子,我做了什么工作。3.做个系统之前,有没有去了解市场上已经存在的类似系统。对他们了不了解,为什么没有直接拿过来使用。4.为什么选择这些技术,你是如何选择的。5.开发是从页面入手还是从其他方面6.开发的过程中遇到了哪些问题,是怎么解决的。7.做出来的效果是不是满足预期8.你对这个项目的规划是什么样子的...

2018-12-21 10:45:33 236

原创 SpringBoot的启动(一)

面试的时候被人问springBoot的启动流程,鄙人直接回答不知道。于是面试完之后便就浅尝一下springBoot的启动流程,在此做个总结与回顾。SringBoot的启动是通过下面这个代码触发的。首先让我们看一下SpringApplication被实例化的时候经历过哪些事情。先读一下SpringApplication类的注释。说的内容大概如下:SpringApplication用与...

2018-11-29 17:36:42 192

原创 好的开头

1.一周熟悉自己将要负责的那部分的业务与代码        a.首先看页面元素与操作        b.其次看业务文档,然后自己分析业务场景与背景        c.看代码细分业务        d.输出自己的了解与业务疑问的文档和流程图            2.做需求的方式        a.首先了解需求的背景及目标,要深入        b.了需求的人群以及场景等特征   ...

2018-11-26 20:07:34 282

原创 面试为什么会问spring

首先摊开两个问题:1.为什么要问spring。2.想得到一个什么样的回答我们先来分析下第一个问题:为什么要问spring?在WEB项目中,目前大行其道的后台框架是spring,springBoot,springCloud。后两个都是基于spring的基础上再进行开发和扩展的,其底层还是spring。之所以问这个问题的目的就是要了解,你使用这个框架的时候有没有去了解框架的特性。那为什么了不了...

2018-11-20 20:31:58 148

原创 LinkedBlockingQueue 单向链表的实现

之前犯了一个错误,一直以为ArrayBlcokingQueue用的是单向链表,LinkedBlockingQueue用的是双向链表。这是一个错误的理解,在此要纠正下。ArrayBlcokingQueue与LinkedBlockingQueue在自定义线程池的时候经常用的两种队列模式。ArrayBlcokingQueue是 基于数组的先进先出阻塞队列。LinkedBlockingQueu...

2018-08-20 15:38:36 558 1

翻译 两阶段与三阶段提交协议

首先了解一下为什么要使用多阶段提交协议这个东西。在分布式系统中,我们会存在一个方法对多个库进行插入或更新。但是每个节点只能知晓自己的操作是成功或失败,却无法知道其他节点的成功和失败。这样的话就会导致数据的不一致性。当一个事务跨越了多个节点时,为了保持数据的一致性,所以就引进了两阶段提交协议这个东西。所谓两阶段提交协议:第一阶段:准备阶段(投票阶段)                   ...

2018-08-01 18:09:06 297

原创 浅尝jvm-GC

GC 又叫垃圾回收器,释放垃圾占用空间。若想了解GC首先我们来看一下JVM的内存模型。 JVM 的内存主要分为如下几种类型的内存空间。程序计数器:是一块较小的内存空间属于线程私有,它可以看做是程序运行时的灯塔它的工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基功能。Java的栈:属于线程私有,它的生命周期与线程相同每个方法被执行的时候都会创建...

2018-07-08 17:01:50 151

翻译 二、简单的Http

2.1  Http的通信Http是用于客户端和服务器之间的通信。Http协议规定,请求从客户端发出,最好服务端响应请求,并返回。也就是说,肯定是先从客户端开始建立通信的,服务端在没有接收到请求之前不会发送响应。               2.2请求报文的构成                  Http/1.1表示服务器对应的Http版本       200OK 表示请求的处理结构的状态码和原因短...

2018-05-16 20:07:44 190

翻译 一、Http学习

一、Http基础如果想了解http,首先我需要了解Tcp/ip协议。通常网络请求都是在Tcp/ip协议上,http是属于Tcp/ip协议内部的一个子集。1.1         Tcp/IP中最重要的一点就是分层,依次分为应用层、传输层、网络层、数据链路层。分层的好处是每个层级相互独立,方便修改与维护,类似于微服务的设计方式。    客户端通过TCP/IP通信传输流访问服务器的方式,如下图     ...

2018-05-12 18:48:39 375

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除