一面
端口被占用其它应用能否正常运行,如何解决。lsof -i:端口号。
线程都共享了什么东西:堆、全局变量、静态变量、寄存器。
手撕代码,1-n的数组可以组成多少棵二叉搜索树:dp[i] = dp[j-1]*dp[i-j]
翻转文章单词:双指针
二面
比如redis挂掉了怎么办。
降级、限流、兜底。哨兵。
手撕代码,搜索旋转排序数组。
双指针+数组
你说你用了CDN,如果CDN结点挂了会怎么办?
从服务器下载静态文件到本地,nginx转发静态文件到固定目录。
三面
写个命令,将当前目录下所有文件名和对应权限打印到一个文件中
```
$awk 'BEGIN{ while(("ls" | getline d) > 0) print d}' f
seq 10 | awk '{getline; print $0}'
```
快排说一说,为什么快
每一次每一个数更接近他原来的位置。
go的闭包了解吗
环境和值传递
一面
epoll与select poll的区别,epoll并不适用于所有场景
4.进程之间的通信方式及其特点。信号量、信号、消息队列、管道、共享内存、socket
6.线程之间的同步:互斥量、信号量、notify
腾讯PCG事业部二面 3月18日晚上11点半(28分钟)
4月8日下午4:30 一面 45min
堆:一般人为手动进行管理,手动申请、分配、释放。适合不可预知大小的内存分配。分配速度慢,也会产生内存碎片。
优先级队列
堆排序 算法 为什么是nlogn?每一次都是logn
管道 半双工
mmap 非堆内存,与内核内存相映射
进程的地址空间:
程序段(Text):程序代码在内存中的映射,存放函数体的二进制代码。
初始化过的数据(Data):在程序运行初已经对变量进行初始化的数据。
未初始化过的数据(BSS):在程序运行初未对变量进行初始化的数据。
栈 (Stack):存储局部、临时变量,函数调用时,存储函数的返回指针,用于控制函数的调用和返回。在程序块开始时自动分配内存,结束时自动释放内存,其操作方式类似于数据结构中的栈。
堆 (Heap):存储动态内存分配,需要程序员手工分配,手工释放.注意它与数据结构中的堆是两回事,分配方式类似于链表。
4月8日下午20:00 二面 1h10min
红黑树 最大树高不超过多少?
哈夫曼编码
栈,实现max O(1)
Linux ps top
权限 765 ? 哪一个是自己的权限? 无root的?
协程?
陷入内核 会做出哪些动作?
进程通信 IPC
共享内存映射,物理内存 怎么进行进程通信?
计算机网络
4次挥手 2MSL
智力题
100本书,最少拿1本,最多拿5本,怎么保证你是最后拿的?
3.23腾讯一面(1h)
手撕代码:
双向链表定义
两个有序双向链表,合并为一个
快速排序
面试:
排序算法时间复杂度,稳定性
红黑树与平衡树
缓存 剔除策略
LRU实现
select,poll,epoll区别
BIO,NIO,AIO区别
进程,线程,协程区别
https建立连接的过程
保证线程安全的方法
JVM内存模型
局部变量,临时变量,全局变量分别存放在JVM内存模型哪个区域
GC过程
B-树与B+树区别
3.26腾讯二面(半小时)
索引叶子节点是怎么组织的
索引修改后,怎么写入文件(面试官侧重点是,索引修改后,索引文件是全部替换还是部分修改,全部替换浪费性能,部分替换怎么实现)
数据库SQL解析过程
执行计划优化过程(怎么选择最优的执行计划)
分布式架构
分布式事务一致性
1.自我介绍
2.项目中用到的设计模式,单例模式、观察者模式,还知道哪些设计模式?
3.单例模式在多线程中如何保证只有一个实例化对象?
4.了解数据库吗?知道索引的作用吗?了解聚簇索引吗?
5.linux操作系统了解多少?答:了解不多,正在学习,面试官也就没再深入问了。
6.操作系统的磁盘调度算法?
时间片轮转调度(RR)、先来先服务(FCFS)、优先级调度算法(HPF)、多级反馈队列调度算法、高响应比优先调度算法((执行+等待)/执行)
7.多个进程同时对一个文件进行操作时,操作系统如何处理?
8.进程、线程,两者区别?进程间通信方式有哪些?心态已炸,只记得管道。
9.死锁,死锁产生的条件?
10.现场编程,下来查了一下是LeetCode原题:45. 跳跃游戏 II:https://leetcode-cn.com/problems/jump-game-ii/
11.现场编程,也是leetCode原题: 11. 盛最多水的容器:https://leetcode-cn.com/problems/container-with-most-water/
1.一面
list、set、map的存取特点
MongoDB和MySQL的区别
SQL注入,怎么防范
字符串子串替换
sleep、yield区别
列出目录下的所有文件
2.一面2.0
hashmap的冲突问题
hashmap的链地址法冲突多怎么办
求x的n次方
论文的词频统计,并排好序
快排的缺点,怎么优化
3.二面
进程的内存一直在涨,怎么定位
1000万字符串,长度不一,判断是否存在(提示我trie树)
1000万整数,判断是否存在
什么是线程独有的资源
作者:菜鸡一只鸭
链接:https://www.nowcoder.com/discuss/401022?type=post&order=time&pos=&page=1&subType=2
来源:牛客网
4.5 15:00 一面 腾讯会议视频面 1h10min
整体比较基础,面试小姐姐超好,体验很不错。
介绍项目
java垃圾回收算法,垃圾回收器,什么时候full gc,什么时候minor gc,还有内存分配策略,什么时候进老年代
ThreadLocal原理,内存泄漏问题,怎么解决
volatile性质,为什么不能保证原子性,和synchronized对比, JMM模型等
阻塞非阻塞与同步非同步区别,乐观锁,悲观锁,synchronized和cas
count(1),count(*),count(列名)以及执行效率 ---- 执行效率不太清楚。。count(1)也没说出来包含null
MVCC介绍
redis缓存穿透,缓存击穿,缓存雪崩,持久化处理
redis缓存一致性,项目中怎么用的
tcp,udp区别
http和https
dns劫持以及解决方式 (估计因为项目做的和dns有关)
线程池底层,四种类型,参数含义等
协程有没有用过,用法 (我只用python写过一点协程,简单讲了下,不了解go的协程)
spring两种代理,ORM是什么,mybatis为什么半ORM,mybatis如何防止sql注入
愿不愿意转golang
实习时间?
手撕代码:判断完全二叉树、求最长不重复子串,求链表有没有环
一面差不多就是这些吧,问的并不是非常深入,大概答了个80%-90%吧,面完10min状态就变复试了,作为一个菜鸡,觉得能过一面已经感觉很不错了hh
作者:菜鸡一只鸭
链接:https://www.nowcoder.com/discuss/401022?type=post&order=time&pos=&page=1&subType=2
来源:牛客网
4.5 15:00 一面 腾讯会议视频面 1h10min
整体比较基础,面试小姐姐超好,体验很不错。
介绍项目
java垃圾回收算法,垃圾回收器,什么时候full gc,什么时候minor gc,还有内存分配策略,什么时候进老年代
ThreadLocal原理,内存泄漏问题,怎么解决
volatile性质,为什么不能保证原子性,和synchronized对比, JMM模型等
阻塞非阻塞与同步非同步区别,乐观锁,悲观锁,synchronized和cas
count(1),count(*),count(列名)以及执行效率 ---- 执行效率不太清楚。。count(1)也没说出来包含null
MVCC介绍
redis缓存穿透,缓存击穿,缓存雪崩,持久化处理
redis缓存一致性,项目中怎么用的
tcp,udp区别
http和https
dns劫持以及解决方式 (估计因为项目做的和dns有关)
线程池底层,四种类型,参数含义等
协程有没有用过,用法 (我只用python写过一点协程,简单讲了下,不了解go的协程)
spring两种代理,ORM是什么,mybatis为什么半ORM,mybatis如何防止sql注入
愿不愿意转golang
实习时间?
手撕代码:判断完全二叉树、求最长不重复子串,求链表有没有环
一面差不多就是这些吧,问的并不是非常深入,大概答了个80%-90%吧,面完10min状态就变复试了,作为一个菜鸡,觉得能过一面已经感觉很不错了hh
作者:Shine4YG
链接:https://www.nowcoder.com/discuss/400709?type=post&order=time&pos=&page=1&subType=2
来源:牛客网
一面(电话面)
TCP 三次握手
HTTP 报文格式
HTTP状态码
项目相关,权限系统怎么设计的
遇到过什么bug,印象深刻的,如何解决的
select XX from XX where a = x and b = y 怎么建立索引
如果加一个字段c呢, select XX from XX where a = x and b = y and c = z 怎么建立索引
内连接和左连接的区别
ElasticSearch倒排索引
浏览器打开网页的流程
TCP编程
慢查询是什么?如何解决慢查询?
分库分表 区别
多线程访问相同资源 需要做什么
synchronize和CAS的对比
乐观锁是什么
HashMap HashTable CurrentHashMap
HashMap的扩容,什么时候扩容,设了初始值的时候会不会扩容
一堆ip,统计Top10的ip地址
嘴说:二分查询
二面(电话面)
Raft算法如何保证数据一致性
两阶段提交
两阶段提交存在什么问题
git存储模式,管理模式
git commit后 传到远程了吗
git push的是什么数据
介绍一个自己参与度高的项目
遇到的记忆犹新的bug,怎么解决的
100层两个鸡蛋,找可以摔碎鸡蛋的楼层,最少操作几次
9个球,其中有一个不一样的球,通过称重的方式检查出来
三面(视频面)
青蛙跳
算法题,查找两个数组中相同的元素
场景题,上亿个<时间,页面,用户>的数据,进行每个页面日活的统计
mysql的索引实现
优缺点
作者:云岫1231
链接:https://www.nowcoder.com/discuss/393336?type=post&order=time&pos=&page=1&subType=2
来源:牛客网
1.自我介绍
2.JAVA字符串可以改变吗(String,StringBuffer,StringBuilder)
3.快速排序最坏情况下的时间复杂度,快速排序稳定吗,为什么
4.MySQL和MangoDB的区别
5.MySAM和InnoDB的区别
6.说几个HTTP状态码
7.路由器是第几层的,交换机是第几层的
8.了解Redis吗?(不了解……于是没了)
9.不同服务器的线程之间如何通信
10.计算机存储数值用的是源码反码还是补码,为什么
11.cookie和session是什么,区别
12.问我了解大数据吗(我说正在学Hadoop还有机器学习之类的,于是面试官就没继续问,好像想问Spark但是我不知道……
13.根据我的项目问了问微服务是怎么实现的
14.在线手撕了两道算法题,第一题是判断是否是2的幂次
第二题:有从1到n个人,从1开始数,数到第m个人,把它踢出去,然后从他后面再开始数,数到第m个人,再把它踢出去,一直到剩下最后一个人,输出这个人的编号。输入m,n。约瑟夫环
(哭了,第二题就讲了讲思路,代码没写出来,感觉这里就凉了QAQ
问了一下这个部门用的是python, go,php
作者:章鱼哥20191115004342
链接:https://www.nowcoder.com/discuss/380417?type=post&order=time&pos=&page=1&subType=2
来源:牛客网
面经内容(60min)
自我介绍
手撕一个二分查找
TCP状态转换 (握手挥手背的很熟,状态也很熟,但当时脑子每反应过来啥意思直接说不会)
学过数据库没?
说一下 Mysql 索引,原理
B+ 树的原理
B+ 树和 b 树的区别
手撕树的水平遍历(用的队列)
能用递归写出来吗?(我当时就懵了,思考半天不会)
有什么要问的?
第一次面试,即使挂了也很开心,收获了面试经验,还能督促自己学习。(太悲观了,其实后来并没凉)
腾讯二面(60min)
开局两道算法题
类似 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。(我理解错了题意,浪费了很长时间,后来经过提示理解了,秒了)
面向对象解决问题:员工、经理签到,员工可以签到,经理可以根据员工id打印表,可以查看倒数第n个员工签到。考虑时间复杂度时间复杂度,最差不能到 n^2,我用了一个链表,为n。主要考察面向对象的能力,考虑好权限问题,及多种实现方式。
syn攻击了解吗?
DNS 协议
说一下为什么挥手要4次?
内存溢出了怎么查看?
腾讯三面(30min)
自我介绍
介绍项目(基本全在自己说)
说其他项目的亮点
给一个函数可以得到1-5的随机值,设计一个可以得到1-7随机值的函数,并证明公平
跳楼梯(斐波那契数列)(提这个问题我因该就凉了,用来凑时间。我还以为是写出数学通项公式,还想了几分钟)
随便问问
面完一分钟显示凉了
UDP和TCP区别
(4)手写数据库增删改查(牛客网视频面试可以同步敲代码),问了数据库相关的很深的东西,我都没听懂。
(5)多线程与多进程
(6)什么是面向对象(就在此时他问我是不是从来不看书,我说我看呀!!!别贬低自己,同志们,面试官不会觉得你谦虚,而是觉得你没能力)
(7)主要用的什么语言?(我说JAVA)说说JAVA框架
(8)问了正则表达式
(9)手写排序
(10)他出了一个题目(每行两个数字,逐行求和输出)
然后就没了,所以我就凉凉了,这轮面试总结就是不难,很基础,项目准备的不清晰,我自己本身很紧张,加上自己有点傻,但是因为可能笔试还可以,所以就没给我转成运营,而是到了别的部门的开发,当然这是11天之后的事情了。
3.19号,我还在医院看医生,已经不抱希望了,突然接到了腾讯的电话,说希望安排面试,我说可以下周么,对方说面试要截止了,所以就同意周五了,因为周三有个很重要的答辩,需要好好准备,周五早上也有个很重要的答辩。那周身体不好,去了两次医院,答辩了两次,还面试了两场,整个人有点崩溃。周三答辩完,又去看了医生,五点多接到腾讯电话希望提前面试时间,我只好同意提前到周四晚上。
3.21号,第二个部门的一面,小哥哥很帅,并且超级温柔!!!心动的感觉!!!我回答错了的时候他还只是笑笑不说话,或者换个问题。没有自我介绍,项目问了好多好深的问题。
(1)项目是TCP还是UDP,宕机怎么处理,服务器怎么部署的,%*&……(&*%……&然后问了很多我从来没想过的。
(2)重载和重写,虚函数
(3)写个二叉树广度优先遍历(同步的牛客网),我在本地写的,小哥哥看我还没写完叫我把写完的粘过去(呜呜呜,我知道我很菜,我要努力!!!!!),并且讲思路
(4)说下深度优先遍历
(5)数据库索引
(6)操作系统宕机,服务器瘫痪怎么办,没响应怎么办,延迟怎么办,&%&%……&T&*……¥#¥……&问了好多好多
(7)问了好多好多,我给忘了,http协议相关的东西,实现
(1)数据库事务,各种性质相关的
(2)给我提了个数据库的问题让我判断。
(3)二选一编程题,先说了第一道,一个英文文件,分割单词,按照字典序输出每个单词的出现个数。但是牛客好像没发找到我本地的文件,所以就变成了字符串。因为我用的是split(" ")函数,直接分割的空格,所以小姐姐问我如何实现多种分隔符,我说的是判断,把可能的分隔符都想到,然后对比,小姐姐说这样效率太低,然后让我判断前后字符串实现,我就又手动实现了能分割多种分隔符的函数。