1 Keyloved

尚未进行身份认证

做一个了不起的自己!

等级
TA的排名 13w+

美的云部门面试总结(2020春季校招)

自我介绍项目介绍项目中的职责?怎么实现?Spring IoC、AOP原理?Spring和SpringBoot的区别?ArrayList和LinkedList的区别?会那些设计模式?讲讲代理模式、观察者模式?Spring中哪个地方用到了哪些设计模式?红黑树的原理及使用场景?UDP的原理及使用场景?三次握手?MySQL联合索引时,where后有个 int = 字符类型,索引还...

2020-02-27 15:29:23

Redis的数据类型及使用场景

数据类型特点使用场景String缓存功能、计数器、共享用户SessionList双向链表消息队列、文章列表或者数据分页展示的应用Set去重交集、并集、差集,如查看两个好友的共同好友Sort Set去重、排序排行榜、带权重的队列Hash类似Map存放结构化数据,比如用户信息;用来建索引...

2020-02-24 10:14:35

Redis快的原因详解

[ 概念回顾] :Redis是一个开源的,使用C语言编写的,支持集群、分布式、主从同步等配置的、基于内存的、可持久化的、单进程的、单线程的k-v框架。基于内存;key -value的数据结构。查找的时间复杂度为O(1);单线程:避免了上下文切换和多线程切换消耗 CPU;单进程:避免了多进程切换消耗 CPU和加锁、释放锁、死锁的问题;多路I/O复用,非阻塞IO;...

2020-02-24 08:56:12

Redis之持久化

