<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[所幸你是例外的博客]]></title><description><![CDATA[猛学自然强！]]></description><link>https://blog.youkuaiyun.com/qq100344</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq100344]]></copyright><item><title><![CDATA[Go语言结构体中的填充字段：揭秘内存对齐的奥秘]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/144652396</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/144652396</guid><author>qq100344</author><pubDate>Sun, 22 Dec 2024 23:30:40 +0800</pubDate><description><![CDATA[一、内存对齐与填充字段详解在 Go 语言中，结构体（struct）是一种用户自定义的数据类型，它允许我们把多个不同类型的数据组合在一起，组成一个单一的复合结构。无论是构建复杂的数据结构，还是实现面向对象编程中的概念，结构体在 Go 语言中都扮演着非常重要的角色！这段代码是我在 Github 上阅读到的，当时我对这个结构体类型的设计感到好奇，不禁思考这样设计的原因是什么？它有哪些优势？在搜索引擎的帮助下，我最终了解到这些字段被称为填充字段（Padding Fields）。]]></description><category></category></item><item><title><![CDATA[探秘 Go 语言赋值表达式的奇妙之旅]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/144654292</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/144654292</guid><author>qq100344</author><pubDate>Sun, 22 Dec 2024 22:56:19 +0800</pubDate><description><![CDATA[并将结果保存在一个新的临时变量中（注意这里不是用上一步的结果，而是重新计算）；并没有使用到第一个表达式中计算得出的结果。这也就意味着，在计算表达式。注意，由于计算顺序是从左到右依次进行的，因此第二个表达式。的结果保存在临时变量中，最后一次性将它们赋值给。，但是其计算顺序是从左到右依次进行的。最后一次性将这三个临时变量的值分别赋值给。进行复用，而是按照先后顺序依次计算赋值。，并将结果保存在另一个临时变量中；，并将结果保存在一个临时变量中；在 Go 语言中，赋值表达式。的值，并依次将它们赋值给。]]></description><category></category></item><item><title><![CDATA[探秘数据结构：小白如何轻松上手学算法?]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/144538699</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/144538699</guid><author>qq100344</author><pubDate>Wed, 18 Dec 2024 22:33:54 +0800</pubDate><description><![CDATA[​在信息技术日新月异的今天，数据结构作为计算机科学的基础之一，其重要性不言而喻。对于初学者，尤其是那些没有编程背景或者对数据结构概念尚不熟悉的小白来说，学习数据结构可能会显得有些吃力。但别担心，本文将为你提供一套系统的学习方法，帮助你从零开始，逐步掌握数据结构的核心知识。]]></description><category></category></item><item><title><![CDATA[探秘单调栈：原理、作用与应用场景全解析]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/144553270</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/144553270</guid><author>qq100344</author><pubDate>Wed, 18 Dec 2024 11:54:44 +0800</pubDate><description><![CDATA[单调栈是一种特殊的栈结构，从字面上理解就是栈内元素具有单调性，分为单调递增栈和单调递减栈两类。2.1 单调递增栈定义：栈内元素按照从小到大的顺序排列，使其栈顶元素始终最小，栈底元素始终最大。想象一下，你有一堆乱序的书本，你想把它们整理成一个整齐的书架。单调递增栈就像是你按照书本的大小，从最小的一本开始，依次往上放，这样最上面的那本书一定是最小的，而最下面的那本则是最大的。特点栈顶的书本总是最小的。栈底的书本总是最大的。步骤1：9入栈：(9)步骤2：2入栈：(9，2)步骤3。]]></description><category></category></item><item><title><![CDATA[简单了解一下 Go 语言的构建约束？]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/144439304</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/144439304</guid><author>qq100344</author><pubDate>Fri, 13 Dec 2024 18:45:42 +0800</pubDate><description><![CDATA[​构建约束是一种在 Go 语言中控制源文件编译条件的方法，它可以让您指定某些文件只在特定的操作系统、架构、编译器或 Go 版本下编译，而在其他环境中自动忽略。通过灵活运用构建约束，开发者可以有效地为不同环境编写适合的代码，大大提升了 Go 语言的跨平台开发能力。：该文件只在 darwin 系统并且没有启用 cgo 的情况下编译，其他环境忽略。： 该文件只在 linux 系统和 386 架构下编译，其他环境忽略。：该文件只在 linux 系统和 arm 架构下编译，其他环境忽略。]]></description><category></category></item><item><title><![CDATA[github 加速访问教程（devsidecar）]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/144413190</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/144413190</guid><author>qq100344</author><pubDate>Thu, 12 Dec 2024 00:08:08 +0800</pubDate><description><![CDATA[DevSidecar 是一款非常优秀的github加速工具。该软件界面美观，使用后可以给用户带来很多使用帮助和便利，通过本地代理的方式将https请求代理到一些国内的加速通道上，这样的话访问速度就可以更快了。下载后首次运行前会需要让你安装过一个证书，跟着教程安装即可。按照以下步骤安装证书，然后开户相应的代理进行加速了。如果实在访问不了可以在所有github地址前加一个。需要注意的是，如果开启了。]]></description><category></category></item><item><title><![CDATA[十分钟掌握Go语言==运算符与reflect.DeepEqual函数处理interface{}值的比较规则]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/136040958</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/136040958</guid><author>qq100344</author><pubDate>Mon, 05 Feb 2024 14:20:29 +0800</pubDate><description><![CDATA[当使用 == 符号比较两个 interface{} 类型的值时，Go 语言底层会先比较它们的动态类型，也就是比较它们的第一个字，看是否指向相同的类型信息。对于 reflect.DeepEqual 而言，它通过牺牲程序的性能弥补了 == 运算符无法处理切片、映射、函数的短板，对于这些不支持 == 操作的类型，reflect.DeepEqual 函数会有一套自己的比较规则，它就是是 == 运算符的 Plus 版本。如果动态值的大小超过了一个字，那么这个字就存储了动态值的指针，指向实际的动态值。]]></description><category></category></item><item><title><![CDATA[一文领悟自学Go语言的秘诀？]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/136039271</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/136039271</guid><author>qq100344</author><pubDate>Mon, 05 Feb 2024 12:10:38 +0800</pubDate><description><![CDATA[Go 语言的并发编程，包括协程、通道、同步、锁、死锁、内存模型等。Go 语言的标准库和第三方库，包括字符串、文件、网络、数据库、测试、日志、错误处理、反射、元编程等。学习Go语言的第一步是掌握其基本语法，包括变量、常量、数据类型、运算符、控制流、函数、数组、切片、映射、指针等。深入学习Go的标准库，掌握其中常用的包和模块的同时，还得接触一些流行的Go框架，如Gin、Beego等，提高Web开发能力。阅读经典的Go编程书籍，如《Go语言编程》、《Go语言实战》等，深入理解Go语言的设计思想和高级特性。]]></description><category></category></item><item><title><![CDATA[软考复习之数据库篇]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/135965420</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/135965420</guid><author>qq100344</author><pubDate>Sat, 03 Feb 2024 13:39:08 +0800</pubDate><description><![CDATA[把一个关系（表）中的一些属性（列）的值，除以另一个关系（表）中的一些属性（列）的值，得到一个新的关系。新关系的属性（列）是被除关系的属性减去除数关系的属性，新关系的元组（行）是被除关系的元组在除数关系的所有元组上都能匹配的元组的剩余属性的值。A ----> B,B ----> C，如果通过A属性（属性组）的值，可以确定唯一B属性的值，在通过B属性（属性组）的值，可以确定唯一C属性的值，则称C传递函数依赖于A。新关系的属性（列名）是两个关系的属性的并集，新关系的元组（行）的个数是两个关系的元组的个数的乘积。]]></description><category></category></item><item><title><![CDATA[软考复习之数据结构篇]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/135920419</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/135920419</guid><author>qq100344</author><pubDate>Tue, 30 Jan 2024 00:34:35 +0800</pubDate><description><![CDATA[用于求方程的近似根。1、若方程无解，则算法求出的近似根序列就不会收敛，迭代过程会变成死循环，因此在使用迭代算法前应先考查方程是否有解，并在程序中对迭代的次数给予限制。2、方程虽有解，但迭代公式选择不当，或迭代的初始近似根选择不合理，也会导致迭代失败。：对可能是解的众多候选解按某种顺序进行逐一枚举和检查，并从中找出符合要求的候选解作为问题的解：利用问题本身所具有的一种递推关系求问题解的一种方法：执行过程分递推和回归两个阶段：在递推阶段，把较复杂的问题的求解分解成比原问题简单一些的问题的求解。]]></description><category></category></item><item><title><![CDATA[软考复习之多媒体篇]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/135824859</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/135824859</guid><author>qq100344</author><pubDate>Wed, 24 Jan 2024 16:08:17 +0800</pubDate><description><![CDATA[未压缩的数据传输率 = 采样频率（Hz）* 量化位数（位）* 声道数声音信号数据量 = 数据传输率 * 持续时间 / 8未压缩的文件的字节数 = 采样频率（Hz）* 采样时间（s）*量化位数（位）* 声道数 / 8存储量 = 水平像素 * 垂直像素 * 颜色位数 / 8注意：若题目给出X位或X位色，则颜色位数就是X，若题目给出为X色，那么颜色的位数为未压缩的文件的字节数 = 每帧图像的容量(B) * 图像帧数 * 时间(s)]]></description><category></category></item><item><title><![CDATA[软考复习之UML设计篇]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/135824378</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/135824378</guid><author>qq100344</author><pubDate>Wed, 24 Jan 2024 16:00:44 +0800</pubDate><description><![CDATA[构件图：描述系统的物理结构，它可以用来显示程序代码如何分解成模块部署图：描述系统中硬件和软件的物理结构，它描述构成系统架构的软件构件，处理器和设备用例图：描述系统与外部系统及用户的交互协作图：强调收发信息的结构组织序列图：描述了在一个用例操作的执行过程中以时间顺序组织的对象之间的交互活动，关注系统的动态视图对象图：展现了一组对象以及它们之间的关系，描述了在类图中所建立的事物的实例的静态快照。]]></description><category></category></item><item><title><![CDATA[软考复习之软件工程篇]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/135824052</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/135824052</guid><author>qq100344</author><pubDate>Wed, 24 Jan 2024 15:46:55 +0800</pubDate><description><![CDATA[问题定义：要示系统分析员与用户进行交流，弄清”用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”，提交用户审查和确认可行性研究：一方面在于把待开发的系统的目标以明确的语言描述出来，另一方面从经济、技术、法律等多方面进行可行性研究需求分析：确定软件系统的功能需求和非功能需求；分析软件系统的数据要求；导出系统的逻辑模型；修正项目开发计划；如有必要可以开发一个原型系统开发阶段：设计->实现->测试。]]></description><category></category></item><item><title><![CDATA[计算机网络面经汇总]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115500599</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115500599</guid><author>qq100344</author><pubDate>Thu, 08 Apr 2021 06:25:57 +0800</pubDate><description><![CDATA[网络分层
OSI 七层模型
① 应用层（数据包）
应用层位于 OSI 参考模型的第七层，其作用是通过应用程序间的交互来完成特定的网络应用。该层协议定义了应用进程之间的交互规则，通过不同的应用层协议为不同的网络应用提供服务。例如域名系统 DNS，支持万维网应用的 HTTP 协议，电子邮件系统采用的 SMTP 协议等。在应用层交互的数据单元我们称之为报文。
② 表示层（数据包）
表示层的 作用是使通信的应用程序能够解释交换数据的含义，其位于 OSI 参考模型的第六层，向上为应用层提供服务，向下接收来自会话层的服]]></description><category></category></item><item><title><![CDATA[Rabbitmq面经题汇总]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115497170</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115497170</guid><author>qq100344</author><pubDate>Wed, 07 Apr 2021 21:54:01 +0800</pubDate><description><![CDATA[MQ术语
Broker： 消息队列服务器实体
Exchange： 消息交换机，它指定消息按什么规则，路由到哪个队列
Queue： 消息队列载体，每个消息都会被投入到一个或多个队列
Binding： 绑定，它的作用就是把exchange和queue按照路由规则绑定起来
Routing Key： 路由关键字，exchange根据这个关键字进行消息投递
VHost： vhost 可以理解为虚拟 broker ，即 mini-RabbitMQ server。其内部均含有独立的 queue、exchange 和bin]]></description><category></category></item><item><title><![CDATA[SSM框架面经汇总]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115492258</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115492258</guid><author>qq100344</author><pubDate>Wed, 07 Apr 2021 18:19:10 +0800</pubDate><description><![CDATA[Spring篇
Spring框架中用到了哪些设计模式
单例模式：Bean默认为单例模式。
工厂模式：BeanFactory是一个简单工厂模式，用来创建对象实例。
代理模式：Spring的AOP功能用到了JDK的动态代理和CGLIB动态代理。
模板方法模式：用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。
观察者模式：当一个对象的状态发生改变时，所有依赖于它的对象都会得到通知被自动更新。例如ApplicationListener。
Spring I]]></description><category></category></item><item><title><![CDATA[Java8新特性之函数式接口]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115482797</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115482797</guid><author>qq100344</author><pubDate>Wed, 07 Apr 2021 12:35:38 +0800</pubDate><description><![CDATA[函数式接口
函数式接口是具有一个抽象方法的接口。
不能使用以下类型的方法来声明一个函数式接口：

默认方法
静态方法
从Object类继承的方法

一个函数式接口可以重新声明Object类中的方法。该方法不被视为抽象方法。Comparator接口有两个抽象方法：compare()和equals()。equals()方法是Object类中的equals()方法的重新声明。
@FunctionalInterface
interface Comparator&lt;T&gt;{
    int compare(T]]></description><category></category></item><item><title><![CDATA[Redis学习指南]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115482743</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115482743</guid><author>qq100344</author><pubDate>Wed, 07 Apr 2021 12:31:59 +0800</pubDate><description><![CDATA[简介
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。Redis是一个高性能的key-value数据库，遵守 BSD 协议。
特性：

支持数据持久化，可以将内存中的数据保存在磁盘
支持master-slave模式的数据备份
支持复杂数据类型并且提供对他们的原子性操作。例如 list，set，zset，hash等

安装
window下载地址：https://github.com/dmajkic/red]]></description><category></category></item><item><title><![CDATA[数据结构之前缀树]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115436546</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115436546</guid><author>qq100344</author><pubDate>Mon, 05 Apr 2021 05:44:25 +0800</pubDate><description><![CDATA[前缀树
前缀树 是 N叉树 的一种特殊形式。通常来说，一个前缀树是用来存储字符串的。前缀树的每一个节点代表一个字符串（前缀）。每一个节点会有多个子节点，通往不同子节点的路径上有着不同的字符。子节点代表的字符串是由节点本身的原始字符串 ，以及通往该子节点路径上所有的字符组成的。下面是前缀树的一个例子：

树节点：
// 节点类
static class TrieNode {
    // 单词标记
    private boolean isWord;
    // 字符表
    private Map&l]]></description><category></category></item><item><title><![CDATA[Redis面经汇总]]></title><link>https://blog.youkuaiyun.com/qq100344/article/details/115436527</link><guid>https://blog.youkuaiyun.com/qq100344/article/details/115436527</guid><author>qq100344</author><pubDate>Mon, 05 Apr 2021 04:13:26 +0800</pubDate><description><![CDATA[Redis是什么
redis是一个基于内存的高性能的 key-value 数据库。
Redis与Memcached的区别

memcached所有的值都是简单的字符串，redis支持更多的数据结构（string,list,hash,sorted set,set）
redis的速度比memcached快
redis可以持久化其数据（AOF,RDB）

为什么要用Redis
高性能
操作缓存就是直接操作内存，所以速度相当快。

高并发
直接操作缓存能够承受的请求是远远大于直接访问数据库的，所以我们可以考虑把数据]]></description><category></category></item></channel></rss>