自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Redis设计与实现》读书笔记(二)

引言用简练的语言记笔记。本文主要是对数据库实现,RDB,AOF,多路复用,命令执行过程的梳理。记录顺序可能与书中顺序不一致,书中的知识是全面的,可能为了罗列某个点提到后面几章才讲到的概念。而我这里基本上以网状形式,能一起过掉的就过掉,减少冗余,便于理解。先上文章思维导图:文章导读数据库(数据库实现,键空间实现,过期键操作,删除策略,通知) RDB持久化(载入与创建,间隔性保存原理,文件结构) AOF持久化(实现,载入与数据还原,AOF重写) 事件(文件事件,I/O多路复用的实现,时

2020-05-24 10:55:54 704

原创 《Redis设计与实现》读书笔记(一)

引言详细、系统地学习Redis,这本书无疑是最佳选择。刷再多的文章比不上看书哈哈,个人观点~很早就买了,可惜看的太慢了,只有四分之一吧,总结一下我看到的精华。本文主要介绍Redis的数据结构与对象部分。Redis以5大对象来满足键的数据结构:字符串对对象,列表对象,哈希对象,集合对象,有序集合对象。这些对象的底层实现依赖特定的编码类型,而某种编码类型又对应1种或多种数据结构。下面分别介绍简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表这6种基本数据结构在Redis中的实现。文章导读

2020-05-15 16:13:48 605

原创 Linux的5种IO模型梳理

引言文章相关代码已收录至我的github,欢迎star:lsylulu/myarticle有一说一,无套路系统学习下Linux的五种IO模型,顺便献上我的陈年老笔记~文章导读基本概念(相关系统调用函数,同步&异步,阻塞&非阻塞) 阻塞IO模型 非阻塞IO模型 IO多路复用模型 信号驱动IO模型 异步IO模型 Java中的BIO,NIO,AIO一、基本概念五种IO模型包括:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO。首先需要了解下系统调用的几

2020-05-15 16:06:15 349

原创 你所不知道的HashCode

引言这两天有个学弟问过我这个问题:对象的hashCode到底是怎么实现的?在深挖之前,我可能只能说:如果没有被重载,代表的是对象的地址通过某种hash算法计算后在hash表中的位置。回答后,仔细一想,不对呀,这个hash值具体是怎么计算的,我终究还是没有答到点上,而是绕开话题,回答了含义。脑壳一热,忽然想起去年虐我的阿里面试题,hashCode是怎么得到的呢?文章导读问题定义 源码揭秘 String、Lombok对hashCode的实现一、问题定义hashCode真的只是通过地址

2020-05-15 16:02:38 566

原创 手撕Git,告别盲目记忆

引言Git在工作中经常用到,但是指令太多,网上的说法又不太通俗。总会让想要学习的同学抓不到重点,或者望而却步。这篇文章的目的就是希望读后能够按照原理,系统地记忆一些常用/关键的命令。也算是我这个刚入互联网的小白对社会的一些小小福报~其中若有不当之处,欢迎大佬指出。开局一个赞????,内容一看就懂~友情提示:文章有连贯性,跳着看可能会比较蛋疼......文章导读Git的分区(工作区,暂...

2019-12-23 21:36:26 256

原创 从0开始学Docker(下)

引言这一篇文章,理论和实践各占一半,有需要的可以先安装配置好两台虚拟机和Docker。觉得写的可以不妨点个赞吧,收藏比赞高N倍,枯了​????~文章导读Docker的C/S架构​​ Docker容器的网络连接​ Docker容器的数据管理一、Docker的C/S模式Docker的C/S架构中,最重要的就是Docker Client和Docker Daemon。1.1 Dock...

2019-12-05 10:49:42 153

原创 从0开始学Docker(上)

引言一提到小蓝鲸,容器,镜像,宿主机等概念就会扑面而来。好奇心的驱使下就有了这篇快速入门,为的就是避免“拿它当头像,却无法作为网上冲浪的谈资”的尴尬。文章导读Docker概述(Namespaces,Controller groups,设计目标,使用场景) Docker的基本组成 容器的基本操作(两种容器的构建,端口映射) Docker的镜像与仓库(获取,推送,构建镜像)一、Do...

2019-12-05 10:46:55 401

原创 Docker安装

安装前检查内核版本uname -a检查Device Mapperls -l /sys/class/misc/device-mapper由于Docker是基于Linux内核的。如不满足,则需要升级内核版本。安装过程yum install curlcurl -sSL https://get.daocloud.io/docker | shsystemctl daemon-...

2019-12-05 10:30:50 326

原创 从0开始学Kafka(下)

引言文章相关代码已收录至我的github,欢迎star:lsylulu/myarticle从之前的描述中,可以得知,Producer通过主动Push的方式将消息发布到Broker,Consumer通过Pull从Broker消费数据。还有这样设计的动机,本文重点以Consumer为切入口,了解一下其中的API与Rebalance算法。文章导读Producer使用简介High Leve...

2019-11-27 20:53:43 146

原创 从0开始学Kafka(上)

引言最近冒着变秃的危险学习kafka,看起我的小视频,记起我的小笔记~在此之前,只是听说过kafka,并没有系统的学习过。如果是小白,可以进来和我一起摸索;如果是大佬,欢迎复习并纠正我的错误~有关分布式和消息队列共性的一点理论这里就不展示了,主要是看kafka相关的特性和知识。文章导读Kafka基础概述(设计目标,架构,概念)Kafka的高可用机制(数据备份,ISR,Commit...

2019-11-27 18:16:09 221

原创 操作系统(五)

引言由于内存是易失的,断电就会丢失,所以需要文件来保存数据。而文件系统就是用于管理操作系统中的文件。这篇文章是写得最懵的...知识点都比较杂乱,可能逻辑性没有组织的特别好。见谅呀(>﹏<)文章导读文件和文件系统相关概念 文件别名与文件系统类别 文件分配(连续分配,链式分配,索引分配) 提高I/O速度的方法(高速缓存,提前读,延迟写,优化物理块分布,虚拟盘,RAI...

2019-11-07 11:19:55 639

原创 操作系统(四)

引言对付死锁,有一系列预防,避免,检测,恢复的方法。但事实是,操作系统只采用鸵鸟算法,即不预防、不避免,对可能出现的死锁采取放任的态度。下面具体来探寻里面的奥妙~文章导读死锁概述 死锁的预防 死锁的避免(银行家算法,例题) 死锁检测和恢复一、死锁概述定义如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。图片来源于网络...

2019-11-07 11:18:06 522

原创 操作系统(三)

引言续接上文,这次磕进程管理~文章导读进程概述 进程控制块 进程的状态 线程管理 进程控制 处理机/CPU调度 同步&互斥 信号量与管程 进程间通信的方式一、进程概述进程:一个具有一定独立功能的程序在一个数据集合上一次动态执行过程。进程的组成程序的代码 程序处理的数据 程序计数器中的值(下一条将运行指令的地址) 一组通用的寄存器的当前值,堆,...

2019-11-07 11:16:10 948

原创 操作系统(二)

引言文章很长,慎入⊙﹏⊙,可以收藏了慢慢看~文章导读内存管理简介 连续内存分配(首次适配,最佳适配,最差适配) 非连续内存分配(分段,分页) 虚拟内存技术 页面置换算法(OPT,FIFO,LRU,Clock,LFU,工作集页置换算法,缺页率置换算法)一、内存管理简介1.1 管理内存的方法程序重定位 分段 分页 虚拟内存 按需分页虚拟内存实现依赖于硬件MMU...

2019-11-07 11:13:03 926 1

原创 操作系统(一)

引言提前批面试被怼飞了,去实习前先给自己充充电,充实一下。从零开始学操作系统,有什么错误希望大家直接指出~文章导读操作系统的启动 操作系统与设备和程序交互(中断,IO,系统调用,异常)一、操作系统的启动计算机刚打开时,执行了什么指令?会走pc=?,具体地址是由硬件设计者决定。首先简单来了解一下操作系统启动的过程,以x86 PC为例:1. x86 PC刚开机时,CPU处于...

2019-10-21 18:41:59 299

原创 记一次去哪儿网秋招面试

现场面试,面试官都超级赞,问的也特别细~现场发offer,发面经攒人品。去哪儿一面(一个多小时)谈人生期望工作地点便利蜂实习干了啥数据结构数据结构会哪些画一下数组和链表内存结构,区别HashMap实现原理,给定字符串"abc",计算下存储到哪个节点上算法排序算法会哪些,项目中有用到过吗比较器使用了哪个排序算法写一串数字,2趟快排后的结果操作系统和JVM进程和...

2019-10-21 18:38:32 295

原创 八大基本排序牢记于心

引子文章相关代码已收录至我的github,欢迎star:lsylulu/myarticle现在的你是否奔波于各种秋招,可能也有和我一样的小伙伴一边实习一边准备着秋招。这种情况确实是没有太多精力备战了,不过再忙也得隔段时间手写一遍八大排序呀。说一下我自己的情况吧,之前有段时间在学校确实排序算法记的很6,基本上是两天巩固完一遍。但是后来因为各种原因耽误了,学习也比较断断续续,比如参加完笔试被...

2019-08-03 21:53:47 231

原创 简单发一下饿了么实习面经

等offer真煎熬,终于还是到了。发完就去搬砖啦,明天还有其他面试呢~我面的是Java研发实习生...饿了么一面实习打算去哪个城市,都擅长哪方面的知识?阻塞队列的实现?await方法是怎么实现的?调用wait方法之后会发生什么?说说线程池的核心线程数?核心线程数,最大线程数,一般都是怎么确定的?你觉得最大线程数和并发量有关吗?死锁如何产生,如何预防死锁?1000==new...

2019-07-11 20:38:42 563

原创 简简单单过一遍网络安全

引言要考试了,偷偷复(预)习一下《网络安全技术》相关知识。当然,这些介绍都是入门级别的,对于这方面感兴趣的同学也可以看看。文末会附上非常详细的思维导图,可以结合着思维导图来看,有错误的地方也欢迎指出~文章导读网络安全概述 网络安全基础 网络攻击 计算机病毒 密码学 身份认证与访问控制技术 防火墙技术与入侵检测技术 网络安全方案设计 总结+思维导图一、网络安全概述这...

2019-07-11 20:37:54 647

原创 线程池源码详细解读(下)

前文回顾AQS源码详细解读 ReentrantLock源码详细解读 LinkedBlockingQueue源码详细解读 线程池源码详细解读(上)接着上一篇文章,知道线程池的一些相关概念后,一起来看看实现原理吧。本文讲述ThreadPoolExecutor源码,力求理清执行顺序,尽量保持思路清晰,请耐心看完~文章导读内部类-Worker(基本属性,构造方法,AQS相关钩子方法,...

2019-07-11 20:36:16 308

原创 SpringBoot整合ElasticSearch与Redis的异常解决

一、错误描述[org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.Be...

2019-06-18 20:41:58 2179

原创 线程池源码详细解读(上)

前文回顾AQS源码详细解读 ReentrantLock源码详细解读 LinkedBlockingQueue源码详细解读线程池里用到了阻塞队列,修改ctl状态需要一个mainLock,阻塞队列基于入队锁和出队锁,而ReentrantLock的公平锁与非公平锁都是对AQS的进一步实现,不清楚的小伙伴赶紧看看吧~本篇文章主要讲线程池概述,力求理清相关知识点,尽量保持思路清晰,请耐心看完~...

2019-06-16 16:03:13 953

原创 LinkedBlockingQueue源码详细解读

前文回顾AQS源码详细解读 ReentrantLock源码详细解读本文简单介绍下各种阻塞队列,然后详细看下LinkedBlockingQueue的源码。其实阻塞队列的实现,在思想上有很大一部分是相通的。而且在线程池中也会用到各种BlockingQueue,FixedThreadPool使用的就是LinkedBlockingQueue。知道一个以后其他的理解起来也不难。LinkedBlock...

2019-06-16 16:00:14 1278

原创 花点时间彻底搞懂快排

引言文章相关代码已收录至我的github,欢迎star:lsylulu/myarticle以前初学快排的时候,网上的资源太乱。感觉每个人的思路都不一样,实现上好像千差万别,看着挺懵。所以就会导致自己觉得快排的实现方式好像有很多种(其实不然)。很久没抠算法了,想抠一下,系统的把快排抠干净。文章导读快排分类与理解 经典快排的实现 优化后快排的实现 总结一、快排分类从实现思想上...

2019-06-16 15:58:18 299

原创 盘点Elasticsearch中的查询套路

引言Elasticsearch作为一款比较火的分布式的全文搜索索引,里面的查询方式比较多,也比较细。ElasticSearch中的查询语句嵌套的都很灵活,基于RESTful风格,以json的方式拼接。如果有学习过MongoDB的同学,学这个应该比较轻松。本文简单理了一下ES中的查询套路,并附上一些总结。文章导读ElasticSearch的查询操作一、数据准备创建索引 lib...

2019-06-16 15:56:56 474 1

原创 ReentrantLock源码详细解读

引言ReentrantLock是面试中的高频考点,其中实现原理还是很有必要了解的。它与synchronized类似,都是互斥锁,但具有更好的扩展性。ReentrantLock是基于AQS实现的,遗忘的同学可以回顾一下AQS源码详细解读。文章导读ReentrantLock继承树及重要方法 非公平锁及公平锁的获取 tryLock(),lockInterruptibly() 释放资源...

2019-06-16 15:54:20 312 2

原创 AQS源码详细解读

引言AQS是用来构建锁和其他同步组件的基础框架,它也是Java三大并发工具类(CountDownLatch、CyclicBarrier、Semaphore)的基础。ReentrantLock,甚至BlockingQueue也是基于它的实现,可以说是非常重要了。简单介绍一下,AQS其实就是一个类,全称是AbstractQueuedSynchronizer,队列同步器。本文的重点是研究它的源码...

2019-06-16 15:50:45 932

原创 什么是马拉车算法?

引言文章相关代码已收录至我的github,欢迎star:lsylulu/myarticle有这样一个问题,给定一个字符串,返回最长回文的子串的长度?要求时间复杂度为O(n)。正常情况下我们会这么做,先将字符串进行特殊处理比如11311处理成#1#1#3#1#1#,然后遍历每个索引,找最长回文数。结果/2为正确答案。那么,如何找每个索引的最长回文数呢?通常情况下是设置一个start和en...

2019-06-16 15:46:17 684

原创 Java枚举类,你真的了解吗?

引言文章相关代码已收录至我的github,欢迎star:lsylulu/myarticle枚举类可能在初学者的知识储备中比较陌生,但实际开发中,枚举类又不可或缺。枚举类能够统一管理一些全局的变量,封装对于他们的逻辑与方法。还能和switch-case结合,简化大量的if-else,让代码更加优雅。本文将从以下几个角度介绍枚举类:枚举类的作用 枚举类基本性质 枚举类基本方法 含有抽...

2019-05-17 10:59:21 6280 2

原创 春招Java实习生阿里四面凉经

春招第一次面试,惨败~内推到农村淘宝,新建的部门问的比较基础,身为菜鸡的我还是被回绝了。总的来说,阿里的简历处理效率还是挺高的,投完一般过两天,晚上8点左右就来搞突袭了。前两面是电话面,三面手撕代码,四面视频。阿里一面简单介绍一下自己说一下项目架构,都有哪些功能,用了什么技术,怎么实现的?你所使用的调度器能不能让他按特定情况执行,比如周末的时候不让他走?项目还有哪些局限性?使用t...

2019-05-10 18:50:43 543

原创 必须掌握的JVM性能监控工具

引言前一段时间面阿里,碰到了这样的问题。面试官:“JVM有关指令了解吗?”我:“调优参数吗,也会一些,-Xms设置初始堆大小,-Xmx设置最大堆大小......”面试官:“你可能理解错我的意思了,我想知道的是相关指令。比如查看jvm进程情况,内存占用,GC情况等。”我:“额,指令不太了解,就知道有一个内置的工具Jconsole能查看Java线程使用情况,是否持有死锁。”面试官:“对,...

2019-04-21 09:53:28 1082

原创 让面试官膜拜你的HTTPS运行流程(超详细)

引言最近恶补计网,HTTPS涉及到的知识比较多,整理一下。HTTPS实际上就是HTTP穿上了SSL/TLS的外套,我们都知道HTTP属于应用层的协议,是离程序员比较近的,而SSL(安全套接字)与TLS(运输层安全)都属于运输层协议。其实SSL与TLS都是上个世纪的产物,最新版本的TLS建立在SSL 3.0协议规范之上。HTTPS涉及到加密,先简单了解一下有关密码学的知识。文章导读介...

2019-03-21 20:03:39 1688

原创 ThreadLocal与内存泄漏

阅读本文前,需要先了解ThreadLocal的原理。我们将从下面这些问题开始,寻找ThreadLocal中内存泄漏的罪魁祸首。一、ThreadLocal,Thread,ThreadLocalMap,Entry<k,v>之间的关系?先来看看Thread源码可以发现,每一个Thread中维护了一个ThreadLocalMap成员变量(也称threadLocals)。再来看...

2019-03-07 20:56:04 493

原创 一文搞定Java内部类

一、前言内部类多而繁杂,互访情况下,不管是内访外,还是外访内,静态(类,方法,成员变量)与非静态(类,方法,成员变量)之间的访问也错综复杂。还有各种令人头疼的编译问题,匿名内部类使用的形参为何必须为final修饰等都是面试喜欢问的点。如果您对内部类还有疑惑,读完本文,说不定能让面试官膜拜您。本文将从内部类的种类,命名规则,匿名内部类编译,内外互访等角度来阐述。二、内部类的种类内部类分...

2019-03-01 10:09:26 220

原创 mybatis中关于example类详解

这几天刚接触example,很多内容都是破碎的,写一篇博文加深理解。一、什么是example类 mybatis-generator会为每个字段产生如上的Criterion,如果表的字段比较多,产生的Example类会十分庞大。理论上通过example类可以构造你想到的任何筛选条件。在mybatis-generator中加以配置,配置数据表的生成操作就可以自动生成example了。具...

2018-08-15 18:16:48 78187 15

原创 谈谈tomcat的优化经验

第一次写博客,搜集了很多的优化经验,然后自己归纳下来,大概有7条,没涉及到的欢迎大家补充1.优化方法:加大tomcat使用的jvm的内存具体操作:Tomcat默认可以使用的内存为128MB,可在配置文件或环境变量里增加使用内存。在配置文件中:通过配置tomcat的配置文件(Windows下的catalina.bat或Linux下的catalina.sh),在前面增加设置JAVA_OPTS=...

2018-07-16 22:14:16 3993

空空如也

空空如也

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

TA关注的人

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