![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题集合
文章平均质量分 88
Charles Ray
现就职于某半导体公司。Software Programmer
展开
-
操作系统常见面试题
文章目录参考资料进程和线程的区别协程与线程的区别进程与线程的切换流程为什么虚拟地址空间切换会比较耗时进程间通信方式线程(进程)间同步方式线程的分类参考资料https://github.com/cosen1024/Java-Interview/blob/main/操作系统/操作系统.md进程和线程的区别基本意义:进程:操作系统分配资源(内存空间等)的基本单位,系统中正在运行的一个应用程序,程序一旦运行就是进程。线程:是进程的一条执行路径(因为不管怎么样都会有一条路径来执行也就是主线程)多线程就是有多条原创 2022-01-17 22:33:57 · 6981 阅读 · 0 评论 -
C语言常见面试题汇总
1、描述⼀下gcc的编译过程?gcc编译过程分为4个阶段:预处理、编译、汇编、链接。预处理:头⽂件包含、宏替换、条件编译、删除注释编译:主要进⾏词法、语法、语义分析等,检查⽆误后将预处理好的⽂件编译成汇编⽂件。汇编:将汇编⽂件转换成 ⼆进制⽬标⽂件链接:将项⽬中的各个⼆进制⽂件+所需的库+启动代码链接成可执⾏⽂件...原创 2022-01-17 22:31:29 · 51935 阅读 · 4 评论 -
什么是socket套接字
文章目录socket概念形式类型服务端和接收端使用socket流程服务端:客户端:socket概念负责不同网络上进程通信的接口,那么我们可以使用socket让不同主机上的进程可以通过套接字发送报文来进行通信。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,调用几个简单的接口就可以实现进程在网络中通信。形式<ip地址+协议+端口号>唯一标示网络中的一个进程。例如 TCP 用主机的 IP 地址 + 端口号作为 TCP 连原创 2022-01-17 09:47:22 · 255 阅读 · 0 评论 -
数据结构与算法 —— O(nlogn)堆排序(c++)
文章目录含义前置知识思路复杂度代码参考文档含义大顶堆:二叉树,每个根节点值都大于等于其左右孩子的节点值,这样根节点就是最大值小顶堆:每个根节点值都小于等于左右孩子节点值,根节点为最小值前置知识我们对堆中的结点按层进行编号从左到右,对应的数组就是一个大顶堆数组。由于是完全二叉树,所以有下面结论父结点索引:(i-1)/2左孩子索引:2*i+1右孩子索引:2*i+2思路堆排序的过程可以具体分为三步,创建堆:首先将待排序的数组构造成一个大根堆,此时整个数组的最大值就是堆结构的顶端。调原创 2021-03-19 17:35:32 · 266 阅读 · 0 评论 -
数据结构与算法 —— O(nlogn)排序算法(快排和归并)(c++)
文章目录希尔排序快速排序(分治+挖坑法)测试用例希尔排序https://blog.csdn.net/u012918361/article/details/68921601希尔排序作为第一批突破O(n^2)的算法之一,在数据中等规模时候性能很好,大规模时候没有快排好时间复杂度O(nlogn)不好证明基本思路:插入排序的改进,就是不断分组,每组进行插入排序注意传入引用,不然按值传递速度很慢...原创 2020-04-26 23:08:53 · 1295 阅读 · 0 评论 -
C++学习笔记 —— 智能指针
文章目录用的比较多的几个C++11的新特性模板(非c++11)智能指针悬空指针与野指针区别智能指针shared_ptrunique_ptr循环引用问题解决方法:weak_ptr循环引用举例自己实现一个智能指针用的比较多的几个C++11的新特性智能指针lambda表达式auto类型推导范围for循环override 和 final 关键字模板(非c++11)c++ 模板他是泛型编程的基础。模板是创建泛型类或函数的蓝图或公式。模板或者泛型优点:它与某种特定类型无关,因此代码可重复使用它原创 2021-04-21 17:29:34 · 191 阅读 · 0 评论 -
操作系统 —— (并发)进程与线程
文章目录多线程进程和线程的区别什么是线程切换单核CPU设定多个线程是否有意义线程数是不是越大越好工作线程数设多少个合适线程调度算法协程(纤程)fiber并发产生的问题原子性锁(互斥量)线程同步方法死锁多线程进程和线程的区别根本意义:进程:操作系统**分配资源(内存空间等)的基本单位,系统中正在运行的一个应用程序,程序一旦运行就是进程。线程:是进程的一条执行路径(因为不管怎么样都会有一条路径来执行也就是主线程)多线程就是有多条路径执行该进程,操作系统CPU独立调度执行的基本单位。**的基本单位。包含原创 2021-03-17 00:06:24 · 355 阅读 · 0 评论 -
计算机网络基础知识—— 传输层(TCP&UDP)
传输层TCP头部控制字段TCP和UDP的区别https://blog.csdn.net/weixin_43837354/article/details/104725979TCP优点:TCP是字节流协议:也就是一次传10个G,不管发送方一次性给TCP多少数据, TCP都会根据实际情况进行合理拆分和组装, 分割成多个数据包, 然后有序稳定的传递给接收方。UDP是面向报文的传出机制(即数据报模式), 在传输过程中对数据既不合并, 也不拆分. 通俗来说就是, UDP在接受到数据缓冲后, 数据大了不会对原创 2021-03-19 17:10:40 · 526 阅读 · 0 评论 -
计算机网络基础知识—— 各层功能及网络层
文章目录5层模型TCP/UDP传输层CLOSE-WAIT 和 TIME-WAIT 的状态和意义TCP功能:全双工传输数据tcp头部控制字段tcp和udp的区别TCP优点:UDP优点:TCP为何需要握手?为何三次为什么需要握手为何三次握手?为何断开连接需要四次挥手TCP如何保证数据顺序和可靠性网络延迟计算多播单台服务器最大支持多少连接数怎样实现高并发计算机安全摘要算法:Linux网络指令什么是负载均衡Ngix网络安全网络层ip协议作用为什么又了IP地址还需要mac地址ip地址有什么用,为何不直接使用mac地址原创 2021-02-25 23:46:29 · 3620 阅读 · 0 评论 -
计算机网络基础知识—— 应用层
文章目录什么是httphttp请求和响应的格式http常用请求头字段http长连接短连接http无状态协议如何保存客户信息http1.0 ,1.1 ,2 ,3 的区别1.1比1.0增加http 2.0(重点使用了LTE通信技术)http3.0Quic协议http缓存控制策略什么是缓存http中的缓存http和https有什么区别https是如何保证安全性的(TLS/SSL协议)对称加密和非对称加密对称加密为何不安全ssl四次握手(加密过程)什么是HTTPS中间人攻击什么是DNSDNS劫持什么是CDNURLU原创 2021-02-24 21:39:33 · 428 阅读 · 0 评论 -
Mysql 数据库—— 事务+MVCC
文章目录事务事务四大特性ACID:并发事务带来的问题:隔离级别:锁机制实现隔离级别控制锁MVCC使用MVCC实现隔离级别控制事务https://blog.csdn.net/w_linux/article/details/79666086https://juejin.cn/post/6844904193078280199定义:在执行SQL语句的时候,某些业务要求,一系列操作必须全部执行,而不能仅执行一部分,他是一个最小的不可再分的业务单元。我们把多条语句作为一个整体,我们称为一个事务。一个事务对应原创 2021-04-20 23:34:51 · 301 阅读 · 0 评论 -
Mysql 数据库 —— MySQL日志系统
文章目录日志系统作用redo log作用实现binlog二进制日志redolog 和binlog区别undo log回滚日志日志系统作用MySQL日志系统是数据库的重要组件,用于记录数据库的更新和修改若数据库发生故障,可通过不同日志记录恢复数据库的原来数据MySQL的日志有很多种,如二进制日志(binlog)、错误日志、查询日志、慢查询日志等下面我主要介绍三个主要的。https://www.cxyxiaowu.com/10740.htmlhttps://www.jianshu.com/p/原创 2021-04-20 20:46:07 · 674 阅读 · 0 评论 -
Mysql 数据库—— 主从复制、分库分表
文章目录mysql主从复制数据库的几种模式主从复制原理主从复制作用(优点)读写分离定义实现1. 基于程序代码实现2. 使用中间代理层实现分库分表分库为什么分库垂直拆分水平拆分(分库分表)分表垂直拆分水平拆分水平拆分分库分表策略分库分表引入的问题mysql主从复制数据库的几种模式单点,一个数据库:风险高主备:一个主数据库,多个备用数据库平时不用。主数据库还是负责交互,而备份数据库只有当主数据库挂掉了才顶上。主从:一个主节点,多个从节点。就是从原来的数据库复制一个完全一样的数据库,原来的数据库称作主原创 2021-04-20 16:22:11 · 1068 阅读 · 0 评论 -
Mysql数据库 —— 存储引擎区别
文章目录innodb相对于myisam区别1. 索引2. 事物3. 表级锁和行级锁4. 存储结构5. 外键6. 全文索引7.使用场景innodb相对于myisam区别innodb和myisam都是形容数据库表的引擎。1. 索引InnoDB(索引组织表)主键索引是聚集索引。MyISAM(使用的是非聚簇(稀疏)索引、随机存储,只能缓存索引,压缩索引需要空间小,查询速度快,读多写少场景2. 事物innodb支持事物,这是选择innodb很大的一个原因,因为一旦数据插入错误就回滚MyISAM不原创 2021-04-19 23:53:39 · 170 阅读 · 0 评论 -
Mysql数据库 —— 索引
面试点索引调优mvcc存储引擎事物主从复制读写分离分库分表锁日志系统索引红黑树和AVL树二叉平衡树:二叉搜索树的一种,追求绝对平衡也就是任何一个左子树和右子树高度小于1红黑树:二叉平衡树的一种,他不追求高度小于1什么是索引排好序的数据结构(Btree)。每个节点(磁盘块)可以存16K数据,mysql索引一般3到4层就足以支撑千万级别的表查询。所以创建索引的字段段一些好,这样每个节点就存储更多指针。B树和B+树的区别相同点:多叉平衡树,每个节点(磁盘块)存储多个数据,原创 2021-03-17 11:25:11 · 162 阅读 · 0 评论 -
操作系统 —— (进程)进程管理与中断
文章目录操作系统概述多道程序时代宏内核和微内核进程调度(cpu虚拟化)4. 进程5. 进程API6. 受控权限用户模式和内核模式时钟中断保存和恢复上下文进程调度策略进程优先级(类似于lte的mac层调度)进程间通信方式进程的五个状态linux进程类型进程实体:程序分配内存的基本单位进程调度算法进程同步进程与线程进程间的通信的几种方式内存虚拟化2. 虚拟内存定义内存分配API为何我们没有释放内存,一般进程退出时不会内存泄漏虚拟(逻辑)地址转换成物理地址16.分段18.分页21.交换空间22.页交换策略内存管理原创 2021-03-16 17:48:49 · 1099 阅读 · 0 评论 -
设计模式 —— 设计模式六大原则
https://refactoringguru.cn/design-patterns/adapter设计模式定义软件开发,在特定环境中,经过验证的,重复出现的解决方案。核心:扩展隔离变化点,抽象稳定点。举例:我们应该限制变化点的范围。比如开发过程中,某一块代码我们在项目中多处使用,那么我们修改这个代码,就会牵动很多地方,所以我们需要限制变化的范围。为什么使用设计模式通用语言,方便其他人识别和扩展从已有的有效的设计模式中,方便软件设计设计模式6大原则设计模式是根据设计原则推导出来的。1原创 2021-04-08 23:57:23 · 180 阅读 · 0 评论 -
操作系统 —— (并发)基于事件的并发
数据库,IO,分布式,IO多路复用https://www.zhihu.com/question/32163005https://www.cnblogs.com/Anker/p/3265058.htmlhttps://www.jianshu.com/p/397449cadc9a多路连接服用一个线程。多路复用指:使用一个线程,在一个线程上可以有多路并发传输。使得系统在单线程的情况下。单线程通过记录每个IO流的状态来管理多个IO流信息,可以同时处理多个客户端请求,可以很大的提高吞吐能力。多路是指多个I原创 2021-04-06 17:50:19 · 530 阅读 · 0 评论 -
分布式系统(zoopkeeper动物园守护者+dubbo))面试题
https://blog.csdn.net/wuzhiwei549/article/details/80692278分布式系统分布式其实就是分散而已,不等于并行。比如把一个程序,有多步,每一小步在一个系统上执行,然后组合成一个大的系统。更多的时候和并行之间相互配合,提高效率。优点:增加可靠性,我们将一个大的服务分散成小的服务,降低增加可扩展性。分布式锁为什么要使用:在单机引用的时候,...原创 2019-10-13 11:12:18 · 406 阅读 · 0 评论 -
Redis缓存面试题
redis缓存作用缓存就是内存中存储的数据备份。我们避免直接在数据库中增删该查操作,而去缓存中读取。大大增加了速度。redis特点性能极高:读写速度极高数据类型丰富支持消息队列支持分布式,高可用Redis基本数据类型String 基本类型:可以包含任何数据,比如图片或者序列化的对象。Hash: 类似于Map,特别适合存储对象List:列表 按照插入顺序存储Set:无序集...原创 2022-04-20 16:47:48 · 1357 阅读 · 0 评论