一. 为什么需要持久化「概念回顾」:Redis是一个开源的,使用C语言编写的,支持集群、分布式、主从同步等配置的、基于内存的、可持久化的、单线程的key-value框架。「原因」:正因为Redis是基于内存的,所有的读写操作均在内存中进行,所以有着极高的性能,但是服务器重启会导致数据丢失,因此需要将内存中的数据存储到磁盘中,方便重启时能够从磁盘中恢复数据。二. 持久化的方式快照(R...

2020-02-22 15:51:28

Redis的keys命令和scan命令

虽然通过keys命令或scan命令都可以找出Redis中具有某特征的所有数据,但二者具有一定区别。keys命令因为Redis是单线程的,当它需要提供别的服务时,keys命令会导致服务器阻塞;scan命令scan命令虽然解决了keys命令带来的问题,但scan命令得到的数据会有重复的可能,需在客户端做一次去重。...

2020-02-21 15:54:04

布隆过滤器(BloomFilter)

一. Redis的三大问题名称问题解决方法缓存穿透查询了一个不存在的数据布隆过滤器缓存击穿某个key的缓存失效互斥锁缓存雪崩多个Key的缓存同时失效失效时间+随机时间二. 布隆过滤器的原理底层是一个bit二进制向量或叫 bit 数组,bit 里存放的数据非0即1。通过散列函数将元素映射到bit的相应位置,并将此位置置为1。如hash(元素...

2020-02-21 13:54:03

集合框架之CurrentHashMap

一. 简介 CurrentHashMap是线程安全的、采用数组+链表实现的Key-Value结构。二. 原理为什么要将CurrentHashMap线程安全?

2020-02-20 10:15:07

short a = 1;a = a + 1;a += 1的错对原因

为什么a = a + 1是错,而a += 1是对?分析因为1是int类型,因此a + 1也是int类型,故需要将int类型强转为short类型,所以a = a + 1是错的;而 a += 1之所以正确,是因为它进行了不为人知的类型转换,即a = (short)(a + 1)。...

2020-02-20 09:42:37

快速失败(fail-fast)和安全失败(fail-safe)

一. 快速失败(fail-fast)原理迭代器遍历集合时,迭代器中维护了一个modCount 变量,当遍历下一个元素前,都会判断modCount 的值是否为expectedModCount,若为expectedModCount则返回遍历结果;否则抛出ConcurrentModificationException异常,终止遍历。快速失败之HashMapHashMap中的Iterato...

2020-02-19 17:44:15

集合框架之HashMap详解

一. 简介 HashMap是底层采用数组+链表实现的线程不安全的Key-Value结构。二. 原理插入元素通过put()方法传递键值对时,键先调用hashCode()方法,并返回一个hash值,通过hash值对数组长度取余(即index = HashCode(Key) % Array.length)找到数组对应的位置,再遍历链表判断链表中是否有此Key,如果链表中已有此Key(即发...

2020-02-18 20:38:34

集合框架之ArrayList详解

一. 简介ArrayList即数组列表,是线程不安全的,底层采用数组(即Object[] elementData)实现了数据的存储,故其查询快,增删慢。二. 扩容源码解析若未添加数据,则默认容量为0;若通过add()方法添加数据后,默认的初始容量为10;当数组满了,再新增数据时,会以1.5的倍数进行扩容(如:原容量为10,扩容后为15),再将原数组中的数据复制到新数组中。...

2020-02-18 16:05:23

MySQL架构分析

一. 架构图二. 组件介绍连接器进行数据查询时,通过连接器与数据库建立连接;缓存器当查询请求到达时,先到缓存器中判断,若缓存命中,则返回结果给用户,未命中缓存则进行第三步骤;分析器对查询语句进行语法分析优化器确定使用哪个索引,优化执行顺序执行器逐行执行代码。引擎...

2020-02-18 12:15:48

索引的数据结构(Hash、B+Tree)

一. 索引的数据结构分类HashB+Tree二. Hash无序的Hash表【特点介绍】:虽然无序的Hash表可以快速的精确查询,但是不支持范围查询。若索引采用无序的Hash表,需扫描全部的数据,导致查询速度很慢;【使用场景】:等值查询,即Key—Value场景,如:Redis;有序的Hash表【特点介绍】:有序的Hash表适合查询静态数据。当进行增、删、改数据时候就会改...

2020-02-17 17:20:12

CAP理论+BASE理论

一. 简介CAP理论的核心:一个分布式系统不可能同时满足一致性(Consistence)、可用性(Availability)、分区容错性(Partition tolerance),最多只能同时满足两个(CA / CP / AP)。一致性(Consistence):在某个写操作完成后,任何读操作都能够获取到该写操作写入的最新值;可用性(Availability):非故障节点在合理的时间内能够...

2020-02-16 16:50:22

Tomcat中的连接器——coyote

一. 架构介绍coyote即Tomcat连接器的名称,客户端通过coyote与服务器建立连接、发送请求并接受需要;coyote只负责具体的协议和IO操作,与Servlet规范并无关系。二. IO模型与协议IO模型(自Tomcat8.5起,移除了BIO)O模型描述NIO非阻塞I/O,采用Java NIO类库实现NIO2异步I/O,采用JDK7最新的NIO2...

2020-02-16 09:44:00

Tomcat架构分析

一. HTTP服务器请求处理图1表示HTTP服务器直接调用具体的业务类,是紧耦合的。图2表示HTTP服务器不直接调用具体的业务类,而是将请求交给Servlet容器来处理,Servlet容器通过Servlet接口调用业务类,达到了解耦合的作用。二. Servlet容器工作流程HTTP服务器将客户的请求信息用法ServletRequest对象进行封装;根据请求的URL和Servle...

2020-02-15 16:18:03

HTTP工作原理

一. 简介HTTP(Hypertext Transfer Protocol)即超⽂本传输协议,其位于应用层,基于TCP/IP协议来完成数据的传输,规定了客户端与服务端的通信格式。二. 原理用户通过浏览器输入网址(如:http://www.muzi.cn),发起请求(1到2之间隐藏了:通过DNS将域名解析为IP地址);浏览器发起TCP连接请求,通过IP地址找到对应的web服务器;服务器...

2020-02-15 10:44:05

基于Redis的秒杀系统

原文链接:https://blog.csdn.net/qq_35190492/article/details/103105780

2020-02-14 09:30:38

快速排序(Java)

一. 简介原理:分治法思想:在每一轮挑选出一个基准数,并让其他比他大的元素移动到一边,比他小的元素移动到数列的另一边,从而把数列拆分成两个部分。平均时间复杂度:O(nlogn)二. 基准数最简单的方式是选择数列的第一个元素。绝大多数情况下,此方法是没问题的,但对于一些情况是不合适的,如当第一个元素太大或太小(如逆序序列排序成顺序序列)等情况,会将算法“退化”。随机选择一个...

2020-02-07 12:14:25

鸡尾酒排序(Java)

一. 概念冒泡排序:每一轮排序都是从左到右的单向进行元素的比较。点此回顾冒泡排序鸡尾酒排序:(1)奇数轮比较时,从左到右把相邻的两个元素进行比较,当一个元素大于右侧相邻元素时,交换他们的位置;否则,位置不变。 (2)偶数轮比较时,从右到左把相邻的两个元素进行比较,当一个元素小于左侧相邻元素时,交换他们的位置;否则,位置不变。二. Java实现代码import java.util....

2020-02-06 16:15:19

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。