mysql锁
KAFKA : 消息队列
ElasticSearch :分布式搜索引擎
kafka-es : 详解
Redis详解 :key:value存储系统,其中value支持五种数据类型:
1.字符串(strings)
2.字符串列表(lists)
3.字符串集合(sets)
4.有序字符串集合(sorted sets)
5.哈希(hashes)
而关于key,有几个点要提醒大家:
1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;
2.key也不要太短,太短的话,key的可读性会降低;
3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd
5.(1) 数据库索引
(2)数据库左连接和右连接
(3)哪些情况下适合建索引,哪些情况下不适合建索引
(4)慢查询的常见原因
4. bug的生命周期
24.浏览器输入URL到用户看到网页,中间都发生了什么?
(1)应用层(DNS,http):DNS解析成IP并发送http请求
(2)传输层(tcp,udp):建立tcp连接
(3)网络层(IP,ARP):IP寻址
(4)数据链路层(ppp):封装成帧
(5)物理层:物理传输
-
(1)测试用例设计经典面试题–电梯,杯子,笔,桌子,洗衣机
(2)微信聊天功能
(3)用户登录界面
(4)短信验证码登录
(5)微信朋友圈
(6)微信朋友圈点赞
(7)蓝牙耳机
(8)搜索框
(9)人脸识别测试用例
(10)购物车测试用例
(11)微信发红包测试用例
(12)三角形测试用例
(13)qq文件传输测试用例
(14)写一下拼多多签到的1天,2天…30天的测试用例?其中签到5天可以可以领现金,签到30天可以获得购物卷,断签需要从第一天开始重新签?
(15)手机充值场景测试用例
(16)支付场景测试用例
(17)播放器测试用例
1.写一个位图
5.对比总结 select,poll,epoll之间的优点和缺点(面试常见)
(1)服务器模型
(2)网络架构
(3)五种IO模型
(4)进程间通信
6.数组与指针的区别
21.vector和list的区别
22.vector迭代器失效:插入和删除
list迭代器失效:删除
23.八大排序算法
4.C和C++的区别
4.指针和引用的区别
5.malloc/free和new/delete的区别与联系
6.struct和union的区别
struct 和 class 的区别?
9.多态常见的面试题
10.深浅拷贝的区别
11.堆和栈的区别
12.栈和队列的区别
12.继承相关的面试题
7.如果面试官让你写智能指针,那你写unique_ptr
auto_ptr
shared_ptr的局限性(重点)
shared_ptr的循环引用(用weak_ptr解决)(重点)
13.除了使用fork产生子进程,还有其它的方法吗?子进程可以访问父进程的变量吗?
14.TCP协议(传输层)!!!(1)
TCP协议(传输层)!!!(2)
TCP的三次握手与四次挥手理解及面试题(很全面)
TCP协议的通讯流程(三次握手四次挥手)高频考点!!!
15.UDP协议
16.HTTP协议
17.https和http的区别?然后问我https怎么加密的 ,讲一讲加密算法实现
18 .二分查找
19.空间配置器的基本了解
20.非对称加密算法
25.智能指针
29.背包问题会不会 ?
30.用链表实现一个栈?
16.tcp动态连接的过程,断开的过程time_wait的作用是?
time_wait的作用是:确保服务器收到了ack
TCP协议的通讯流程(三次握手四次挥手)高频考点!!!
17.linux下进程间通信有哪些方式
为什么共享内存是最快的通信方式?
线程间通信方式
33.快排算法以及思路
34.C++中的异常,C中的异常是怎样的。在C中遇到异常如何处理
20.多线程讲一讲?
21.我们现在用的腾讯会议这个app,从打开到用完,对照着七层模型讲一讲?
22.网址进去以后的变化?
24.问我设计模式,我讲了单例模式?问我为什么要有单例模式?什么时候用
40.Session和cookie有什么区别,他们分别写在哪里
(1)Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。
(2)Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。
(3)Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。
(4)Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。
12.构造函数是虚函数吗?析构函数呢?
(1)构造函数不能是虚函数。
- 虚函数的作用在于通过子类的指针或引用来调用父类的那个成员函数。而构造函数是在创建对象时自己主动调用的,不可能通过子类的指针或者引用去调用。
- 虚函数相应一个指向vtable虚函数表的指针,但这个指向vtable的指针事实上是存储在对象的内存空间的,假设构造函数是虚的,就须通过vtable来调用,但对象还没有实例化,也就是内存空间还没有,无法找到vtable
(2)析构函数可以为虚函数。
在多态的时候,比如基类的指针指向派生类的对象,如果删除该指针delete []p,就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动调用基类的析构函数,这样整个派生类的对象完全被释放。
如果析构函数不被声明成虚函数,会造成派生类对象析构不完全。所以析构函数声明为虚函数的十分必要的。
19.快排的时间复杂度最坏情况?
时间复杂度:最好情况O(nlogn)——Partition函数每次恰好能均分序列,其递归树的深度就为.log2n.+1(.x.表示不大于x的最大整数),即仅需递归log2n次;
最坏情况O(n^2),每次划分只能将序列分为一个元素与其他元素两部分,这时的快速排序退化为冒泡排序,如果用数画出来,得到的将会是一棵单斜树,也就是说所有所有的节点只有左(右)节点的树;平均时间复杂度O(nlogn)
20.比快排更快的排序?
29.面试官接着问重写跟重载。
30.String类可以被继承吗?
String类是被final修饰的,被final修饰的类是不能被继承的。
31.对网络安全的了解
47、sizeof(‘\0’)?
sizeof计算的字符的字节数,同时还要加上最后面的’\0’ 就相当于两个’\0’,所以为2
48、strlen(‘\0’)?
strlen 计算的字符个数,遇见‘\0’就停止查找,直接返回’\0’之前的字符个数,所以为0
55.C++动态内存申请,new原理
new 的话,是用于从堆内存中分配指定大小的内存区域,并返回获得的内存区域的首地址。类似于malloc不过,这个new不用计算需求的内存大小,而且不用对内存区域进行类型转换
57.服务器503的时候可能是什么情况造成的
6.写一个题。。。时针、分针、秒针、连续转。一天重合几次
1.你用的 linux 是哪个版本的?
2.那你知道 centos 7 初始化服务器相关的东西吗?
3.知道1号进程吗?1号进程的名字是什么?各个版本下的1号进程名字都叫什么?。。
4.如果在 shell 下运行一个命令,怎么知道他是运行成功了?
5.两个进程同时 malloc 一段空间,返回的地址指针都是 12345,那他们访问的是同一块物理地址吗?
6.怎么通过虚拟地址和页表找到对应的逻辑地址?
7.每一个进程都得有一个自己的页表吗?
8.linux 下怎么查看cpu的使用情况?
9.那 top 还能查看到 cpu 的那些信息?
10.linux 下怎么查看网络流量?
11.linux 怎么比较两个文件的区别?
13.了解内核线程吗?
14.线程共享进程的哪些资源?
15.你刚说可资源共享可能不安全,那有什么方法保证多个线程对资源修改的安全性?
16.你平时写代码有没有遇见过僵尸进程?为什么会产生僵尸进程?
17.了解有关于虚拟或者云的东西吗?
2.多线程的创建、多线程的同步、多线程的通信?