
面试复习
文章平均质量分 82
for offer
_ambition_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据库】 面试复习
1.数据库事务**事务:**是数据库并发控制的基本单位,一条或者一组语句要么全部成功,对数据库中的某些数据成功修改; 要么全部不成功,数据库中的数据还原到这些语句执行。四大属性ACID原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行一致性(Consistency:数据库中只包含成功事务提交的结果隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务永久性(原创 2021-03-13 20:13:44 · 787 阅读 · 0 评论 -
【操作系统】面试复习
1. 进程与线程(1)进程有自己的独立地址空间,线程没有(2)进程是资源分配的最小单位,线程是CPU调度的最小单位(3)进程和线程通信方式不同(线程之间的通信比较方便。同一进程下的线程共享数据(比如全局变量,静态变量),通过这些数据来通信不仅快捷而且方便,而进程之间的通信只能通过进程通信的方式进行。)(4)进程上下文切换开销大,线程开销小(5)一个进程挂掉了不会影响其他进程,而线程挂掉了会影响其他线程(6)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别原创 2021-03-08 11:38:37 · 1133 阅读 · 0 评论 -
【C++】 面试复习
1. C++2. 计算机网络3. 操作系统4. 数据库5. 数据结构6. 杂项1. 指针容易出现的错误:①内存泄漏,用指针指向堆内存的时候,没有及时free掉。②使用空指针,C++中NULL = 0,C语言中N ULL = (void *)0,是指向0地址的void *指针。③使用了野指针,指针变量在定义时如果未初始化,或者使用free/delete掉的指针2. 静态变量和全局变量的区别BSS段:用来存放程序中未初始化的全局/静态变量的一块内存区域。属于静态内存分配。数据段:用来存放原创 2021-03-07 20:20:54 · 744 阅读 · 2 评论 -
【数据结构】 面试复习
1. C++2. 计算机网络3. 操作系统4. 数据库5. 数据结构6. 杂项1. 红黑树与AVL树(能保证在最坏情况下,基本的动态几何操作的时间均为O(lgn))1.节点是红色或黑色。2.根节点是黑色。3.每个叶子节点都是黑色的空节点(NIL节点)。4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)5.从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。5->红黑树从根到叶节点的最长路径都不会超过最短路径的两倍红黑树是牺原创 2021-03-01 16:37:21 · 444 阅读 · 0 评论 -
【计算机网络】面试复习
计算机网络1. 子网掩码1、一是用于屏蔽IP地址的一部分以区别网络地址和主机号,并说明该IP地址是在局域网上,还是在远程网上。同一局域网的掩码应该一样2、二是用于将一个大的IP网络划分为若干小的子网络。2. ARP(地址解析协议)每个主机上有个IP到MAC地址的映射表,称ARP表,先看表里有没有IP,有直接查出mac地址,写入mac帧,发送到此mac地址。没有,就用广播帧广播arp请求分组。同一个局域网里所有主机都收到,但是只有相应的ip做出相应。不在同一局域网,的到一个路由器的硬件地址,发给路由原创 2021-03-01 16:32:53 · 1639 阅读 · 0 评论 -
面经-场景题
一、数据流查找数据1. 找中位数1.1 有限数据文件建立一个大根堆,一个小根堆,每次加入数据保证了两个堆数量相等。大根堆保存较小数,小根堆保存较大数。LeetCode数据流中的中位数1.2 超大数据文件100GB数据,查找中位数,内存只有512MB100GB数据按照大小分解成200个小文件(根据内存大小分),这些文件中分别存放数字大小在一定范围中的数字,同时统计每个小文件中元素的个数,这样就能知道中位数在哪个文件中以及中位数在该文件中的第K个数,然后查找该文件中的第K大数即可。原创 2021-08-09 12:14:48 · 2173 阅读 · 0 评论 -
IO多路复用
I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。1. select 主旨思想: 1. 首先要构造一个关于文件描述符的列表,将要监听的文件描述符添加到该列表中。 2. 调用一个系统函数,监听该列表中的文件描述符,直到这些描述符中的一个或者多个进行I/O 操作时,该函数才返回。 a.这个函数是阻塞 b.函数对文件描述符的检测的操作是由内核完成的 3...原创 2021-07-09 19:02:22 · 304 阅读 · 0 评论 -
秋招(提前批)面经
字节跳动字节跳动校园招聘原创 2021-07-08 20:31:25 · 589 阅读 · 0 评论 -
Linux高并发服务器开发
程序突然退出而系统没有释放端口-端口复用端口复用最常用的用途是:防止服务器重启时之前绑定的端口还未释放 程序突然退出而系统没有释放端口#include <sys/types.h>#include <sys/socket.h>// 设置套接字的属性(不仅仅能设置端口复用)int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);/*..原创 2021-07-08 17:34:38 · 2557 阅读 · 0 评论 -
【Linux】 常用命令
1. 通过进程id查看占用的端口,通过端口号查看占用的进程 id?通过进程id查看占用的端口:netstat -nap | grep 进程id通过端口号查看占用的进程id :netstat -nap | grep 端口号2. 如何查看占用内存比较多的进程?ps aux | sort -k4nr | head -Nhead :-N可以指定显示的行数,默认显示10行。ps :a—指代所有的进程,u—userid—执行该进程的用户id,x—指代显示所有程序,不以终端机来区分。ps -aux的原创 2021-03-18 19:42:51 · 202 阅读 · 0 评论 -
HTTP协议是有状态还是无状态的?Cookie和Session
在面试中被问到HTTP协议是有状态还是无状态的,当场就有点懵,因为不会就没答出来。还是得总结一下啵! 一、HTTP协议的状态 HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。 也就是说,上一次的请求对这次的请求没有任何影响,服务端也不会对客户端上一次的请求进行任何记录处理。 二、HTTP协议的无状态性带来的问题: 用户登录后,切换到其他界面,进行操作,服务器端是无法判断是哪个用户登录的。...转载 2021-04-10 10:29:55 · 5545 阅读 · 0 评论 -
TCP面试常见题:time_wait状态产生的原因,危害,如何避免
http://blog.csdn.net/u013616945/article/details/77510925 MSL(Maximum Segment Lifetime)最大报文生存时间 每个TCP实现必须选择一个MSL。它是任何报文段被丢弃前在网络内的最长时间。这个时间是有限的,因为TCP报文段以IP数据报在网络内...转载 2021-04-08 20:54:38 · 1164 阅读 · 0 评论 -
C++ 虚函数表 vfptr详解
前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处! 既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言的基础上发展而来的, 那么我们可以尝试用C语言来模拟实现吗? 有可能! 接下来, 就是我一步一步地来解析C++的虚函数的实转载 2021-04-08 11:13:27 · 1827 阅读 · 1 评论 -
HTTP 2.0 原理详细分析
HTTP 2.0是在SPDY(An experimental protocol for a faster web, The Chromium Projects)基础上形成的下一代互联网通信协议。HTTP/2 的目的是通过支持请求与响应的多路复用来较少延迟,通过压缩HTTPS首部字段将...转载 2021-04-08 10:47:55 · 1513 阅读 · 0 评论 -
C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast1. c强制转换与c++强制转换c语言强制类型转换主要用于基础的数据类型间的转换,语法为:(type-id)expression//转换格式1type-id(expression)//转换格式2c++除了能使用c语言的强制类型转换外,还新增了四种强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast,主要运用转载 2021-04-07 11:07:53 · 176 阅读 · 0 评论 -
【数据结构】排序算法
本图片来源:知乎 @sugarTang。原创 2021-03-14 11:41:45 · 318 阅读 · 0 评论 -
【杂项】 面试复习
main函数之前执行了什么?全局对象的构造函数会在main 函数之前执行。①设置栈指针②初始化静态和全局变量,即data段的内容③将未初始化部分的赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容④运行全局构造器,估计是C++中构造函数之类的吧⑤将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数Select poll epoll网络IO可以抽象成用户态和内核态之间的数据交换。使用sel..原创 2021-03-13 20:16:37 · 268 阅读 · 0 评论 -
【操作系统】Linux文件系统 block、inode、superblock
UNIX文件系统1. 数据区块(block)真正存放文件的地方。2. inode存储内容:特点:结构示意图:inode本身128B,inode记录一个数据区块需要4B,数据区块按照1KB计算,总共存储量=12+256+256256+256256*256=16GB3. 超级区块(superblock)记录信息:5. 与目录树的关系...原创 2021-03-12 16:37:32 · 2160 阅读 · 3 评论 -
【C++】 map按值排序 自定义排序
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map<string, int>,其中学生姓名用string类型,作为Key;该学生的成绩用int类型,作为value。这样一来,我们可以根据学生姓名快速的查找到他的成绩。 &...原创 2021-03-11 09:40:12 · 3744 阅读 · 1 评论 -
【操作系统】 进程控制 僵尸进程和孤儿进程
1. 进程创建fork()调用形式 pid=fork()功能创建一个子进程,被创建的子进程是父进程的进 程映像的一个副本 (除proc结构外),在UNIX系统中,除 了0#进程外,其它进程都是通过调用进程创建系统调用创建的。动作① 为新进程分配一个新的pcb结构;② 为子进程赋一个唯一的进程标识号 (PID);③ 做一个父进程上下文的逻辑副本。由于进程的正文区 (代码段) 可被几个进程所共享,所以核心只要增加某个正文区的引用数即可,而不是真的将该区拷贝到一个新的内存物理区。这就意味着父子进程原创 2021-03-09 20:27:05 · 140 阅读 · 0 评论 -
【计算机网络】 IPv6与IPv4的区别 IPv4到IPv6的迁移
IPv4数据报格式IPv6数据报格式IPv6与IPv4的区别无检验和中间结点不再负责分片和重组,由端节点负责首部长度固定,加速中间结点转发速度IPv4到IPv6的迁移设立标志日,统一迁移双栈技术隧道技术...原创 2021-03-07 11:55:14 · 206 阅读 · 0 评论 -
【计算机网络】 路由表和转发表的区别
路由器的结构路由表和转发表的区别路由器的结构结构可划分为两大部分:路由选择部分和分组转发部分路由选择部分也叫做控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由协议构造出路由表,同时经常或定期地和相邻的路由器交换路由信息而不断地更新和维护路由表。分组转发部分由三部分组成:交换结构、输入端口和输出端口。交换结构的作用就是根据转发表(forwarding table)对分组进行处理,将某个输入端口进入的分组从一个合适的输入端口转发出去。...原创 2021-03-07 11:42:14 · 8697 阅读 · 0 评论 -
【计算机网络】 HTTP和HTTPS介绍及区别
http/httpsHTTPHttp协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;HTTP(超文本传输协议)是一个无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。HTTP常用方法:GET:用于请求访问已经被URI识别的资源,可以通过URL传参给服务器。POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。PUT: 传输文件,报文主体中包原创 2021-03-05 16:59:35 · 211 阅读 · 0 评论 -
【计算机网络】 三次握手 四次挥手
三次握手和四次挥手(1). 三次握手(我要和你建立链接,你真的要和我建立链接么,我真的要和你建立链接,成功):第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入原创 2021-03-05 16:53:55 · 222 阅读 · 0 评论