自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试官再问你时可以侃侃而谈的Redis原理

Java缓存机制java中要用到缓存的地方很多,首当其冲的就是持久层缓存,针对持久层谈一下:要实现java缓存有很多种方式,最简单的无非就是static HashMap,这个显然是基于内存缓存的一个map就可以搞定引用对象的缓存,最简单也最不实用,首要的问题就是保存对象的有效性以及周期无法控制,这样很容易就导致内存急剧上升,周期无法控制可以采用SoftReference,WeakReferen...

2019-07-31 18:10:19 111

原创 JVM-java内存结构与垃圾回收机制算法分析

Java内存结构java堆所有的对象实例以及数组都要在堆上分配,所有线程共享java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。java堆是垃圾收集器管理的主要区域,因此也被成为“GC堆”(Garbage Collect...

2019-07-29 15:40:50 169

原创 当你看到singleton Prototype request不在茫然之Spring作用域

spring作用域singleton作用域:当一个bean的 作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。换言之,当把 一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例...

2019-07-29 11:33:07 221

原创 MySQL数据库索引原理

为什么需要使用索引?数据结构Hash,平衡二叉树,B树,B+树的区别机械硬盘,固态硬盘的区别Myisam和Innodb B+树的区别MySQL中的索引是什么数据结构B+树中的节点到底存放多少...

2019-07-28 10:55:19 121

原创 LCN(使用springCloud)分布式事物原理

1. 分布式事物产生的背景在微服务环境下,因为会根据不同的业务拆分成不同的服务,比如说会员服务,订单服务,商品服务等。让专业的人做专业的事,每个服务都有自己独立的数据库,独立运行,互不影响。服务与服务之间通讯采用RPC(dubbo)/http(springCloud)远程调用技术,但是每个服务中都有自己独立的数据源,即自己的本地事务。两个服务相互通讯的时候,两个本地事务互不影响,从而出现分布式...

2019-07-26 11:41:49 832

原创 看完此篇文章可以快速熟悉Spring事务

脏读:读取到了未提交的事物A线程:A的原工资是12K,财务B将A的工资改为20K(但是没有提交)与此同时,A正在select自己的工资,发现结果为20K,而财务B发现操作有误,回滚了事物不可重复读:在一个事物中前后两次读取的结果不一致,导致了不可重复读A读取自己的工资为12K,操作还没有完成B修改了A的工资为20K,并提交了事务A再次读取工资为20K幻读:在读取的时候有其他线程插入了...

2019-07-12 17:28:39 122

原创 FastDFS原理

什么是FastDFSFastDFS是一个开源的轻量级分布式文件系统,解决了大数据存储和负载均衡等问题。特别适合以中小文件(4Kb-500MB)为载体的在线服务,如相册网站,视频网站等等。FastDFS架构跟踪服务器(tracker server):主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组合存储服务器的状态信息,是客户端和数据服务端交互的枢纽.存储服务器(storage...

2019-07-12 15:29:31 104

原创 作为程序员不得不知道的Mysql锁机制原理

**一,概述**表级锁:开销小,加锁快;不会出现死锁,发生锁冲突概率高,并发度最低行级锁:开销大,加锁慢;会出现死锁,发生锁冲突概率最低,并发度也高页面锁:开销和加锁介于表级和行级之间;会出现死锁;锁粒度介于表锁和行锁之间,并发度一般表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如web运用行级锁则更适合于有大量按索引条件并发更新少量数据,同时又有并发查询的运用,如在线...

2019-07-11 16:15:19 160

原创 Mybatis分页原理

逻辑分页:Mybatis是如何通过我们设置的RowBounds来返回分页结果的原理:首先是将所有结果查询出来,然后通过计算offset和limit,只返回部分结果,操作在内存中进行,所以也叫内存分页。弊端:当数据量大的时候,肯定是不行的物理分页:直接为sql添加limit拦截器PageHelper,调用了startPage后,他会通过PageInterceptor对其后的第一个执行sql进...

2019-07-10 22:23:43 13596 1

原创 四种常用线程池介绍

线程池概念:线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好的提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一个线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待下一次执行下一任务2,使用线程池的原因;系统不断的启动和关闭新线程,成本非常高,会过度消耗系统资源,以及过度切换线程的危险,重...

2019-07-10 17:18:27 1517

原创 Lock和synchronized的选择

Lock是一个接口,synchronized是java关键字monitor,synchronized是内置的语言实现的CASsynchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁发生;而lock异常时没有主动通过unlock()释放锁,则很可能会造成假死现象,因此使用Lock需要在finally块中释放锁;Lock可以让等待锁响应中断,而synchronized却不行...

2019-07-10 15:35:52 363

空空如也

空空如也

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

TA关注的人

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