基础知识
基础知识
AquilaEAG
时间并不会改变什么,行动才会
展开
-
良好的编程习惯有哪些?
1.代码低耦合低耦合性是结构良好程序的特性,低耦合性程序的可读性、可维护性、可重用性和扩展性会比较好,而紧耦合模块或者系统之间关系太紧密,存在相互调用,如果修改其中一个对象,那么另一个对象也需要修改。当两个对象过于紧耦合时,修改代码可能会是一场噩梦,同时更有可能在每次修改时引入bug。2.避免上帝对象上帝对象是指包含太多变量和函数的大型类或模块。“知道得太多”和“做得太多”都会造成一些问题,原因有以下两点:其他类或模块会变得过分依赖于数据(紧密耦合)。由于所有代码都挤在同一个地方,使得整体结构转载 2021-04-19 19:41:09 · 2324 阅读 · 0 评论 -
Cookie的MaxAge属性
示例: // save session to badger sid := strings.Replace(uuid.New().String(), "-", "", -1) if err = cache.Setx(sessionKey(sid), string(buf), ttl); err != nil { log.Errorf("In SaveSession cache.Setx() fail,sid: %v,%v", sid, err) return err } session.Si原创 2021-04-13 20:55:07 · 7999 阅读 · 0 评论 -
TCP 拥塞控制算法
转自:https://mp.weixin.qq.com/s/NIFandX8w-Cynnbl-f2LwgTCP拥塞控制算法TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的原则是,只要网络中没有出现拥塞,拥塞窗口的值就可以再增大一些,以便把更多的数据包发送出去,但只要网络出现拥塞,拥塞窗口的值就应该减小一些,以减少注入到网络中的数据包数。拥塞控制算法的核心是选择一个有效的策略来控制拥塞窗口的变化。TCP 拥塞控制算法发展的过程中出现了如下几种不同的思路:基于丢包的拥塞控制:将丢包视为出现拥转载 2021-04-10 16:39:39 · 2256 阅读 · 2 评论 -
为什么Go语言把类型声明放在后面
为什么Go语言把类型声明放在后面?转载 2021-04-09 16:03:17 · 114 阅读 · 0 评论 -
虚拟硬盘 and 局部性原理
1.虚拟硬盘是什么?虚拟硬盘是利用软件在内存中虚拟出一个或者多个磁盘的技术。2.虚拟硬盘的用处?和虚拟内存一样,内存的速度要比硬盘快得多,利用这一点,在内存中虚拟出一个或多个硬盘就可以加快磁盘的数据交换速度,这样就可以加快磁盘的数据交换速度,提高电脑的运行速度,同时也充分利用上了多余的内存。3.如何实现?Dataram RAMDiskDataram RAMDisk是一款内存虚拟硬盘软件。由于虚拟出来的硬盘速度非常高,用户可以用它来存放系统临时文件与浏览器产生的临时文件,该软件主要功能是可原创 2021-04-08 16:47:57 · 336 阅读 · 0 评论 -
GDB调试命令
GDB调试命令转载 2021-04-04 20:19:12 · 61 阅读 · 0 评论 -
零拷贝技术
零拷贝技术详解转载 2021-04-04 17:11:06 · 62 阅读 · 0 评论 -
什么是大端小端 and 如何判断大端小端
1. 什么是大小端?大端存储是指低字节存储在高地址;小端存储是指低字节存储在低地址。2. 内存大小端跟网络大小端的区别?网络字节序:TCP/IP协议规定了在网络上必须采用网络字节顺序,先收到的字节为高位,最后收到的字节为低位,也就是大端模式。由于数据传输的两端对应不同的硬件平台,采用的存储字节顺序可能不一致。char型只占1字节,无所谓大端和小端。而对于非char型,必须在数据发送到网络上之前将其转换成大端模式。基于x86 CPU的计算机使用是小端模式。大部分操作系统(windows、linu原创 2021-04-04 16:56:49 · 3574 阅读 · 0 评论 -
锁的实现原理 and 处理器如何实现原子操作
处理器如何实现原子操作转载 2021-04-04 15:35:56 · 80 阅读 · 0 评论 -
无序数组找中位数
1.无序数组找中位数思路一把无序数组排好序,取出中间的元素时间复杂度 采用普通的比较排序法 O(N*logN)如果采用非比较的计数排序等方法, 时间复杂度 O(N), 空间复杂度也是O(N).思路二(1)将前(n+1)/2个元素调整为一个小顶堆(2)对后续的每一个元素,和堆顶比较,如果小于等于堆顶,丢弃之,取下一个元素。 如果大于堆顶,用该元素取代堆顶,调整堆,取下一元素。重复2.2步(3)当遍历完所有元素之后,堆顶即是中位数。注:如果数组元素的个数是奇数,取数组前(size+1)原创 2021-04-04 10:34:38 · 5974 阅读 · 0 评论 -
快速排序 最坏时间复杂度
1.快速排序void quick_sort(vector<>int &q, int left, int right){ if(left > right) //截止条件:左右游标相遇 return; int i = left - 1; //-1,+1是为了后面while内保证两边端点元素加入判断 int j = right + 1; int x = q[(left + right)/2]; //将数据分成两部分:第一部分小于基数,第二部分大于基数 wh原创 2021-04-04 09:34:51 · 10258 阅读 · 0 评论 -
数据库基础
数据库基础知识转载 2021-03-26 21:09:40 · 67 阅读 · 0 评论 -
408-数据结构
数据结构面试题汇总数据结构与算法基础知识转载 2021-03-26 20:59:05 · 132 阅读 · 0 评论 -
408-计算机网络
计算机网络面试题汇总计算机网络基础知识总结转载 2021-03-26 20:42:57 · 102 阅读 · 0 评论 -
408-计算机组成原理
计算机组成原理转载 2021-03-26 20:37:45 · 179 阅读 · 0 评论 -
408-操作系统
操作系统常见面试题汇总1.基本概念死锁是指多个进程竞争同一个资源而造成的一种僵局(互相等待),如果没有外力作用,这种局面无法打破。死锁的必要条件1.互斥条件。在某一段时间内一个资源只能被一个进程占用。2.不剥夺条件:进程获得的资源在没有被使用完之前,不会主动释放3.请求和保持:进程已经保持了几个资源,又提出新的资源请求,被拒绝,也继续持有现有的资源。(破坏的话就静态资源分配,一次申请完所有)4.循环等待:存在一个进程资源的循环等待链。(破坏的话就顺序资源分配)死锁的处理1.死锁预防:破坏原创 2021-03-26 19:32:23 · 195 阅读 · 0 评论 -
一台Linux服务器最多能支撑多少个TCP连接?
一台Linux服务器最多能支撑多少个TCP连接?转载 2021-03-26 01:53:08 · 148 阅读 · 0 评论 -
HTML页面加载和解析流程
HTML页面加载和解析流程用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件。浏览器开始载入html代码,发现标签内有一个标签引用外部CSS文件。浏览器又发出CSS文件的请求,服务器返回这个CSS文件。浏览器继续载入html中部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。浏览器在代码中发现一个标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码。服务器返回图片文件,由于原创 2020-09-23 15:31:41 · 245 阅读 · 0 评论 -
数据库
1 、关系型和非关系型数据库的区别(各自优点)2 、常用 SQL 语句( DDL , DML , DCL , TCL )3 、数据库中 join 的类型与区别( innerjoin , outerjoin , crossjoin , naturatjoin , selfjoin )4 、数据库的索引类型5 、聚集索引和非聚集索引的区别(叶节点存储内容)6 、唯一性索引和主码索引的区别7 、索引的优缺点,什么时候使用索引,什么时候不能使用索引(重点)8 、索引的底层实现(日+树,为何不采用红黑树原创 2020-07-22 00:00:42 · 101 阅读 · 0 评论 -
linux
1 、 Unux 的 l / 0 模型介绍以及同步异步阻塞非阻塞的区别(超级重要)2 、文件系统的理解( EXT4 , XFS , BTRFS )3 、文件处理 9 rep , awk , sed 这三个命令必知必会4 、 10 复用的三种方法( setect , polt , epoll )深入理解,包括三者区别,内部原理实现?5 、 EpoLI 的 ET 模式和 LT 模式( ET 的非阻塞 )6 、查询进程占用 CpU 的命令7 、 11 nux 的其他常见命令( kitt , find原创 2020-07-22 00:01:43 · 228 阅读 · 0 评论 -
操作系统
1 、进程与线程的区别和联系2 、一个进程可以创建多少线程,和什么有关3 、一个程序从开始运行到结束的完整过程4 、进程通信方法( Linux 和 windows 下) , 线程通信方法( Li n ux 和 wi ndowsT )5 、进程调度方法详细介绍 6 、页面置换方法详细介绍7 、能否实现一个 LRU 算法8 、死锁的必要条件(怎么检测死锁,解决死锁问题)9 、哲学家就餐,银行家,读者写者,生产者消费者(怎么加锁解锁,伪代码)10 、海量数据的 bitmap 使用原理11 、布隆原创 2020-07-22 00:02:19 · 218 阅读 · 0 评论 -
设计模式
1.工厂模式意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。关键代码:创建过程在其子类执行。抽象工厂模式在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。关键代码:在一个工厂里聚合多个同类产品。2.单例模式意图:保证一个类仅有一个原创 2020-09-03 18:00:19 · 89 阅读 · 2 评论 -
设计模式与算法
1 、介绍熟悉的设计模式(单例,简单工厂模式)2 、写单例模式(饿汉模式和懒汉模式),线程安全版本3 、 MVC 设计模式4 、红黑树的了解(平衡树,二叉搜索树)5 、红黑树在 STL 上的应用6 、贪心算法和动态规划的区别7 、判断一个链表是否有环,如何找到这个环的起点8 、实现一个循环队列9 、排序算法(写快排,归并排序,堆排序),算法的时间复杂度,空间复杂度,是否稳定等10 、快排存在的问题,如何优化11 、 TopK 问题(可以采取的方法有哪些,各自优点? )12 、 Bitm原创 2020-07-22 00:02:52 · 506 阅读 · 0 评论 -
HTTP状态码
• 200:请求被正常处理• 204:请求被受理但没有资源可以返回• 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。• 301:永久性重定向• 302:临时重定向• 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上• 304:发送附带条件的请求时,条件不满足时返回,与重定向无关• 307:临时重定向,与302类似,只是强制要求使用POST方法•原创 2020-12-24 00:21:12 · 66 阅读 · 0 评论 -
计算机网络
1 、建立 TCp 服务器的各个系统调用2 、继上一题,说明 50cket 网络编程有哪些系统调用?其中 dose 是一次就能直接关闭的吗,半关闭状态是怎么产生的?3 、对路由协议的了解与介绍。内部网关协议 IGp 包括 RIP , OSpF ,和外部网关协议 EGP 和 BGP 。4 、路由协议所使用的算法5 、 TCP 和 U DP 的区别6 、 TCp 和 U Op 相关的协议与端口号7 、 TCP ( U DP , IP )等首部的认识( http 请求报文构成)8 、网页解析的过程与原创 2020-07-22 00:00:16 · 1065 阅读 · 0 评论