腾讯-QQ-一面

1. 拷打实习
2. 手撕:合并两个有序列表(空间复杂度O(1))
3. 手撕:LRU
4. 拷打项目
5. 访问一个网站的过程
6. HTTPS的步骤
7. TCP在握手阶段如何管理客户端的连接
8. 用户态和内核态区别
9. 什么时候会发生切换
10. fork()调用,子进程会拷贝哪些资源,不拷贝哪些
11. 父进程kill掉,对子进程有什么影响
12. 向HashMap添加元素过程
13. 假如key是User对象,这个对象需要做什么特殊处理吗
14. java加锁的形式有几种
15. synchronized可以用在哪些位置,粒度是什么样的
16. volatile的作用
17. 可见性是怎么实现的
18. 类加载的过程
19. JVM的GC算法
20. GC Root有哪些
21. mysql索引从数据类型看有哪些
22. B+树和B树的区别
23. 聚簇索引和非聚簇索引的区别
24. 数据库发生慢sql如何分析
25. 索引失效的原因
26. mysql的事务隔离级别,分别解决了什么问题
27. 不可重复读和幻读具体是什么
28. mysql的三种日志
29. redo log具体是怎么运作的
30. 崩溃恢复是怎么实现的,如何判断是否要做恢复
31. 两阶段提交
32. Redis中的数据类型、数据结构
33. Redis的数据持久化
34. Redis的集群模式
35. Redis哨兵机制
36. Redis内存淘汰
全部评论

相关推荐

