- 博客(25)
- 收藏
- 关注
原创 GO常见高频面试题(GMP、三色标记)
前言这篇文章是过年期间总结的GO语言面试高频知识点,希望给年后跳槽的弟兄姐妹们带来一些帮助,主要内容是:GO基础、重要数据类型实现原理、协程调度、垃圾回收。本文不涉及存储相关面试知识点,关注存储相关知识点的朋友可以收藏关注狗蛋儿一哈,后续不久会有文章更新。大家都是程序员同胞,如果分享的内容能帮到弟兄姐妹们一点,我也是非常高兴的。文章目录前言Channelchannel为nil或关闭时,读写会怎么样?channel 什么时候会阻塞?channel 怎么实现无阻塞?init函数init函数在一个GO文件的
2022-02-21 14:30:54 2275 1
原创 事务原理、快照MVCC原理_倾尽所能说的简单透彻
概述网上有关事务的文章都讲解的很好,可往往并不全面。本人平时对事务做过一些笔记,特意拿来分享给大家。本文大致讲解:Spring事务由谁实现、事务隔离级别及大致原理、事务的传播,甚至还讲解了一些基于MQ如何实现分布式事务。看一看不花几分钟,如有错误亦能共同学习探讨。事务管理器spring并不直接管理事务,而是提供多种事务管理器,spring将事务管理的实现交给了JDBC及其封装框架完成,它只提供给Hibernate、Mybatis等框架接口,具体怎么实现不是spring关心的事。InnoDB实现原理
2020-10-22 12:16:08 531
原创 Java/Kotlin Spring Elasticsearch增删改查教程
Elasticsearch基本概念Elasticsearch有四种构成存储空间的基本结构:Indices、Types、Documents、Fields。将这四种结构和关系型数据库对比,能更好说明它们是什么:Indices看作Database(数据库);Types看作Tables(表);Documents看作Rows(行);Fields看作Columns(列)。选择操作ES的客户端官方提供很多操作ES的客户端,比如:Transport ClientHigh Level REST Cl
2020-06-14 01:26:28 425
原创 epoll详解及坑
epoll是select、poll 的改进版。 使用select、poll的缺点: (1)调用select 时,需要将用户空间的所有fd集合拷贝进内核空间。 (2)调用select 时,需要在内核空间遍历所有fd的状态。 (3)select 支持的fd 数目有限,不超过1024。 关于e...
2018-12-31 22:01:34 5130
原创 n阶乘尾部有多少个零?
思路 错误思路计算出 n! 结果后判断,是不可以行的,结果太大会溢出。正确思路有这样的现象:从0开始,每加5,其阶乘尾部便会增加一个0。比如:5!有一个0,10!有两个0,15!有三个0...现象的原因:5和任意偶数相乘就会产生0,而偶数的个数远比5的个数多,所以每增加5 结尾就会增加一个零。按照这个现象:n! 尾部0的个数 == n/5。可是这样还不完善...
2018-04-14 19:16:37 3546
原创 CAN通信详解
CAN通信详解概念KEL15与KEL30:KEL30是指提供基本功能的供电电压,此供电模式下功能很少:KEL15是指提供多功能的供电电压。其中KEL15又称:IG ON。 终端电阻:由于信号传输会产生回波、反射(驻波)等干扰,终端电阻目的是为了抵消干扰。大约120欧( 线束的阻抗是120欧)。 ECU不等距离分布是为了减少驻波。(什么是驻波...)。 CAN矩阵中有很多报文是每一个节...
2018-04-02 12:34:55 20693 2
原创 数据链路层(CRC校验)
数据链路层的作用是是网络层接受的数据包可以可靠的在物理层的比特信道上传输,主要校验处理传输错误。 数据链路层数据链路除了物理链路以外还包括实现数据传输的协议,这些协议由硬件和软件来完成。适配器(网卡) 就可以实现协议的硬件和软件。 数据链路中传输的单位是帧,帧有首部(SOH)和尾部(ETO)标志着帧定界。该层要解决的3个基本问题是:封装成帧、透明传输、差错检验。 帧的透明传输问题:当帧的数据...
2018-04-02 12:17:01 10536
原创 揭秘Spring Boot内嵌Tomcat原理
tomcat 怎么启动 spring 并初始化上下文?springboot 怎么启动内嵌tomcat?springboot怎么判断启动 tomcat、jetty还是undertow容器?
2023-09-19 15:07:13 1048
原创 Gin 源码初探
HTTP处理Gin是基于的GO的net/http库编写的,这个库本身就是天然并发的。运行函数Engine.run()便是调用net/http库的ListenAndServe函数:func (engine *Engine) Run(addr ...string) (err error) { defer func() { debugPrintError(err) }() address := resolveAddress(addr) debugPrint("Listening and serving
2021-11-09 18:11:49 1007
原创 小米3G刷openwrt详解
场景很多时候需要一个开放性的路由器来做很多DIY,比如:安装openvpn构建内网。刷机流程(整个过程建议有线操作)刷小米3G开发版开启ssh刷openwrt升级oepnwrt刷小米3G开发版因为小米官方认为路由器本身安全稳定,没有权限openwrt的刷入。下载:小米路由器3G 开发版。进入链接,选择ROM就能看到要选择的固件。刷机:进入路由器本地网页,选择系统升级,再...
2019-10-19 22:05:40 7925
原创 找出数组中任一重复的数_C++
目录数组中任一重复的数题目思路代码数组中任一重复的数题目一个长度为n的数组,数组中的值属于0~(n-1)范围内。现已知该数组中一定有重复的数字,请找出任意一个重复的数字。思路如果该数组中没有重复的数字,那么下标和下标对应的值就相等了,即是array[i] == i。利用好这点,寻求解题方法。方法一:(1) 将数组从小到大排序。(2) 遍历判断 array[i] 和 i 之间的关系,...
2019-07-19 18:38:10 232
原创 网络层-外网访问服务器
内网和外网 内网ip实际上是局域网内成员使用的ip地址,比如学校内部即是一个局域网,我们的电脑ipconfig查到的ip即是内网ip,在同一局域网中内网ip是唯一标识,所有内网ip最终通过某网关与互联网(外网)通信。 ipconfig出现的ip地址在有些情况不一定是内网ip比如:拨号上网时。 外网ip是指上述网关的ip地址,在整个互联网...
2019-04-18 22:17:08 4833
原创 快速排序
快速排序题目将乱序数组按从小到大排列。数组中是允许出现重复数字的。思路 (1) 在数组中找个基准值(一般取开头/中间/结尾的数值),以该基准值为界限,将小于基准值的数放在基准值左边,大于基准值的值放在基准值右边。 (2) 基准值左边使用(1)中的方法,递归执行多次后,可以将左边排好。 (3)基准值右边也一样,使用(1)中的方法,递...
2019-01-14 13:08:49 428
原创 链表逆序C++
链表逆序C++题目将给定链表逆序,返回逆序后的链表头。思路创建三个指针,一个执行当前节点,一个指向前节点,一个指向后节点。由于挺简单,直接代码就能看明白。代码#include <stdio.h>class linklist{ public: linklist(int tmp) :value(tmp) ...
2019-01-05 12:37:11 398 1
原创 判断二维数组是否包含某数
判断二维数组是否包含某数 题目已知一个整数型二维数组,行和列的数值都是递增的。现在给定数值'x',判断二维数组是否包含'x'。方法假设二维数组如下图排列,取二维数组右上角数值和'x'比较:(1) 如果比'x'大,则这一列就剔除;(2) 如果比'x'小,则这一行就剔除。 代码#include <vector>#include &...
2019-01-05 12:36:19 1280
原创 非递减旋转数组找最小值_C++
非递减旋转数组找最小值题目给一个非递减数组的旋转数组,求该数组的最小值。了解分析题目之前,先知道什么是非递减数组?什么是旋转数组?非递减数组:数组后面的元素 >= 数组前面的元素。旋转数组:将数组的前几位,移至数组尾部,构成的新数组称之为原数组的旋转数组。思路 对于有顺序的数组首先想到的,是二分法查找。 但二分查找时存在一特殊...
2019-01-05 12:33:27 215
原创 Socket编程详解
了解 开始介绍前,说点经验之谈,希望能有所帮助,在项目开发中肯定涉及到多进程/线程,这时使用网络编程的系统调应十分小心,也就是在程序设计时应注意:子进程除了发心跳,肯定要处理什么event,我们在接受事件(accept)时应该小心“惊群效应”,也就是在父进程listen,子进程accept时,会出现多个子进程同时去accept的现象,但我们只希望一个子进程执行...
2018-12-31 22:01:47 1362 1
原创 C++基础
文章不算短,比较齐全,最好“ctrl+f”来寻找需要的东西。 输入输出流:标准输入输出是istream/ostream。输出:std::cout<<"hello world"<<endl; 输入:std::cin>>v1>>v2; 其中std为命名空间,指出cout和endl是定义在命名空间里的,...
2018-12-10 19:34:08 493
原创 运输层
IP层提供的是主机间的逻辑通信,运输层提供的是进程间的逻辑通信 TCP/IP协议运输层有两个协议:UDP和TCP UDP:UDP是面向无连接的、全双工、尽最大努力交互、支持一对多和多对一的通信方式。有时用UDP会更加有效,比如实时性要求很高时。UDP仅在数据报加上不多的内容:端口和差错校验,所以UDP首部仅占8字节。发送方应用程序给UDP多长的报文,UDP就在这个长度的基础上加上首部发送,UD...
2018-04-02 12:13:02 328
原创 物理层(调制解调)
1. 数据通信系统3大要素:源系统、传输系统、目的系统。2. 数字信号不同离散值的基本波形称为码元。3. 来自信源的信号称为基带信号。4. 传输媒介分为:导引型(双绞线、同轴电缆、光纤)和非导引型(无线、红外、大气激光)。5. 物理层的主要任务描述为确定与传输媒体的接口的一些特性。6. 码元与Bit:码元:码元表示信号电平变化 ,对应的传输速率是波特率,表示每秒钟信号电平变化次数。 ...
2018-04-02 12:06:36 1876
原创 段式、页式内存管理--学习《Linux内核源代码情景分析》第一章
不得不说《Linux内核源代码情景分析》这本书被那么多人当作经典是有原因的,这里只是该书的笔记远不及毛老师描述的清楚。 对第一章做一个总结。这一章主要讲解段式和页式内存管理,当然还有一些其他东西。Linux内核版本号的格式:”x.yy.zz“,其中x号的不同表示内核发生了重大改变。 yy号不同一方面表示内核的不同版本,第二方面表示内核是发行版还是开发版,yy为偶数表示发行...
2017-10-22 15:38:39 457
原创 C语言面试
首先先看这篇博客,不是我自己的但是能有不少帮助,这里部分算抄袭这位大牛的博客:http://blog.csdn.net/jxnu_xiaobing/article/details/12561141定义一个宏,宏能判断出两个数中的最小值。正确答案:#define MIN(A,B) ( (A) <= (B) ? (A) : (B) ) 错误答案:#define MIN...
2017-10-10 08:14:23 446
原创 结构体如何分配内存
基础知识,其实是比较简单的。(本文是以32位机为标准)结构体如何分配内存也是根据cpu获得数据的方式来决定的,因为数据最终是cpu来获得,那么cpu是怎么获得数据的?cpu获得数据方式是一次性获得尽量多的完整的数据。,下面看为了得到 '尽量多' 和 '完整' 数据怎么理解:(1)cpu获得某一结构体数据时每次获得数据长度是一致的,不会是遇见char就读1个字节,遇见int就就读4字节,...
2017-04-09 21:34:05 904
原创 输入子系统_架构流程及详解
较USB和LCD,输入子系统相对要难一些,重在理解。一、输入子系统的结构流程(之后再详细介绍)首先必须知道内核中有很多事件处理器(evdev, keyboard, ts 等等),且每个处理器下的handler会放入list_head这个链表。 input_subsystem总体流程如下:(1) 注册设备register_input_device:该函数会在list_he...
2017-03-29 10:27:52 634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人