<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ignb6666的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ignb6666</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ignb6666]]></copyright><item><title><![CDATA[进程间通信的方式]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136331596</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136331596</guid><author>ignb6666</author><pubDate>Tue, 27 Feb 2024 21:45:00 +0800</pubDate><description><![CDATA[消息的发送方和接收方事件约定好消息体的数据类型，每个消息体都是固定大小的存储块，不像管道是无格式的字节流数据。type 参数⽤来指定通信特性，⽐如 SOCK_STREAM 表示的是字节流，对应 TCP、SOCK_DGRAM 表示的是数据报，对应 UDP、SOCK_RAW 表示的是原始套接字；因为管道没有实体，也就没有管道文件，只能通过fork命令复制父进程的文件描述符fd，来达到通信的目的。消息队列也有其局限性，一是通信不够及时，二是消息队列的大小也有限制，即每个消息体有一个最大长度的限制。]]></description><category></category></item><item><title><![CDATA[SocketWeb实现小小聊天室]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136281700</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136281700</guid><author>ignb6666</author><pubDate>Sun, 25 Feb 2024 20:41:37 +0800</pubDate><description><![CDATA[WebSocket是一种基于TCP连接上进行全双工通信的协议。（附HTTP协议工作模式：http1.0：单工。因为是短连接，客户端发起请求之后，服务端处理完请求并收到客户端的响应后即断开连接http1.1：半双工。默认开启长连接keep-alive，开启一个连接可发送多个请求http2.0：全双工，允许服务端主动向客户端发送数据）]]></description><category></category></item><item><title><![CDATA[Java学习小记——设计模式]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136194186</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136194186</guid><author>ignb6666</author><pubDate>Tue, 20 Feb 2024 22:26:38 +0800</pubDate><description><![CDATA[设计模式（Design pattern）代表了最佳的实践，通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。]]></description><category></category></item><item><title><![CDATA[Java学习小记——多线程&Socket编程]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136173391</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136173391</guid><author>ignb6666</author><pubDate>Mon, 19 Feb 2024 21:49:10 +0800</pubDate><description><![CDATA[在创建一个线程时存在一定的开销，创建线程的开销相比于一般的算法来说较大。首先需要建立一个调用栈，接着操作系统还需要建立很多数据结构来维护线程的状态等等。为了解决每次都需要临时创建线程带来开销的问题，引入了线程池。线程池会预先建立好线程，等待任务派发。一个线程池内可能会有几十上百个闲置的线程，当有任务来临时，需要选中一个线程执行任务。执行完毕后释放该线程资源，重新回到闲置状态，等待下一个任务。在线程池中，通常有一个Blocking Queue用来派发任务。]]></description><category></category></item><item><title><![CDATA[数据库系统学习小记]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136113680</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136113680</guid><author>ignb6666</author><pubDate>Thu, 15 Feb 2024 09:00:00 +0800</pubDate><description><![CDATA[关系型数据库是建立在关系模型基础上的数据库，依靠表、字段等关系模型，结合集合代数等数学方法来处理数据。关系型数据的理论基础就是关系代数。关系型数据库提出了第一范式到第五范式，一般做到第三范式或者BCNF范式。第一范式：符合1NF的关系中的每个属性都不可再分，是所有关系型数据库最基本的要求；第二范式：在1NF的基础之上，消除非主属性对于码的部分函数依赖（满足1NF，表中的字段必须完全依赖于全部主键而非部分主键）；]]></description><category></category></item><item><title><![CDATA[Leetcode 452. 用最少数量的箭引爆气球&435. 无重叠区间]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136113155</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136113155</guid><author>ignb6666</author><pubDate>Wed, 14 Feb 2024 14:05:30 +0800</pubDate><description><![CDATA[两题非常像，452中弓箭的数量就相当于是435中非交叉区间的数量，只要把弓箭题目代码里射爆气球的判断条件加个等号（认为[0，1][1，2]不是相邻区间），然后用总区间数减去弓箭数量，就是要移除的区间数量。]]></description><category></category></item><item><title><![CDATA[使用Lambda表达式进行排序]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136112488</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136112488</guid><author>ignb6666</author><pubDate>Wed, 14 Feb 2024 12:03:36 +0800</pubDate><description><![CDATA[【代码】使用Lambda表达式进行排序。]]></description><category></category></item><item><title><![CDATA[Leetcode 1005. K 次取反后最大化的数组和]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136100877</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136100877</guid><author>ignb6666</author><pubDate>Mon, 12 Feb 2024 14:09:40 +0800</pubDate><description><![CDATA[第一次：让绝对值大的负数变为正数，当前数值达到最大，直到整个数组和达到最大；第三步：如果K还大于0，那么反复转变数值最小的元素，将k用完;第二次：k还是大于0，还要转变k次正负，让数组和达到最大。第二步：从前向后遍历，遇到负数将其变为正数，同时k–;第一步：将数组按照绝对值大小从大到小排序；]]></description><category></category></item><item><title><![CDATA[Leetcode 2641. 二叉树的堂兄弟节点 II]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136073842</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136073842</guid><author>ignb6666</author><pubDate>Thu, 08 Feb 2024 09:00:00 +0800</pubDate><description><![CDATA[在层序遍历中，需要先创建一个队列，并将结点添加至队列中；接下来，若队列不为空，则遍历每一层即深度相同的节点，并将对应的val相加得到和sum，最后的结点值就是sum减去本结点值及其亲兄弟结点值啦！其实我们可以延申一下题意，怎样去计算该结点所有堂兄弟结点值的和？其实只需要先计算每一层所有结点的和，再减掉其本身的值和兄弟结点（如有）的值。本题为修改给定二叉树中结点的值，修改的规则为：将原来的值替换为该结点所有堂兄弟结点值的和。那么又怎样去计算每一层的结点值之和？]]></description><category></category></item><item><title><![CDATA[Leetcode 45. 跳跃游戏 II]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136057168</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136057168</guid><author>ignb6666</author><pubDate>Tue, 06 Feb 2024 15:18:22 +0800</pubDate><description><![CDATA[十分类似，区别在于本题是要求出最小的跳跃次数。]]></description><category></category></item><item><title><![CDATA[Leetcode 55. 跳跃游戏]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/136056056</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/136056056</guid><author>ignb6666</author><pubDate>Tue, 06 Feb 2024 14:33:08 +0800</pubDate><description><![CDATA[用一个覆盖范围cover来表示当前坐标元素所能跳跃到的距离范围；遍历在覆盖范围内的元素，一个个往后继续试它们的覆盖范围；直到覆盖范围中有最后一个元素位置，即可返回true；否则表示没有覆盖到最后一个元素，返回false。如果新的cover位置更远，就取代之；]]></description><category></category></item><item><title><![CDATA[服务端开发小记05——MySQL]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135910224</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135910224</guid><author>ignb6666</author><pubDate>Mon, 29 Jan 2024 14:24:25 +0800</pubDate><description><![CDATA[MySQL是一个关系型数据库管理系统，目前属于Oracle旗下产品。MySQL所使用的SQL语言用于访问数据库的最常用标准化语言。其软件分为商业版和社区版，具有体积小，成本低，开源等等特点，适用于中小型网站的开发。]]></description><category></category></item><item><title><![CDATA[服务端开发小记04——Nginx]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135909630</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135909630</guid><author>ignb6666</author><pubDate>Mon, 29 Jan 2024 13:15:52 +0800</pubDate><description><![CDATA[Nginx是一款轻量级Web服务器，也是一款反向代理服务器。Nginx可以直接支持Rails和PHP的程序，并且可以直接作为HTTP反向代理服务器。此外，Nginx还可以作为负载均衡服务器，邮件代理服务器，帮助实现前端动静分离等等。具有高稳定，高性能，资源占用少，模块化结构以便管理的特点。反向代理域名转发：假如把互联网比作一个大都市，那么局域网就好比是一个小乡村。在乡村里，有着各式各样的小店铺和住户，相互需要交流，互相帮助。]]></description><category></category></item><item><title><![CDATA[服务端开发小记03——vsftpd]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135901466</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135901466</guid><author>ignb6666</author><pubDate>Sun, 28 Jan 2024 22:23:42 +0800</pubDate><description><![CDATA[vsftpd是“very secure FTP daemon”的缩写，是一个用于Linux环境下的免费开源的ftp服务器软件。vsftpd在Linux发行版中最受推崇，小巧轻快，安全易用，支持虚拟用户，支持带宽限制等功能。]]></description><category></category></item><item><title><![CDATA[服务端开发小记02——Maven]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135900935</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135900935</guid><author>ignb6666</author><pubDate>Sun, 28 Jan 2024 21:55:20 +0800</pubDate><description><![CDATA[Apache Maven Project是一个apache的开源项目，是用于构建和管理Java项目的工具包。用Maven可以方便地创建项目，基于archetype可以创建多种类型的java项目；Maven仓库对jar包（artifact）进行统一管理，避免jar文件的拷贝重复和版本冲突；便于团队开发，Maven管理项目的RELASE和SNAPSHOT版本，方便多模块项目的各个模块之间的快速集成。]]></description><category></category></item><item><title><![CDATA[服务端开发小记01——Tomcat]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135900426</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135900426</guid><author>ignb6666</author><pubDate>Sun, 28 Jan 2024 21:18:20 +0800</pubDate><description><![CDATA[Tomcat是一个Web容器，JavaEE程序可以在此运行。Tomcat是一个中间件，在B/S架构中，浏览器发出的http请求经过tpmcat中间件，转发到最终的目的服务器上，响应消息再通过tomcat返回给浏览器。tomcat做的事情主要有：开启监听端口监听用户的请求，解析用户发来的http请求然后访问到你指定的应用系统，然后你返回的页面经过tomcat返回给用户。]]></description><category></category></item><item><title><![CDATA[Leetcode 669. 修剪二叉搜索树]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135872938</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135872938</guid><author>ignb6666</author><pubDate>Fri, 26 Jan 2024 18:55:10 +0800</pubDate><description><![CDATA[【代码】Leetcode 669. 修剪二叉搜索树。]]></description><category></category></item><item><title><![CDATA[Leetcode 450. 删除二叉搜索树中的节点]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135865304</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135865304</guid><author>ignb6666</author><pubDate>Fri, 26 Jan 2024 14:22:47 +0800</pubDate><description><![CDATA[【代码】Leetcode 450. 删除二叉搜索树中的节点。]]></description><category></category></item><item><title><![CDATA[Leetcode 701. 二叉搜索树中的插入操作]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135842630</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135842630</guid><author>ignb6666</author><pubDate>Thu, 25 Jan 2024 13:54:53 +0800</pubDate><description><![CDATA[有两个地方需要去考虑，一是插入前记录父节点的位置，二是记录上一个递归是左儿子还是右儿子。父节点位置可以用一个全局变量记录一下；至于是左儿子还是右儿子可以用一个flag表示。在确定下一层是null时，把当前节点记录，并且把应插在左还是右也记录。首先考虑树为空的情况，只要返回一个值为val的结点即可；]]></description><category></category></item><item><title><![CDATA[2859. 计算 K 置位下标对应元素的和]]></title><link>https://blog.youkuaiyun.com/ignb6666/article/details/135840980</link><guid>https://blog.youkuaiyun.com/ignb6666/article/details/135840980</guid><author>ignb6666</author><pubDate>Thu, 25 Jan 2024 12:00:38 +0800</pubDate><description><![CDATA[减去1后，第三位变成0，它后面的两位0变成了1，而前面的1保持不变，因此得到的结果是1011。我们发现减1的结果是把最右边的一个1开始的所有位都取反了。这个时候如果我们再把原来的整数和减去1之后的结果做与运算，从原来整数最右边一个1那一位开始所有位都会变成0。如果我们把这个整数减1，那么原来处在整数最右边的1就会变为0，原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。也就是说，把一个整数减去1，再和原整数做与运算，会把该整数最右边一个1变成0。]]></description><category></category></item></channel></rss>