滴滴二面(准备)
这两天一直在准备二面的东西,结合自己手里和网上搜集到的信息大概做一下如下的汇总
红黑树结构的数据常常存在于主存中,主要用于快速查找。树的每个节点存储的数据量比较小,cpu通过与主存少量的交互就能获取树的全部数据,并快速的查找到所需数据。而B+树形式的数据常常存在于SSD或磁盘中,由于树的深度比较小(一般3~4),能够减少cpu于磁盘间的交互时间。
3. TCP三次握手四次挥手说下
8. java异常有哪些?从上往下说一下。
11. 64匹马8个赛道,选出前四名,最少多少轮?
手撕:abcd四个字母,返回所有长度大于等于2的字符串全排列
————————————————————————————————————
4. 线程池有哪些参数,分别是干什么的?
核心线程数、最大线程数、空闲线程存活时间、时间单位、线程池任务队列、创建线程的工厂、拒绝策略
5. 线程提交、回收、拒绝的过程是什么?
6. jvm内存模型讲一下
7. jvm调优策略聊一下
9. 如何在不加表锁的情况下解决幻读问题?
10. mybatis和JDBC有啥区别?
- Mybatis是对JDBC的封装,
- sql写在xml里,便于统一管理和优化。
- 解除sql与程序代码的耦合
12. 你了解数据库里哪些日志?分别用来做什么?
- 重做日志(redo log):在重启mysql服务的时候,根据redo log进行重做,保证事务的持久性
- 回滚日志(undo log):保存了事务发生之前的数据的一个版本,可以用来回滚
- 二进制日志(binary log):主从复制
- 中继日志(relay log):主从复制
3. 聊聊垃圾收集?怎么实现的,有哪些收集器和算法。。。
- 标记清除、标记整理、标记复制算法
- G1收集器、CMS收集器、Serial收集器、Parnew收集器
4. 一共1G数据,给你100M内存,怎么找到top10的数?
最小堆
手撕:给一个字符串指令(矢量噢),LR分别代表左拐右拐,输出指令结束时的坐标 eg:“L10R100R40L30L50”
二面开始: 自我介绍 研究生的研究方向,怎么做的这个课题(巴拉巴拉一堆)
没有问项目,没有问实习直接算法题。
- 进程通信方式
- 管道、消息队列、信号量、信号、共享内存、套接字
- MVCC多版本并发控制
- undoLog存在硬盘中还是内存中
- 为什么TCP建立连接是三次握手,断开是四次挥手
需要确定还有没传输完的数据
- Https和Http的区别
https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
- 口述LRU算法
- 口述前序中序还原二叉树
- leecode 25 k个一组翻转链表
二面
- 递归实现阶乘
- 羊了个羊数据结构
- 贪吃蛇数据结构
- 二维地图两点求最短路径
- Mysql事务回滚方式
- 手写单例模式
- 进程线程区别
- 进程通信方式
- Https非对称加密过程
- 100m内存存储10000张图片中使用频次前十
- 身份证号数据存储方式
- 口述股票买卖最佳时机
滴滴二面:
2==和equals的区别?Integer a=100 Integer b=100
a==b true
a equals b?
3string buffer怎么实现线程安全的?
通过源代码的查看,你可以明显的看到是使用 synchronized 关键字来通过线程同步来实现线程安全的。
线程池满了,但是又不想让新加进去的线程被拒绝,怎么实现?
自己维护个队列存起来,当线程池能执行的时候再去执行(蒙的 完全没想法,本来以为是拒绝策略,但是拒绝策略好像没法解决)
7服务部署在多个服务器,但是只想让一个服务器响应请求,其他的接到请求但是不响应
8数据库事务 ACID 隔离级别 举例 (我觉得这块回答的可以,刚看过视频,mvcc介绍的挺好的)
9算法题:去除相邻相同字符
abccbe-->ae
我用的循环,循环2(重复几次就循环几次)次,ac了,但是面试完才下想到可以用栈。
其他就是自我介绍 读研做的东西的介绍 项目介绍(微信支付怎么做的?(不是我做的,但是我后来看了下。) 怎么获取用户权限的?(xxx这个回答的还可以)
作者:thinkingg
链接:https://www.nowcoder.com/discuss/1077191
来源:牛客网
不到50min
我自我介绍后说要不要详细介绍一下项目
他说好
我两个项目霹雳巴拉的说了3分钟 说的时候把难点都亮出来了(限流实现、缓存设计等等)吃了一面的亏,这次我是有bear而来
我说完以为他要怼项目了,结果:
他:嗯好,那你知道线程有几种创建方式吗?
分别是继承Thread类、实现Runnable接口、实现Callable接口。
1.对jvm垃圾回收的理解
3.redis为什么这么快
4.mysql mvcc底层
5.线程安全如何实现
6.线程安全的容器
7.知道concurrentFuture底层实现吗
8.concurrentHashMap扩容
大概记得这么多
字节RTC日常实习一面:9月27日
- redis具体为什么以及怎么优化论坛项目中网站的性能?
- redis单实例还是多实例部署的?
- 有调研过多实例部署的方式吗?
- 多实例部署的优势?可以解决什么样的问题?(不会。面试官:IO密集型进行分散IO,内存的存储容量增加)
- 如何保证key到达的一个redis实例
- 敲下www.douyin.com中间发生什么?越详细越好
- 根域名服务器查的是哪个解析的结果?
- 顶级呢?
- TCP三次握手和状态变化?
- 第二次握手的状态转化可以再详细讲一下吗?
- http请求报文格式
- 常见的http头部有哪些?
- http缓存有了解过吗?
- 那你思考一下,缓存一个大的页面(很多年不会变),缓存时应该记录哪些信息呢?
- nginx可以提供什么样的功能有了解过吗?
- es倒排索引原理
- kafka生产消费模式
- 怎么确保消费被消费了可以丢弃掉?
- 说一下操作系统IO多路复用
- 说一下操作系统进程调度
- 跨专业考研怎么准备的
- 算法题:树的子结构
字节RTC日常实习二面:9月28日
- 进程有哪些状态
- 进程运行过程详细说?在操作系统中长什么样子?
- 内存分配算法
- malloc怎么实现的
- redis数据结构
- redis解决写热key的问题(热key读,热key写)
- key的过期机制
- mysql索引
- 索引底层的实现
- mysql实现分布式锁
- 会遇到的问题
- tcp过程三次握手四次挥手的状态
- 三次挥手可以吗?出现什么问题?
- http1.0和1.1区别?
- http2.0和1.1区别?
- http传输音视频数据可以吗?
- 视频聊天在应用层用的什么协议,传输层用的什么协议?
- udp为什么比tcp快?
- 算法题:松鼠捡松子(n个格子,每个格子有不同数量的松子,松鼠在第一个格子,每次可以向前跳3-5格,到了一个格子拿走松子,问跳出去后松鼠最少捡多少松子)
- 总结:问了里面工作的同学说二面凉了。算法题不会,折磨了四十分钟吧,八股环节结束就觉得没希望了。如果回答的很好的话,面试官也会在算法环节放水的,可惜当时情绪已经很沮丧了。二面好多问题不会,和我想象中的不一样。这也是我人生的第一次面试,不该投字节的,很后悔,基础不牢固。准备到的题我会,没准备的我不会,对于回答的问题继续问下去我也不会。后面也不知道咋办了,都不想进互联网了。
02-17 京东Go面经,日常实习
一面(40min)
go语言与其他语言有什么区别
panic,recover
GMP
channel有缓存,无缓存,读写关闭的channel等
接口与空接口,接口断言,空接口在运行时还是编译时确定类型
线程切换
Mysql范式,范式的作用
事务,事务的特性acid
幻读和脏读
Redis的zset用法
持久化
Redis的事务
有没有写过shell脚本--没有
go的map遍历与其他语言map遍历的区别
HTTP状态码,502,503,504
TCP和UDP,三次握手
如何解析POST请求,有没有用过网络抓包工具
算法相关
BFS和DFS做文件夹遍历
队列实现栈
一面9.16(45min)
1.进程和线程的区别
2.线程之间内存是共享的吗
3.进程之间、线程之间怎么进行交互
4.项目里线程之间的交互
5.进程间最高效的通信方式
6.共享内存和进程的地址空间的关系
7.代码题:1)K 个一组翻转链表,非递归和递归实现,如1->2->3->4->5->6->7->8->NULL,k=3,变为3->2->1->6->5->4->8->7->NULL
2)给定一个数组,判断可以积水的容量,如{ 5,2,1,4,3 } ,积水容量为5, 42. 接雨水
二面9.21(50min)
1.epoll的水平触发和边沿触发,项目里用的是哪种
2.实现带timeout的read接口, 原来的 ssize_t read(int fd, void * buf, size_t count) 改为ssize_t read(int fd, void * buf, size_t count, int timeout),可以调用原来的read函数(其实就是封装一下原来的read函数,一开始没理解面试官意思懵了很久)
3.c++11新特性哪些对你很实用,auto,lambda,std::move
std::string byte = "xxx"
auto s = byte
问auto是拷贝还是引用,会推导成什么类型
4.代码题:溢出问题,一个数组vector<int32_t>,整体和是不溢出的,但部分和会溢出,怎么求和
2022.09.20,15:00,45 min
- 项目的注册登录怎么实现?
- 单点登录怎么实现?
- Redis 怎么使用的?
- AOP 的作用?
- Redis 的数据类型
- Redis 中 String 怎么实现?
- MySQL 四种隔离级别
- InnoDB 的默认隔离级别
- 事务的 ACID 特性
- 数据库三大范式
- 用通俗的例子讲一下第二范式
- 项目中 Redis 部署在哪个地方?
- Redis 有几种集群方式?
- Java 集合
- Java 基本数据结构,占用的字节
- StringBuffer 和 StringBuilder 的区别?
- OSI 七层网络模型
- 分为五层呢?
- TCP 是哪一层的协议?
- TCP 和 UDP 的区别?
- TCP 怎么保证可靠传输?
- 用过什么 MQ?
- Spring 怎么解决循环依赖?
- Spring 的 AOP 是怎么实现的?
- 动态代理有哪几种?
- JDK、JRE、JVM(没想到会问这个问题,都忘光了)
- 项目用到了什么设计模式?
https://www.hicxy.com/8291.html
https://www.nowcoder.com/discuss/976905?type=2&order=0&pos=4&page=1
https://blog.csdn.net/haohulala/article/details/125376432
#java实习##日常实习##滴滴##滴滴实习#