<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DLC990319的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DLC990319</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DLC990319]]></copyright><item><title><![CDATA[《clean code》读后感]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/114084959</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/114084959</guid><author>DLC990319</author><pubDate>Thu, 25 Feb 2021 15:50:25 +0800</pubDate><description><![CDATA[本书名为《整洁代码》，主要讨论了如何让代码变得简洁，可读，易维护。作者认为，相比于让代码跑起来，让代码保持整洁更加重要。]]></description><category></category></item><item><title><![CDATA[Redis持久化]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108676452</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108676452</guid><author>DLC990319</author><pubDate>Sat, 19 Sep 2020 16:23:19 +0800</pubDate><description><![CDATA[文章目录一、持久化二、RDB：保存某个时间点的全量数据快照1.什么是RDB2.触发机制（1）手动创建（2）自动创建3.最佳配置4.实验三、AOF1.什么是AOF2.三种策略3.日志重写4.日志重写策略（1）bgrewriteaof（2）AOF重写配置5.AOF重写流程6.配置四、Redis持久化的取舍与选择1.RDB对比AOF
一、持久化
持久化，顾名思义就是将数据持久保存。因为Redis数据都保存在内存中，对数据的更新将异步地保存到磁盘上。
主流数据库的持久化方式：

快照：记录某一时刻数据的状态 （Re]]></description><category></category></item><item><title><![CDATA[瑞士军刀Redis]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108667304</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108667304</guid><author>DLC990319</author><pubDate>Fri, 18 Sep 2020 23:00:47 +0800</pubDate><description><![CDATA[一、慢查询
1.客户端请求的生命周期


慢查询发生在第三阶段：执行命令
客户端超时不一定是慢查询，但慢查询是客户端超时的一个可能因素。

2.slowlog
redis的slowlog是redis用于记录慢查询执行时间的日志系统。由于slowlog只保存在内存中，因此slowlog的效率很高，完全不用担心会影响到redis的性能。
（1）slowlog-log-slower-than
slowlog-log-slower-than表示slowlog的划定界限，只有query执行时间大于slowlog-lo]]></description><category></category></item><item><title><![CDATA[Redis API的理解和使用]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108631107</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108631107</guid><author>DLC990319</author><pubDate>Wed, 16 Sep 2020 23:10:05 +0800</pubDate><description><![CDATA[文章目录一、通用命令二、单线程三、数据结构和内部编码1.字符串
一、通用命令

keys 用于查找所有符合给定模式 pattern 的 key
keys在生产环境中一般不使用，因为keys会阻塞其他命令。
dbsize  返回当前数据库的 key 的数量
exists key 用于检查给定 key 是否存在，存在返回1，不存在返回0
del 删除一个/多个key
expire key seconds 设置key的过期时间
ttl key 查看key剩余过期时间，persist key 去掉key的过期时间
]]></description><category></category></item><item><title><![CDATA[Redis初识]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108590076</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108590076</guid><author>DLC990319</author><pubDate>Wed, 16 Sep 2020 20:42:27 +0800</pubDate><description><![CDATA[Redis（Remote Dictionary Server )，即远程字典服务，是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。
Redis有以下8种特性：

速度快
持久化
多种数据结构
支持多种编辑语言
功能丰富
简单
主从复制
高可用、分布式


...]]></description><category></category></item><item><title><![CDATA[手写一个MINI SpringMVC]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108550226</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108550226</guid><author>DLC990319</author><pubDate>Mon, 14 Sep 2020 13:45:16 +0800</pubDate><description><![CDATA[文章目录一、开发准备1.Gradle2.仿Spring的项目结构二、Web功能开发1.Web服务器2.Web服务模型3.Servlet4.集成Tomcat
对于一个只会使用SpringBoot而不知道其内部原理的菜鸡，准备系统学习一下Spring的实现。于是第一节课学习的是《仅需2小时 手写MINI Spring MVC框架》。
一、开发准备
1.Gradle
在Web开发时，常用的依赖管理工具通常是Maven。不过Gradle相比于Maven语法更加简单，且不需要安装，更加灵活，所以此项目使用Gradle]]></description><category></category></item><item><title><![CDATA[面试中常问的Java IO模型到底是什么？]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108518404</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108518404</guid><author>DLC990319</author><pubDate>Sat, 12 Sep 2020 14:28:06 +0800</pubDate><description><![CDATA[文章目录一、同步阻塞IO（BIO）二、同步非阻塞IO（NIO）三、IO多路复用1.Linux中的IO多路复用
最近在面试中常常被问到IO模型，于是想在网上找找对应的讲解，可都没有一个详细好理解且带例子的。下面会介绍Java的几种IO模型，并且均给予代码演示。
Java中最常用的模型个人认为有以下四种：

同步阻塞IO（Blocking IO）
同步非阻塞IO（Non-Blocking IO）
IO多路复用
异步IO（Asynchronous IO）

一、同步阻塞IO（BIO）
同步阻塞IO可以说是最简单的]]></description><category></category></item><item><title><![CDATA[C++指针与引用]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108416535</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108416535</guid><author>DLC990319</author><pubDate>Wed, 09 Sep 2020 15:16:26 +0800</pubDate><description><![CDATA[C++的指针和引用一直是在上学期间考试的重难点，也是最难搞懂的部分。希望这次可以彻底掌握这两点。
一、指针
1.定义
上来先给出定义，定义还是比较好看懂的。
定义
指针本身就是一个变量，其符合变量定义的基本形式，它存储的是值的地址。对类型T，T*是“到T的指针”类型，一个类型为T*的变量能保存一个类型为T的对象的地址。
例如int a = 122; int* b = &amp;a，b就是一个指针变量，保存着a的地址。
间接访问
通过一个指针访问它所指向地址中的值的过程称为间接访问或者引用指针。这个用于执行间]]></description><category></category></item><item><title><![CDATA[C++学习——基础篇]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108366079</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108366079</guid><author>DLC990319</author><pubDate>Sat, 05 Sep 2020 09:25:44 +0800</pubDate><description><![CDATA[从今天起，开始学习C++。
一、概述
C++是一种编译型语言，除了编译型语言还有哪种层次和类型呢？
1.编程语言的层次和类型

机器语言（01），汇编语言
编译型语言：C++、C
解释型语言：Basic、Python、Java（编译成.class文件，再由JVM编译）
脚本语言：bash、csh

从上到下使用层次更接近人类使用，但运行效率逐渐降低。
2.何为编译型语言
编译型语言一般需要经历编译和链接的过程，才能变成真正可执行的程序。

编译：将用户的源代码编译成若干个目标模块；
链接：将目标模块与它们所]]></description><category></category></item><item><title><![CDATA[趋势科技一面二面面经]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108294944</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108294944</guid><author>DLC990319</author><pubDate>Sun, 30 Aug 2020 15:45:28 +0800</pubDate><description><![CDATA[趋势科技是一家做网络的公司，所以对于Linux、网络、C++比较重视。Java倒是没怎么问：
一面

]]></description><category></category></item><item><title><![CDATA[美团秋招凉经]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108264707</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108264707</guid><author>DLC990319</author><pubDate>Thu, 27 Aug 2020 17:07:23 +0800</pubDate><description><![CDATA[一面

说一下面向对象和面向过程的区别。
final修饰一个类的目的是什么？为什么不能被继承？

在设计类时候，如果这个类不需要有子类，类的实现细节不允许改变，并且确信这个类不会再被扩展，那么就设计为final类。

JRE,JDK,JVM分别是什么意思。
说一下HashMap的底层原理。红黑树相比于AVL树有什么优势？

红黑树利用了缓存，以空间换时间。牺牲了部分平衡性，以换取删除/插入操作时少量的旋转次数，整体来说，性能优于AVL树。


Concurrent的底层原理。1.8之后为什么用CAS来实现了]]></description><category></category></item><item><title><![CDATA[青颖飞帆二面三面面经]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108209968</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108209968</guid><author>DLC990319</author><pubDate>Tue, 25 Aug 2020 16:20:32 +0800</pubDate><description><![CDATA[二面·技术面

Mybatis是怎么将xml文件映射为Java类的？
SpringBoot在启动的时候做了什么事？
说一下对redis的理解，和MemCache的区别？

Redis 是单线程的，MemCache是多线程的；
Redis支持更丰富的数据类型
Redis可以将数据持久化存储到磁盘，也可以进行数据恢复。


为什么Redis的速度比数据库快？

Redis所有的数据均存放于内存，操作也是在内存中进行。
Redis 是单线程的，避免了上下文切换
使用多路IO复用模型


数据库和文件系统有区别吗？]]></description><category></category></item><item><title><![CDATA[操作系统提升篇]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108126640</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108126640</guid><author>DLC990319</author><pubDate>Sun, 23 Aug 2020 21:57:00 +0800</pubDate><description><![CDATA[一、线程同步
1.互斥量
（1）定义
互斥量可以保证指令的先后执行顺序，保证了指令的原子性。
互斥量（互斥锁）是最简单的线程同步方法，只有加锁/解锁两种状态。
（2）例子

2.自旋锁
使用了自旋锁的线程会反复检查锁变量是否可用。如果一个线程未请求到锁，会一直占用CPU循环等待。
优点：

避免了进程或线程上下文切换的开销
缺点：
会占用CPU资源，等待时间过长则会影响其他进程。

例子


...]]></description><category></category></item><item><title><![CDATA[青颖飞帆一面面经]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108135448</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108135448</guid><author>DLC990319</author><pubDate>Thu, 20 Aug 2020 23:02:08 +0800</pubDate><description><![CDATA[感觉这个公司虽然不大，问的问题倒不是很水。问题虽然不深，但是涉及面比较广，问题也都是很基础的题目。面试官水平还可以，在面试的时候也会引导去回答问题，最后还提出了建议。还是挺不错的面试体验的。

C语言和Java感觉有什么不同？怎么理解面向对象？√
Java对象的管理是什么样的？Java栈中存放什么对象（存放基本数据类型和引用变量）√
Java的垃圾回收的过程。√   Java怎么手动触发GC×
System.gc();Java的GC是由JVM自行调动的，在需要的时候才执行，上面的指令只是告诉JVM尽快GC一]]></description><category></category></item><item><title><![CDATA[操作系统基础篇]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108050515</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108050515</guid><author>DLC990319</author><pubDate>Thu, 20 Aug 2020 10:48:22 +0800</pubDate><description><![CDATA[一、概览
1.What&amp;Why

操作系统是管理计算机硬件和软件资源的计算机程序。
管理配置内存、决定资源供需顺序、控制输入输出；
提供让用户和系统交互的操作界面

2.操作系统的基本功能

统一管理计算机资源（处理器、IO设备、存储器、文件）
实现了对计算机资源的抽象，用户无需面向硬件接口编程。
提供了用户与计算机之间的接口（图形界面、命令行、系统调用）。

3.操作系统相关概念

并发性：两个或多个事件可以在同一时间间隔发生（和并行区分）

共享性：操作系统中的资源可供多个并发的程序共同使用。
]]></description><category></category></item><item><title><![CDATA[百度测开二面三面]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108019828</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108019828</guid><author>DLC990319</author><pubDate>Sat, 15 Aug 2020 17:42:55 +0800</pubDate><description><![CDATA[一面更比一面难，BAT果然不是那么好进的。
1.计算机网络

TCP连接断开时，为什么最后要等待2MSL?
TCP的连接并没有分段，接收端怎么知道接收到了一个完整的消息？
浏览器上面的小锁，为什么有时候是红色的？
说一下证书是怎么认证的？
https为什么安全性更高？

2.操作系统

说一下“信号量、互斥锁、条件变量”的区别。



...]]></description><category></category></item><item><title><![CDATA[InnoDB存储引擎]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/107979173</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/107979173</guid><author>DLC990319</author><pubDate>Fri, 14 Aug 2020 21:41:10 +0800</pubDate><description><![CDATA[一、InnoDB存储原理
1. 记录存储方式：页

内外存交换的基本单位：Mysql将数据从外存读入内存不是以记录为单位，这样消耗太大，是以页为单位，每个页里填充记录。每页大小为16KB。

页头：记录页面的控制信息，包括页的左右兄弟页面指针、页面空间使用情况等。
虚记录：

最大虚记录：比页内最大主键还大
最小虚记录：比页内最小主键还小


记录堆：行记录存储区，分为有效记录和已删除记录两种
自由空间链表：已删除记录组成的链表
未分配空间
页尾：存储页面校验信息

2.页内记录维护

页内的数据是按照主键]]></description><category></category></item><item><title><![CDATA[百度测开一面]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/108002139</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/108002139</guid><author>DLC990319</author><pubDate>Fri, 14 Aug 2020 12:37:58 +0800</pubDate><description><![CDATA[原本以为测试应该会很简单，没想到面试也挺难的。
1.项目

聊一聊你的秒杀系统是怎么测试的？
库存超卖是怎么测试的？
并发量提升到了多少

2.Java

聊一聊Java虚拟机和内存模型
线程同步的方式

3.基础

计算机的32位、64位是什么意思
Linux熟练吗，平时都用来干什么
Get和Post的区别

4.场景题

有100万个数字，给出一个数字判断是否存在。用什么方法好？什么都可以

提示：

我要查多次，不能每一次都查找吧？（二分查找×）
Linux中可以怎么查
Java中有什么可以用的（我说]]></description><category></category></item><item><title><![CDATA[Redis面试]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/107689860</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/107689860</guid><author>DLC990319</author><pubDate>Fri, 07 Aug 2020 17:26:56 +0800</pubDate><description><![CDATA[一、Redis简介
Mysql的数据都存放在磁盘中，读取时IO压力大，所以缓存数据库应运而生。

1.缓存中间件—Memcache和Redis的区别
Memcache：代码层次类似Hash

支持简单数据类型
不支持数据的持久化存储
不支持主从
不支持分片

Redis

数据类型丰富
支持数据磁盘持久化存储
支持主从
支持分片

2.为什么Redis这么快
Redis可以达到100000+QPS。

完全基于内存，绝大部分请求是纯粹的内存操作
数据结构简单，对数据操作也简单
采用单线程，避免了处理并发问题]]></description><category></category></item><item><title><![CDATA[字节跳动提前批java一面]]></title><link>https://blog.youkuaiyun.com/DLC990319/article/details/107655887</link><guid>https://blog.youkuaiyun.com/DLC990319/article/details/107655887</guid><author>DLC990319</author><pubDate>Wed, 29 Jul 2020 10:06:53 +0800</pubDate><description><![CDATA[一、HashMap

讲一下HashMap
为什么1.7及之前扩容时会形成环
HashMap是怎么扩容的，为什么会有高低位的区别，数组长度为什么是2的n次方
为什么链表要变成红黑树

二、TCP

TCP/IP协议有哪四层？
TCP和UDP的区别
TCP和UDP分别的使用场景
TCP的四次挥手，为什么最后要等待2MSL？
TCP出现粘包是怎么解决的？

三、数据库

索引在数据库中以什么结构存储？
B+树和B树的区别？优势是什么
聚集索引和稀疏索引的区别
创建联合索引时需要注意什么
数据库的四种隔离级别，R]]></description><category></category></item></channel></rss>