<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[夏日 の blog]]></title><description><![CDATA[去更远的地方，见更亮的光。]]></description><link>https://blog.youkuaiyun.com/zss192</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zss192]]></copyright><item><title><![CDATA[分布式常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/142827528</link><guid>https://blog.youkuaiyun.com/zss192/article/details/142827528</guid><author>zss192</author><pubDate>Thu, 10 Oct 2024 17:28:14 +0800</pubDate><description><![CDATA[在分库之后，数据遍布在不同服务器上的数据库，数据库的自增主键已经没办法满足生成的主键唯一了。就要用到分布式 ID 保证全局唯一性。UUID 是 Universally Unique Identifier（通用唯一标识符） 的缩写。UUID 包含 32 个 16 进制数字（8-4-4-4-12）。//输出示例：cb4a9ede-fa5e-4585-b9bb-d60bce986eaa虽然，UUID 可以做到全局唯一性，但是，我们一般很少会使用它。]]></description><category></category></item><item><title><![CDATA[消息队列常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/142568377</link><guid>https://blog.youkuaiyun.com/zss192/article/details/142568377</guid><author>zss192</author><pubDate>Thu, 26 Sep 2024 18:24:39 +0800</pubDate><description><![CDATA[镜像队列结构是一主多从，所有操作都是主节点完成，然后同步给镜像节点，如果主节点宕机后，镜像节点会替代成新的主节点，不过在主从同步完成前，主节点如果宕机，可能出现数据丢失。Kafka 使用了操作系统的内存映射文件技术（mmap），将磁盘文件直接映射到内存中，这样在读取消息时，不需要频繁从磁盘读取数据，提升了性能。，消费者监听死信队列中的消息，一旦收到消息，执行相应的业务逻辑，比如取消订单操作。消费者监听目标队列中的消息，一旦收到消息，执行相应的业务逻辑，比如取消订单操作。中，并设定消息的过期时间。]]></description><category></category></item><item><title><![CDATA[微服务常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/142436599</link><guid>https://blog.youkuaiyun.com/zss192/article/details/142436599</guid><author>zss192</author><pubDate>Sun, 22 Sep 2024 14:24:24 +0800</pubDate><description><![CDATA[在微服务中，假如一个或者多个服务出现故障，如果这时候，依赖的服务还在不断发起请求，或者重试，那么这些请求的压力会不断在下游堆积，导致下游服务的负载急剧增加。不断累计之下，可能会导致故障的进一步加剧，可能会导致整个系统崩溃，这就叫服务雪崩。服务高可用部署：确保各个服务都具备高可用性，通过冗余部署、故障转移等方式来减少单点故障的影响。限流和熔断：对服务之间的请求进行限流和熔断，以防止过多的请求涌入导致后端服务不可用。]]></description><category></category></item><item><title><![CDATA[Spring和MyBatis常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/142102230</link><guid>https://blog.youkuaiyun.com/zss192/article/details/142102230</guid><author>zss192</author><pubDate>Tue, 10 Sep 2024 16:19:49 +0800</pubDate><description><![CDATA[Before（前置通知）：目标对象的方法调用之前触发After（后置通知）：目标对象的方法调用之后触发（返回通知）：目标对象的方法调用完成，在返回结果值之后触发（异常通知）：目标对象的方法运行中抛出 / 触发异常后触发。AfterReturning 和 AfterThrowing 两者互斥。如果方法调用成功无异常，则会有返回值；如果方法抛出了异常，则不会有返回值。Around（环绕通知）：编程式控制目标对象的方法调用。]]></description><category></category></item><item><title><![CDATA[经典排序算法总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/142005916</link><guid>https://blog.youkuaiyun.com/zss192/article/details/142005916</guid><author>zss192</author><pubDate>Sat, 07 Sep 2024 22:44:28 +0800</pubDate><description><![CDATA[内部排序：数据记录在内存中进行排序。外部排序：因排序的数据很大，一次不能容纳全部的排序记录，在排序过程中需要访问外存。插入排序希尔排序选择排序冒泡排序归并排序快速排序堆排序基数排序等，本文只讲解内部排序算法。用一张图概括：稳定性助记：希尔 快速 选择 堆-不稳，猫插龟 鸡捅基-很稳图片名词解释：n：数据规模k：“桶” 的个数In-place：占用常数内存，不占用额外内存Out-place：占用额外内存冒泡排序：1号与2号比较然后2号与3号比较…，可确定最大的元素放在最后。]]></description><category></category></item><item><title><![CDATA[Linux 基础知识总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141887862</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141887862</guid><author>zss192</author><pubDate>Wed, 04 Sep 2024 11:01:02 +0800</pubDate><description><![CDATA[分别对应文件的属主(owner)，属组(group)和其他用户(other)，通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。Linux 系统是一个多用户多任务的分时操作系统，任何一个要使用系统资源的用户，都必须首先向系统管理员申请一个账号，然后以这个账号的身份进入系统。示例：修改/test 下的 aaa.txt 的权限为文件所有者有全部权限，文件所有者所在的组有读写权限，其他用户只有读的权限。：可以列出打开的文件和关联的进程，网络端口也被视为文件，所以可以用来查看占用端口的进程。]]></description><category></category></item><item><title><![CDATA[Redis常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141748778</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141748778</guid><author>zss192</author><pubDate>Sat, 31 Aug 2024 10:27:44 +0800</pubDate><description><![CDATA[listpack 中每个节点不再像压缩列表一样包含前一个节点的长度，但还是用一块连续的内存空间来紧凑地保存数据，并且为了节省内存的开销，listpack 节点会采用不同的编码方式保存不同大小的数据。当我们向 listpack 加入一个新元素的时候，不会影响其他节点的长度字段的变化，从而避免了压缩列表的连锁更新问题。避免额外的检查开销，AOF 记录日志不会对命令进行语法检查；在命令执行完之后再记录，不会阻塞当前命令的执行。这样也带来了风险如果刚执行完命令 Redis 就宕机会导致对应的修改丢失；]]></description><category></category></item><item><title><![CDATA[MySQL常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141637652</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141637652</guid><author>zss192</author><pubDate>Wed, 28 Aug 2024 12:19:08 +0800</pubDate><description><![CDATA[ER 图全称是 Entity Relationship Diagram（实体联系图），提供了表示实体类型、属性和联系的方法。实体：通常是现实世界的业务对象，当然使用一些逻辑对象也可以，实体使用矩形框表示。属性：即某个实体拥有的属性，可以理解为字段，属性使用椭圆形表示。联系：即实体与实体之间的关系，用菱形表示，这个关系不仅有业务关联关系，还能通过数字表示实体之间的数量对照关系。下图是一个学生选课的 ER 图，每个学生可以选若干门课程，同一门课程也可以被若干人选择，所以它们之间的关系是多对多（M: N）]]></description><category></category></item><item><title><![CDATA[操作系统常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141597154</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141597154</guid><author>zss192</author><pubDate>Tue, 27 Aug 2024 10:50:28 +0800</pubDate><description><![CDATA[操作系统（Operating System，简称 OS）是管理计算机硬件与软件资源的程序，是计算机的基石。操作系统的内核（Kernel）属于操作系统层面，而 CPU 属于硬件。CPU 主要提供运算，处理各种指令的能力。内核（Kernel）主要负责系统管理比如内存管理，它屏蔽了对硬件的操作。下图清晰说明了应用程序、内核、CPU 这三者的关系。用户态(User Mode): 用户态运行的进程可以直接读取用户程序的数据，拥有较低的权限。]]></description><category></category></item><item><title><![CDATA[计算机网络常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141496418</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141496418</guid><author>zss192</author><pubDate>Sat, 24 Aug 2024 10:53:25 +0800</pubDate><description><![CDATA[半连接队列（也称 SYN Queue）：当服务端收到客户端的 SYN 请求时，此时双方还没有完全建立连接，它会把半连接状态的连接放在半连接队列。全连接队列（也称 Accept Queue）：当服务端收到客户端的 ACK 响应时，意味着三次握手成功完成，服务端会将该连接从半连接队列移动到全连接队列。如果未收到客户端的 ACK 响应，会进行重传，重传的等待时间通常是指数增长的。如果重传次数超过系统规定的最大重传次数，系统将从半连接队列中删除该连接信息。]]></description><category></category></item><item><title><![CDATA[JVM常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141421268</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141421268</guid><author>zss192</author><pubDate>Thu, 22 Aug 2024 10:19:41 +0800</pubDate><description><![CDATA[Java 中的堆属于线程共享的区域，主要用来保存对象实例，数组。新生代（Young Generation）:新生代分为Eden 区和Survivor 区(8:1:1在 Survivor 区中，分为两个大小相等的区域，称为 S0 和 S1。大多数新创建的对象首先存放在 Eden 区。当 Eden 区满时，会触发一次 Minor GC（新生代垃圾回收）。在每次 Minor GC 后，存活下来的对象会被移动到其中一个 Survivor 区。]]></description><category></category></item><item><title><![CDATA[Java并发常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141368213</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141368213</guid><author>zss192</author><pubDate>Tue, 20 Aug 2024 20:48:30 +0800</pubDate><description><![CDATA[线程在执行过程中会有自己的运行条件和状态（也称上下文），比如上文所说到过的程序计数器，栈信息等。当出现如下情况的时候，线程会从占用 CPU 状态中退出。主动让出 CPU，比如调用了sleep()wait()等。时间片用完，因为操作系统要防止一个线程或者进程长时间占用 CPU 导致其他线程或者进程饿死。调用了阻塞类型的系统中断，比如请求 IO，线程被阻塞。被终止或结束运行这其中前三种都会发生线程切换，线程切换意味着需要保存当前线程的上下文，留待线程下次占用 CPU 的时候恢复现场。]]></description><category></category></item><item><title><![CDATA[Java集合常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141280877</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141280877</guid><author>zss192</author><pubDate>Sat, 17 Aug 2024 15:11:06 +0800</pubDate><description><![CDATA[Java 集合，也叫作容器，主要是由两大接口派生而来：一个是Collection接口，主要用于存放单一元素；另一个是Map接口，主要用于存放键值对。对于CollectionListSet和Queue。List：存储的元素是有序的、可重复的。常用的实现List的类有LinkedList，ArrayListSet：存储的元素不可重复的。常用的实现有HashSet，LinkedHashSet和TreeSet。Queue：按特定的排队规则来确定先后顺序，存储的元素是有序的、可重复的。]]></description><category></category></item><item><title><![CDATA[Java基础常见面试题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/141194170</link><guid>https://blog.youkuaiyun.com/zss192/article/details/141194170</guid><author>zss192</author><pubDate>Wed, 14 Aug 2024 16:24:37 +0800</pubDate><description><![CDATA[JVM 可以理解的代码就叫做字节码（即扩展名为.class的文件），它不面向任何特定的处理器，只面向虚拟机。Java 语言通过字节码的方式，在一定程度上解决了传统解释型语言执行效率低的问题，同时又保留了解释型语言可移植的特点。所以， Java 程序运行时相对来说还是高效的，而且，由于字节码并不针对一种特定的机器，因此，Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。可变长参数就是允许在调用方法时传入不定长度的参数。比如下面的这个method1方法就可以接受 0 个或者多个参数。]]></description><category></category></item><item><title><![CDATA[LeetCode HOT 100刷题总结]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/138610657</link><guid>https://blog.youkuaiyun.com/zss192/article/details/138610657</guid><author>zss192</author><pubDate>Thu, 09 May 2024 13:33:42 +0800</pubDate><description><![CDATA[文章目录1 哈希1.1 1-1.两数之和🟢1.2 2-49.字母异位词分组🟡1.3 3-128.最长连续序列🟡2 双指针2.1 4-283.移动零🟢2.2 6-15.三数之和🟡2.3 7-11.盛最多水的容器🟡2.4 8-42.接雨水🔴3 滑动窗口3.1 9-3.无重复字符的最长子串🟡3.2 10-438.找到字符串中所有字母异位词🟡4 子串4.1 11-560.和为 K 的子数组🟡5 矩阵5.1 73.矩阵置零🟡6 链表6.1 23-160.相交链表🟢6.2 24-206.反转链表🟢🔥6.3 92.反转链]]></description><category></category></item><item><title><![CDATA[LeetCode HOT 100刷题记录（一）]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/137714416</link><guid>https://blog.youkuaiyun.com/zss192/article/details/137714416</guid><author>zss192</author><pubDate>Sat, 13 Apr 2024 14:12:41 +0800</pubDate><description><![CDATA[本题要找的子串的长度是固定的，也就是可以看作是一个固定长度的滑动窗口不断右移，判断当前窗口的子串是否满足条件即可。因为只有小写字母，所以可以用长度为26的数组记录每个字母出现的个数。只会让高度不变或者更小，所以要移动高度较低的那条线，这样虽然宽度减小，但是高度有可能增大，容量才有可能变大。但是计算某一侧最高的柱子要是每次都一个个遍历太耗时，可以使用备忘录的方式先提前算出所有位置两侧最高柱子的高度。的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。的子串，返回这些子串的起始索引。]]></description><category></category></item><item><title><![CDATA[代码随想录刷题-回溯]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/137243219</link><guid>https://blog.youkuaiyun.com/zss192/article/details/137243219</guid><author>zss192</author><pubDate>Mon, 01 Apr 2024 18:53:33 +0800</pubDate><description><![CDATA[精简总结无重可复选最简单，什么也不用管可重要剪枝，排序后和前一个相同要跳过，排列前一个还必须要使用过不可复选组合/子集下次递归从i+1开始，排列加used数组判断是否选过可重/不可重元素可重那就会有重复，那就要剪枝对于子集/组合，要加排序和判断排列的可重还要加上!才能剪枝，这样才能保证元素的相对位置不变可复选/不可复选不可复选意味着必须选没用过的，那怎么判断用没用过呢？对于子集/组合可复选下次递归就从当前开始，那backtarck函数的参数是i就行，这样下次还能选当前元素。]]></description><category></category></item><item><title><![CDATA[代码随想录刷题-二叉树]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/136944064</link><guid>https://blog.youkuaiyun.com/zss192/article/details/136944064</guid><author>zss192</author><pubDate>Fri, 22 Mar 2024 16:05:10 +0800</pubDate><description><![CDATA[合并的规则是：如果两个节点重叠，那么将这两个节点的值相加作为合并后节点的新值；的定义如下：在完全二叉树中，除了最底层节点可能没填满外，其余每层节点数都达到最大值，并且最下面一层的节点都集中在该层最左边的若干位置。树的根节点，该树的节点值各不相同，请你将其转换为累加树（Greater Sum Tree），使每个节点。所以结果应当返回修剪好的二叉搜索树的新的根节点。对应的节点，并保证二叉搜索树的性质不变。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。是指从根节点到最远叶子节点的最长路径上的节点数。]]></description><category></category></item><item><title><![CDATA[服务器又被挖矿记录]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/136554804</link><guid>https://blog.youkuaiyun.com/zss192/article/details/136554804</guid><author>zss192</author><pubDate>Fri, 08 Mar 2024 10:55:46 +0800</pubDate><description><![CDATA[23年11月的时候我写过一篇记录服务器被挖矿的情况，。当时是在桌面看到了bash进程CPU占用异常发现了服务器被挖矿。而过了几个月没想到又被攻击，这次比上次攻击手段要更高明点，在这记录下吧。]]></description><category></category></item><item><title><![CDATA[服务器bash进程占用cpu过多疑似中挖矿病毒记录]]></title><link>https://blog.youkuaiyun.com/zss192/article/details/134673199</link><guid>https://blog.youkuaiyun.com/zss192/article/details/134673199</guid><author>zss192</author><pubDate>Tue, 28 Nov 2023 17:57:16 +0800</pubDate><description><![CDATA[因为我有使用conky的习惯，也就是在桌面上会显示cpu和内存的占用情况，由于服务器不止我一个人使用，最近发现好几次我同学的账户下的bash进程占用特别多，问了他之后，他也说他几次都是没有使用过bash相关服务，之前一直以为可能是某个软件bug之类的，这次想着好好查一下。]]></description><category></category></item></channel></rss>