小小默:进无止境

QQ:1274654983 欢迎交流~~

【每日一面】关于HashMap

关于HashMap的详细分析参考博文: 深入学习Java集合之HashMap的实现原理 HashMap死循环分析 【1】HashMap内部数组何时创建? 绝不是初始化时创建,而是在第一次put方法调用的时候创建。咱们从源码分析。 ① put方法入口 public V put(K key, V va...

2019-02-28 17:19:46

阅读数 131

评论数 0

HashMap死循环分析

本篇博文以jdk1.7为例分析。 在put方法中如果需要插入一个新的元素(key不存在),会调用addEntry(hash, key, value, i);方法。 public V put(K key, V value) { if (key == null) ...

2019-02-25 20:13:14

阅读数 99

评论数 0

聊聊MQ的消息必达和消息幂等与消息延时

【1】MQ之如何做到消息必达 ① MQ简单架构 MQ要想尽量消息必达,架构上有两个核心设计点: 消息落地 消息超时、重传、确认 上图是一个MQ的核心架构图,基本可以分为三大块: 发送方->左侧粉色部分 MQ核心集群->中间蓝色部分 接收方-&am...

2019-02-25 19:20:24

阅读数 139

评论数 0

【每日一面】关于树

【1】求二叉树的最大深度 使用递归,分别求出左子树的深度、右子树的深度,两个深度的较大值+1即可。 // 获取最大深度 public static int getMaxDepth(TreeNode root) { if (root == null) return 0; ...

2019-02-25 18:37:46

阅读数 144

评论数 0

Redis与MySQL数据一致性问题详解

【1】MySQL持久化数据,Redis只读数据 redis在启动之后,从数据库加载数据。 读请求: 不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取。 写请求: 数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存...

2019-02-25 18:07:03

阅读数 530

评论数 0

IOC容器的初始化过程

简单来说,IOC容器的初始化是由refresh()方法来启动的,这个方法标志着IOC容器的正式启动。具体来说,这个启动后包括BeanDefinition的Resource定位、载入和注册三个基本过程。 第一个过程是Resource定位过程。这个Resource定位指的是BeanDefinition...

2019-02-23 17:15:45

阅读数 113

评论数 0

重新学习Spring IOC容器

【1】IOC容器与依赖反转模式 依赖反转是指依赖对象的获得被反转了。依赖控制反转的实现有很多方式,Spring中IOC容器是实现这个模式的载体,它可以在对象生成或初始化时直接将数据注入到对象中,也可以通过将对象引用注入到对象数据域中的方式来注入对方法调用的依赖。这种依赖注入是可以递归的,对象被逐层...

2019-02-22 21:53:32

阅读数 99

评论数 0

认真学习设计模式之装饰者模式(Decorator Pattern)

写在前言 利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而如果能够利用组合的做法扩展对象的行为,就可以在运行时动态地进行扩展。通过动态地组合对象,可以写新的代码添加新功能,而无须修改现有代码。既然没有改变现有代码,那么引进bug或产生意外副作用的机会将大幅度减...

2019-02-21 13:44:58

阅读数 107

评论数 0

【每日一面】关于海量数据处理

海量数据处理:有1亿个浮点数,找出其中最大的10000个。类似的还有有1万个浮点数,找出其中最大的100个,然后倒序处理。 二者不同之处在于数据量的量级不同,这个牵扯到服务器内存和你所采取的策略。 【1】常见方案 ① 简单暴力的快速排序 第一种方法是将数据全部排序,然后在排序后的集合中进行查找,最...

2019-02-18 19:10:27

阅读数 621

评论数 0

【每日一面】关于推理题

① 一个5升的桶和一个3升的桶,如何得到一桶4升的水? 这个还是比较简单的,小伙伴自行考虑,不会的可以留言。 ② 数字移位 题目是这样的:一个N位数,个位数是6,将6移动到最前面(首位),然后形成一个新的N位数,新的N位数为旧的N位数的4倍,问最小的N位数是多少? 个位数是6,新的N位数为旧的4倍...

2019-02-18 18:07:37

阅读数 121

评论数 0

认真学习设计模式之策略模式(Strategy Pattern)

【1】策略模式定义 策略模式定义和封装了一系列的算法,它们是可以相互替换的,也就是说它们具有共性,而它们的共性就体现在策略接口的行为上。另外为了达到最后一句话的目的,也就是说让算法独立于使用它的客户而独立变化,我们需要让客户端依赖于策略接口来实现。 策略模式特点: 是一种行为型模式,对算法封装,...

2019-02-17 20:50:59

阅读数 83

评论数 0

线程间通信之Object.wait/notify实现

核心有这样几个关键字:锁,monitor以及指令。PS:遇到面试官问的问题不是你曾经考虑的问题不要怕,不要紧张。可能只是说法变了,但是知识还是哪些知识! waiting… ...

2019-02-16 21:59:22

阅读数 111

评论数 0

认真学习设计模式之观察者模式(Observer Pattern)

【1】观察者模式定义于特点 ① 观察者模式定义 观察者模式也叫(发布-订阅模式)定义了对象之间的一对多的依赖,当一个对象(主题)改变状态时,它的所有依赖者都会收到通知并自动更新。 在观察者模式中,会改变的是主题的状态,以及观察者的数目和类型。主题与观察者都是用接口,观察者使用主题的接口向主题注册,...

2019-02-16 20:59:14

阅读数 89

评论数 0

进程间通信和线程间通信总结

写在前面 面试的时候一定不要疲劳战,比如上午面了一个,然后中午不休息直接赶到另外一个相距比较远的公司,影响状态。 面试的时候一定不要紧张,不管对方有几个人,总之面试的时候做好充分准备,休息好,放松心态。 好了,言归正传,开始总结。 【1】进程间通信方式 进程间通信又称IPC(Inter-Proce...

2019-02-16 16:06:57

阅读数 207

评论数 0

MySQL索引背后的数据结构及算法原理

【1】数据结构及算法基础 ① 索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询...

2019-02-15 18:21:44

阅读数 96

评论数 0

认真学习数据结构之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

【1】阻塞队列 阻塞队列与我们平常接触的普通队列(LinkedList或ArrayList等)的最大不同点,在于阻塞添加和阻塞删除方法。 阻塞添加 所谓的阻塞添加是指当阻塞队列元素已满时,队列会阻塞加入元素的线程,直队列元素不满时才重新唤醒线程执行元素加入操作。 阻塞删除 阻塞删除是指在队...

2019-02-14 21:50:56

阅读数 76

评论数 0

认真学习数据结构之红黑树

【1】什么是红黑树 红黑树是一种自平衡树,它也是一颗二叉树。既然能保持平衡,说明它和AVL树类似,在插入或者删除时肯定有调整的过程,只不过这个调整过程并不像AVl树那样繁琐。为何红黑树使用得比AVL树更多,就是因为红黑树它的调整过程迅速且简短。 ① 五个特点: 节点是红色或黑色 根是黑色 ...

2019-02-14 20:31:32

阅读数 64

评论数 0

TCP粘包/拆包与Netty解决方案

【1】TCP粘包/拆包 TCP是个“流”协议,所谓流,就是没有界限的一串数据。大家可以想象河里的流水,它们是连成一片的,其间并没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能...

2019-02-13 21:34:47

阅读数 287

评论数 0

Linux(UNIX)五种网络I/O模型与IO多路复用

Linux的内核将所有的外部设备都看做一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd 文件描述符)。而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符)。描述符就是一个数字,它指向内核中的一个结构体(文...

2019-02-13 12:32:02

阅读数 143

评论数 0

一个超乎想象的垃圾收集器:ZGC

Z Garbage Collector,即ZGC,是一个可伸缩的、低延迟的垃圾收集器,主要为了满足如下目标进行设计: 停顿时间不会超过10ms 停顿时间不会随着堆的增大而增大(不管多大的堆都能保持在10ms以下) 可支持几百M,甚至几T的堆大小(最大支持4T) 停顿时间在10ms以下,10ms...

2019-02-13 10:44:18

阅读数 120

评论数 0

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