- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 十分钟掌握Go语言==运算符与reflect.DeepEqual函数处理interface{}值的比较规则
当使用 == 符号比较两个 interface{} 类型的值时,Go 语言底层会先比较它们的动态类型,也就是比较它们的第一个字,看是否指向相同的类型信息。对于 reflect.DeepEqual 而言,它通过牺牲程序的性能弥补了 == 运算符无法处理切片、映射、函数的短板,对于这些不支持 == 操作的类型,reflect.DeepEqual 函数会有一套自己的比较规则,它就是是 == 运算符的 Plus 版本。如果动态值的大小超过了一个字,那么这个字就存储了动态值的指针,指向实际的动态值。
2024-02-05 14:20:29
911
原创 一文领悟自学Go语言的秘诀?
Go 语言的并发编程,包括协程、通道、同步、锁、死锁、内存模型等。Go 语言的标准库和第三方库,包括字符串、文件、网络、数据库、测试、日志、错误处理、反射、元编程等。学习Go语言的第一步是掌握其基本语法,包括变量、常量、数据类型、运算符、控制流、函数、数组、切片、映射、指针等。深入学习Go的标准库,掌握其中常用的包和模块的同时,还得接触一些流行的Go框架,如Gin、Beego等,提高Web开发能力。阅读经典的Go编程书籍,如《Go语言编程》、《Go语言实战》等,深入理解Go语言的设计思想和高级特性。
2024-02-05 12:10:38
419
原创 软考复习之数据库篇
把一个关系(表)中的一些属性(列)的值,除以另一个关系(表)中的一些属性(列)的值,得到一个新的关系。新关系的属性(列)是被除关系的属性减去除数关系的属性,新关系的元组(行)是被除关系的元组在除数关系的所有元组上都能匹配的元组的剩余属性的值。A ----> B,B ----> C,如果通过A属性(属性组)的值,可以确定唯一B属性的值,在通过B属性(属性组)的值,可以确定唯一C属性的值,则称C传递函数依赖于A。新关系的属性(列名)是两个关系的属性的并集,新关系的元组(行)的个数是两个关系的元组的个数的乘积。
2024-02-03 13:39:08
1087
原创 软考复习之数据结构篇
用于求方程的近似根。1、若方程无解,则算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考查方程是否有解,并在程序中对迭代的次数给予限制。2、方程虽有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败。:对可能是解的众多候选解按某种顺序进行逐一枚举和检查,并从中找出符合要求的候选解作为问题的解:利用问题本身所具有的一种递推关系求问题解的一种方法:执行过程分递推和回归两个阶段:在递推阶段,把较复杂的问题的求解分解成比原问题简单一些的问题的求解。
2024-01-30 00:34:35
1328
2
原创 软考复习之多媒体篇
未压缩的数据传输率 = 采样频率(Hz)* 量化位数(位)* 声道数声音信号数据量 = 数据传输率 * 持续时间 / 8未压缩的文件的字节数 = 采样频率(Hz)* 采样时间(s)*量化位数(位)* 声道数 / 8存储量 = 水平像素 * 垂直像素 * 颜色位数 / 8注意:若题目给出X位或X位色,则颜色位数就是X,若题目给出为X色,那么颜色的位数为未压缩的文件的字节数 = 每帧图像的容量(B) * 图像帧数 * 时间(s)
2024-01-24 16:08:17
426
原创 软考复习之UML设计篇
构件图:描述系统的物理结构,它可以用来显示程序代码如何分解成模块部署图:描述系统中硬件和软件的物理结构,它描述构成系统架构的软件构件,处理器和设备用例图:描述系统与外部系统及用户的交互协作图:强调收发信息的结构组织序列图:描述了在一个用例操作的执行过程中以时间顺序组织的对象之间的交互活动,关注系统的动态视图对象图:展现了一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。
2024-01-24 16:00:44
586
原创 软考复习之软件工程篇
问题定义:要示系统分析员与用户进行交流,弄清”用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认可行性研究:一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性研究需求分析:确定软件系统的功能需求和非功能需求;分析软件系统的数据要求;导出系统的逻辑模型;修正项目开发计划;如有必要可以开发一个原型系统开发阶段:设计->实现->测试。
2024-01-24 15:46:55
1066
原创 计算机网络面经汇总
网络分层OSI 七层模型① 应用层(数据包)应用层位于 OSI 参考模型的第七层,其作用是通过应用程序间的交互来完成特定的网络应用。该层协议定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。例如域名系统 DNS,支持万维网应用的 HTTP 协议,电子邮件系统采用的 SMTP 协议等。在应用层交互的数据单元我们称之为报文。② 表示层(数据包)表示层的 作用是使通信的应用程序能够解释交换数据的含义,其位于 OSI 参考模型的第六层,向上为应用层提供服务,向下接收来自会话层的服
2021-04-08 06:25:57
1720
原创 Rabbitmq面经题汇总
MQ术语Broker: 消息队列服务器实体Exchange: 消息交换机,它指定消息按什么规则,路由到哪个队列Queue: 消息队列载体,每个消息都会被投入到一个或多个队列Binding: 绑定,它的作用就是把exchange和queue按照路由规则绑定起来Routing Key: 路由关键字,exchange根据这个关键字进行消息投递VHost: vhost 可以理解为虚拟 broker ,即 mini-RabbitMQ server。其内部均含有独立的 queue、exchange 和bin
2021-04-07 21:54:01
683
原创 SSM框架面经汇总
Spring篇Spring框架中用到了哪些设计模式单例模式:Bean默认为单例模式。工厂模式:BeanFactory是一个简单工厂模式,用来创建对象实例。代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB动态代理。模板方法模式:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。观察者模式:当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被自动更新。例如ApplicationListener。Spring I
2021-04-07 18:19:10
635
原创 Java8新特性之函数式接口
函数式接口函数式接口是具有一个抽象方法的接口。不能使用以下类型的方法来声明一个函数式接口:默认方法静态方法从Object类继承的方法一个函数式接口可以重新声明Object类中的方法。该方法不被视为抽象方法。Comparator接口有两个抽象方法:compare()和equals()。equals()方法是Object类中的equals()方法的重新声明。@FunctionalInterfaceinterface Comparator<T>{ int compare(T
2021-04-07 12:35:38
311
1
原创 Redis学习指南
简介Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是一个高性能的key-value数据库,遵守 BSD 协议。特性:支持数据持久化,可以将内存中的数据保存在磁盘支持master-slave模式的数据备份支持复杂数据类型并且提供对他们的原子性操作。例如 list,set,zset,hash等安装window下载地址:https://github.com/dmajkic/red
2021-04-07 12:31:59
192
原创 数据结构之广度优先搜索
广度优先搜索呈现出一层一层向外扩张的特点,先看到的结点先遍历,后看到的结点后遍历,因此广度优先搜索可以借助**队列**实现。当遍历到一个结点时,若这个结点有左(右)孩子结点,依次入队即可。结合队列实现思路如下图所示:BFS模板代码int BFS(Node root, Node target){ Queue<Node> queue = new ArrayDeque<>(); int step = 0; //添加根节点到队列 queue.add(ro
2021-04-06 03:46:35
602
原创 数据结构之跳表
跳跃表跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质是一种可以进行二分查找的有序链表。跳表在原有的有序链表上增加了多级索引,通过索引来实现快速查询。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。跳表思路分析如上图所示,原始链表的节点分别是1、3、4、5、7、8、9、10、13、16、17、18。现在有个需求,想快速的找到节点10,最直接的方式就是依次遍历节点1、3、4、5、7、8、9、10。为了提高链表的查找效率,我们可以从链表每2个节点提出一个节点,做为索引节点,通
2021-04-05 05:48:58
728
原创 数据结构之前缀树
前缀树前缀树 是 N叉树 的一种特殊形式。通常来说,一个前缀树是用来存储字符串的。前缀树的每一个节点代表一个字符串(前缀)。每一个节点会有多个子节点,通往不同子节点的路径上有着不同的字符。子节点代表的字符串是由节点本身的原始字符串 ,以及通往该子节点路径上所有的字符组成的。下面是前缀树的一个例子:树节点:// 节点类static class TrieNode { // 单词标记 private boolean isWord; // 字符表 private Map&l
2021-04-05 05:44:25
321
2
原创 Redis面经汇总
Redis是什么redis是一个基于内存的高性能的 key-value 数据库。Redis与Memcached的区别memcached所有的值都是简单的字符串,redis支持更多的数据结构(string,list,hash,sorted set,set)redis的速度比memcached快redis可以持久化其数据(AOF,RDB)为什么要用Redis高性能操作缓存就是直接操作内存,所以速度相当快。高并发直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据
2021-04-05 04:13:26
6200
9
原创 Java8新特性之Lambda表达式
Lambda 表达示语法规则:(param) -> expression或(param) -> { //statements; }特性:可选类型声明:无需声明参数类型。可选的参数圆括号:一个参数时无需定义圆括号,多个参数时则需要定义。可选的大括号:方法体中只包含一条语句时无需大括号。可选的返回关键字:若方法体中只有一个表达式返回值,则编译器会自动返回值,大括号需要指明表达式返回的一个值。//空参()->"hello java8";()->{r
2021-04-04 23:14:15
338
1
原创 数据结构之堆
二叉堆堆是一种特别的二叉树,满足以下条件的二叉树,可以称之为堆:完全二叉树;每一个节点的值都必须 大于等于或者小于等于 其孩子节点的值。堆具有以下的特点:可以在 O(logN) 的时间复杂度内向堆中插入元素;可以在 O(logN) 的时间复杂度内向堆中删除元素;可以在 O(1)的时间复杂度内获取堆中的最大值或最小值。堆的分类堆有两种类型:最大堆和最小堆。最大堆:堆中每一个节点的值都大于等于其孩子节点的值。所以最大堆的特性是 堆顶元素(根节点)是堆中的最大值。最小堆:堆中每一个
2021-04-03 03:21:02
465
原创 MySQL面经汇总
MySQL面试汇总MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。MySQL存储引擎mysql常用引擎包括:innodb、myisam、memory、merg
2021-04-03 03:09:15
4049
5
原创 Linux命令之netstat、lsof、kill
Linux查看端口占用netstatnetstat -tunlp 用于显示 tcp、udp 的端口和进程等相关情况。语法:netstat -tunlp | grep 端口号参数说明:-t (tcp) 仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化为数字-l 仅列出在Listen(监听)的服务状态-p 显示建立相关链接的程序名更多命令:netstat -ntlp //查看当前所有tcp端口netstat -ntulp | g
2021-04-01 13:23:43
357
原创 JVM面经汇总
JVM面经汇总java虚拟机在执行java程序的过程中,会把它管理的内存划分成若干个不同的数据区域。JVM的主要组成部分及作用JVM包含两个子系统和两个组件,两个子系统为ClassLoader类装载、Execution Engine执行引擎。两个组件为Runtime Data Area运行时数据区、Native Interface本地接口。JVM运行时数据区JVM在执行java程序时会将它所管理的内存划分为若干个不同的数据区域。程序计数器程序计数器是一块较小的内存空间,可以看作当前线程所
2021-04-01 01:16:04
1149
4
原创 Java多线程与并发面经汇总
并发编程总结学习时间:2021-3-21、2021-3-23、2021-3-24、2021-3-28、2021-3-29、2021-3-30并发编程的优缺点优点:并发编程的目的就是为了能提高程序的执行效率,提高程序运行速度,缺点:并发编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,比如**:内存泄漏、上下文切换、线程安全、死锁**等问题。并发编程三要素是什么?在Java中怎么保证多线程的运行安全?并发编程的三要素:原子性:是指一个或多个操作要么全部执行成功要么
2021-03-30 23:28:14
333
1
原创 2021年前端学习路线
2020年前端学习路线 1、前端基础核心知识1.1 HTMLW3C HTML文档1.2 CSS&CSS3W3C CSS 文档W3C CSS3 文档Flex 布局教程:语法篇Flex 布局教程:实例篇各种鼠标效果样式深入理解CSS新特性1.3 移动端布局移动端基本概念viewport窗口设置移动端布局方案rem、vh、vw等单位响应式布局黑马HTML5+CSS3+移动端布局全套教程:https://www.b......
2021-03-26 12:52:19
179
原创 SpringBoot DELETE请求时遇405报错问题(已解决)
在学习 SpringBoot 实现 RESTful 的删除操作时,需要将表单数据以 DELETE 方式提交,代码如下图所示:在这里,我使用了JQuery的方式动态的将表单进行提交,下面是JQuery的代码,如下所示:在实践过程中,点击 删除 按钮,跳转到 SpringBoot 默认的错误页面,如下图所示:出现问题原因在于,springboot-autoconfigure包下的 additional-spring-configuration-metadata.json文件中 1441行处,默认情
2020-09-19 11:05:33
3102
3
原创 2020年前端学习路线
1、前端基础核心知识1.1 HTMLW3C HTML文档1.2 CSS&CSS3W3C CSS 文档W3C CSS3 文档Flex 布局教程:语法篇Flex 布局教程:实例篇各种鼠标效果样式深入理解CSS新特性1.3 移动端布局移动端基本概念viewport窗口设置移动端布局方案rem、vh、vw等单位响应式布局黑马HTML5+C...
2020-08-13 23:47:00
26
1
原创 Eclipse+ADT+Android SDK搭建安卓开发环境
第一步:打开【Android.rar】压缩包,如图所示第二步:配置环境变量(1)解压【android-sdk_r24.4.1-windows.zip】压缩包(2)右击桌面【此电脑->属性->高级系统设置->环境变量->】(3)点击确定(4)打开【cmd.exe】命令窗口(5)环境变量配置成功第三步:在线安装ADT插件(1)启动Ec...
2020-02-26 10:49:00
33
原创 数据结构入门篇
数据结构 数据结构包括:线性结构和非线性结构 线性结构线性结构作为最常用的数据结构,其特点就是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,一种是顺序存储,另一种是链式存储。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相信元素的地址信息线性结构常见的有数组、队列、链表...
2020-01-27 13:14:00
25
原创 软考复习之多媒体篇
常用的计算公式数据传输率(单位:b/s)未压缩的数据传输率 = 采样频率(Hz)* 量化位数(位)* 声道数波形声音经过数字化后的信息数据量(单位:字节)声音信号数据量 = 数据传输率 * 持续时间 / 8音频容量的计算公式(单位:字节)未压缩的文件的字节数 = 采样频率(Hz)* 采样时间(s)*量化位数(位)* 声道数 / 8图片容量的计算公式(单位...
2020-01-24 20:02:00
27
原创 软考复习之软件工程篇
软件生命周期问题定义:要示系统分析员与用户进行交流,弄清”用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认可行性研究:一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性研究需求分析:确定软件系统的功能需求和非功能需求;分析软件系统的数据要求;导出系统的逻辑模型;修正项目开发计划;如有必要可以开发一个原型系统...
2020-01-22 11:10:00
23
原创 软考复习之UML设计篇
UML统一建模语言构件图:描述系统的物理结构,它可以用来显示程序代码如何分解成模块部署图:描述系统中硬件和软件的物理结构,它描述构成系统架构的软件构件,处理器和设备用例图:描述系统与外部系统及用户的交互协作图:强调收发信息的结构组织序列图:描述了在一个用例操作的执行过程中以时间顺序组织的对象之间的交互活动,关注系统的动态视图对象图:展现了一组对象以及它们之间的关系,描述了在类图中所建...
2020-01-21 21:56:00
41
原创 C++基础笔记
C与C++的不同点C++在struct,union中定义的函数叫成员函数,在class中定义的数据叫数据成员C++引入了三个存取权限的关键字:public,protected,privatepublic:表示数据成员或成员函数是公有的 protected:表示数据是受保护的。不允许其他的程序对其进行直接存取,只能通过他所在的成员函数进行存取 private:表示数据是私有的。与prot...
2020-01-18 18:22:00
24
原创 软考复习之数据结构篇
算法设计迭代法:用于求方程的近似根。1、若方程无解,则算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考查方程是否有解,并在程序中对迭代的次数给予限制。2、方程虽有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败。穷举搜索法:对可能是解的众多候选解按某种顺序进行逐一枚举和检查,并从中找出符合要求的候选解作为问题的解递推法:利用问题本身...
2020-01-16 19:24:00
16
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人