05-24 12:03
湖南大学 Java
1、项目什么时候会触发失败,人为介入;2、sql如何分页展示    在sql中,可以使用limit和offset子句或者row_number()窗口参数来实现分页展示数据; limit number_of_rows表示每页展示的行数,offset offset_value表示跳过前面的行数。例如,对于第一页,offset是0,以此类推;3、http包含了哪些内容    请求方式(get、post、delete、put)、状态码(1XX表示请求已被服务器接收,继续处理、2XX表示请求已成功被服务器接收、理解、并接受、3XX表示需要客户端采取进一步的操作才能完成请求、4XX表示客户端请求有语法错误或无法完成请求、5XX表示服务器在处理请求的过程中发生了错误)4、TCP的状态    三次握手、四次挥手5、如果在建立连接的时候,ack后,开始发送数据,但是ack数据包丢失,这个情况下服务器如何处理这个数据包    首先关于服务器状态的改变,在正常情况下,服务器收到客户端的ACK报文之后,连接就进入了ESTABLISHED(已建立)状态,但是ACK数据包丢失,服务器在发送SYN-ACK报文之后,会等待客户端ACK的确认,此时服务器的状态会一直保持在SYN-RCVD(同步已接受)状态。    服务器的重传机制,在一定时间内,没有收到客户端的ACK报文,服务器会重新发送SYN-ACK报文。    在等待ACK的过程中,服务器会为这个半连接分配一定资源。6、操作系统的进程调度方式,win使用哪些进程调度方式,linux是使用哪些进程调度方式操作系统的进程调度方式主要有以下几种:先来先服务调度算法(FCFS)原理 :按照进程进入就绪队列的先后顺序进行调度,先到达的进程先得到处理。特点 :简单易懂,但可能导致后到达的短进程等待过长。短进程优先调度算法(SJF)原理 :优先调度估计运行时间短的进程。特点 :能有效减少进程的平均等待时间,但难以准确预估进程的运行时间。时间片轮转调度算法(RR)原理 :将 CPU 时间划分为一个个时间片,按就绪队列顺序分配时间片给进程运行,若时间片用完而进程未完成,则进入队列等待下一轮调度。特点 :适合多用户分时系统,保证了每个进程都能获得一定的 CPU 时间,但时间片大小的选择较关键。优先级调度算法原理 :为每个进程设置优先级,优先级高的进程先调度,优先级相同则按先来先服务调度。特点 :灵活但易导致低优先级进程饥饿。多级反馈队列调度算法原理 :设置多个就绪队列,每个队列对应一个优先级和时间片大小,进程根据运行时间和抢占情况在不同队列间移动,优先级高的队列中的进程先调度,同一队列中的进程采用时间片轮转调度。特点 :兼顾多个方面,是较复杂的调度算法,能有效处理各种类型的进程。Windows 的进程调度方式:多优先级反馈调度算法 :Windows 将进程分为多个优先级,优先级高的进程优先调度。系统会根据进程的行为动态调整优先级,如交互式进程的优先级会提高,CPU 密集型进程的优先级会降低。实时进程调度 :对于实时进程,Windows 使用先来先服务和轮转算法,确保实时任务及时得到处理。Linux 的进程调度方式:完全公平调度器(CFS) :基于红黑树数据结构管理进程,通过计算进程的虚拟运行时间来确定调度顺序,优先调度虚拟运行时间少的进程,兼顾进程的公平性和吞吐量。实时进程调度 :包括先来先服务(SCHED_FIFO)和轮转(SCHED_RR)两种策略,确保实时进程及时得到 CPU 资源。过时的 O(1)调度算法 :早期 Linux 使用,基于就绪队列和过期队列,优先调度优先级高的进程。pv操作PV 操作是操作系统中进程同步与互斥的一种重要机制,主要用于处理进程之间的资源竞争和同步问题。PV 操作通过信号量(semaphore)来实现,它包含两种操作:P 操作和 V 操作。PV 操作的定义P 操作(wait 操作) :用于测试信号量的值。若信号量的值大于等于 1,则信号量减 1,进程继续执行;若信号量的值小于 0,则进程进入等待队列等待。P 操作的格式如下:V 操作(signal 操作) :用于将信号量的值加 1。若信号量的值大于等于 0,则直接加 1;若信号量的值小于 0,表示有进程在等待该信号量,此时唤醒一个等待的进程,并将信号量的值加 1。V 操作的格式如下:
查看7道真题和解析
点赞 评论 收藏
分享
05-23 12:00
门头沟学院 C++
 5.22一面,总共时长125min1.如何保护用户的隐私2.int* createArray() {int arr[3] = {1, 2, 3}; return arr;} 这段代码有什么问题3.对上述代码进行改进,写出能想到的所有方法(我写了一个malloc,全局数组,静态数组)4.说一下三种方式的优缺点5.全局数组和静态数组有什么区别6.解释完美转发的作用及实现方式7.const int*,int const*,int* const, const int* const的区别8.实现一个无锁计数器9.调用C++11实现一个线程安全的有界环形队列(circular buffer),要求如下:支持多线程环境下的并发push和pop操作,队列有固定容量,满时push操作要阻塞,空时pop操作要阻塞。不允许使用第三方库,只能用C++11标准库,说明你的实现如何保证线程安全,并分析可能的性能瓶颈。10.unique_lock 和 lock_guard的区别,为什么你刚才给我的代码用的是unique_lock 而不是 lock_guard 呢11.你写的代码的性能瓶颈是什么?如果有大量得到生产者和消费者会怎样呢12.把第9个改成非阻塞的,写一下,为什么你这个非阻塞用lock_guard这个锁呢13.有一类二叉树用三叉链表来存储的时候除了带有指向左右孩子节点的两个指针,还有指向父节点的指针,那么这样一棵二叉树有n个节点,那么有多少指针指向NULL(对于不存在的节点表示为空)14.int n = 2019; int count = 0;  while(n){count++; n = n&(n - 1);} cout << count << endl;输出是多少,为什么15.给定一个递增循环整数数组,从里面找出最小的元素,使用的算法越快越好。特别地,最小的元素可能出现在数组中间。比如:50,52,63,90,3,8,15,44,49,int findmin(int array[]){}16.在二叉排序树上面找出第3大的节点。注意:不能把二叉树全量存储到另外的存储空间,比如存储到数组中,然后取出数组的第三个元素。class TreeNode {public:int value;TreeNode*left;TreeNode* right};TreeNode* find(TreeNode*root) {}17.动态规划题:给定一个长度为l的木棍,已知有n个切割点,要求在每个切割点都要切割,注意每次切割的开销为当前木棍的长度,例如一个10米的木棍,切割点为2,4,7。有多种切割方式,其中可以先切2,再切4,再切7,此时开销为10+8+6=24(第1次切木棍为10米,笑2次切木棍为8米,第3次切木棍为6米),也可以先切4,再切2,再切7,出约著销为10+4+6=20,这时开销更小你的任务是计算切割的最小开销。
腾讯一面2114人在聊 查看17道真题和解析
点赞 评论 收藏
分享
评论
4
31
分享

创作者周榜

更多
牛客网
牛客企业服务