【面经】腾讯运营开发岗一面面经

腾讯运营开发岗一面面经

2021.4.1

自我介绍

blablabla···

项目

一上来就问项目是我没想到的

  1. 介绍一下最熟悉项目
  2. 介绍一下传统架构、集群架构、分布式架构的区别
  3. 集群架构中,负载均衡怎么找到空闲服务器
  4. 分布式架构中,分布式模块之间怎么通信

网络

  1. TCP/UDP
  2. TCP三次握手,四次挥手
  3. TCP拥塞控制
  4. HTTP消息格式
  5. TCP是面向流的,TCP报文如何解析成HTTP报文
  6. HTTP报文可以通过换行符来界定边界,但是如果数据中本来就有换行符应该怎么办?(Content-Length)
  7. 在编程中有没有用过流文件、流输入输出等

C++

  1. 解释一下面向对象
  2. const关键字(const *)
  3. 内联函数的优缺点
  4. 宏函数和内联函数的比较

数据库

  1. 项目中用了哪些数据库的知识
  2. 三范式
  3. 索引
  4. 事务(好像没问,忘记了···)

OS

  1. 进程和线程
  2. 用过线程函数吗(pthread)
  3. 虚拟内存
  4. 页面调度的过程
  5. 页面(缓存)置换算法
  6. O(1)实现LRU(附代码):
#include<bits/stdc++.h>
using namespace std;
class LRU{
	private:
		int maxNum;
		unordered_map<int,list<pair<int,int>>::iterator> mapLRU;
		list<pair<int,int>> listLRU;
	public:
		Cache(int maxnum){
			maxNum=maxnum;
			mapLRU.clear();
			listLRU.clear();
		}
		int get(int key){
			unordered_map<int,list<pair<int,int>>::iterator>::iterator it=mapLRU.find(key);//找key
			if(it==mapLRU.end()){//不存在 
				return -1; 
			}
			else{
				int value=it->second->second;
				listLRU.erase(it->second);//删除
				pair<int,int> tp=make_pair(key,value); 
				listLRU.push_front(tp);
				mapLRU[key]=listLRU.begin();
				return value;
			}
		}
		void set(int key,int value){
			unordered_map<int,list<pair<int,int>>::iterator>::iterator it=mapLRU.find(key);
			if(it==mapLRU.end())//不存在,要写入
			{
				pair<int,int> np=make_pair(key,value);
				if(listLRU.size()==maxNum){//超出 
					//删除尾元素
					int dk=listLRU.back().first;
					listLRU.pop_back();
//					unordered_map<int,list<pair<int,int>>::iterator>::iterator dit=mapLRU.find(dk);
//					mapLRU.erase(dit); 
					mapLRU.erase(dk);
				}
				listLRU.push_front(np);
				mapLRU[key]=listLRU.begin();
			}
			else{//存在替换 
				listLRU.erase(it->second);
				pair<int,int> tp=make_pair(key,value);
				listLRU.push_front(tp);
				mapLRU[key]=listLRU.begin();
			}
		}
};
int main(){
	LRU lru;
	lru.Cache(3);
	lru.set(1,1);
	lru.set(2,2);
	lru.set(3,3);
	cout<<lru.get(1)<<endl;
	cout<<lru.get(2)<<endl;
	lru.set(4,4);
	cout<<lru.get(3)<<endl;
	cout<<lru.get(4)<<endl;
	return 0;
} 

Gossip

  1. 平时如何分配自己的时间
  2. 有什么想问的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值