必看!研发岗面试二百题目合集(客户端、前端、算法等)
2.数据库查询,插入,更新语句
3.性能测试做过哪些,测试指标,说说某app购物商城的测试用例(功能性测试)
5.C语言的32和64位区别,指针了解多少
6.测试工具用什么
7.自动化测试
8.数据结构与算法,计算机网络,tcp协议,http协议
9. HTTP和HTTPS,get和post方法
10. 进程&线程。创建子线程,若父线程终止,则子线程如何?
11. 进程间通信IPC,使用共享内存时如何进行同步?
12. JAVA有GC机制,C++里怎么进行内存管理
13. 代码题:归并两个有序链表
14. TCP、UDP区别
15. new和malloc
16. C有哪些库函数
17. static关键字
18. 引用传递和值传递
19. 说一说多态
20. C++类默认函数有几个
21. TCP握手挥手
22. 排序算法知道哪些
23. 快排复杂度(期望O(NlogN))?最坏情况(O(N^2))?什么输入最坏?
24. 链表怎么排序?说一下链表快排(口头撕了蛮久的)
25. 对锁的认识,谈谈乐观锁和悲观锁死锁?如何避免?
26. TCP和IP报文是否会分片,分别在什么情况下会分片。
27. 输入一个长度为N的Thread[]数组,判断是否存在死锁,返回true/false(哈希表+资源依赖链找环)
28. UI绘制原理是怎样的?
29. 请利用TableView的重用机制实现一个字母索引条。
30. 什么是离屏渲染?
31. 什么是ARC?
32.AutoReleasePool的实现机制。
33. 循环引用相关的考察,NSTimer如果重复调用怎样解除循环引用?
34. block关键字是否可以解决循环引用? Block的本质是什么? Block的截获变量的特性应该怎样解释,Block是怎样产生循环引用的?
35. 怎样利用iOS的多线程技术对共享变量实现多读单写操作呢?
36. 怎样理解自旋锁? 递归锁应该怎样使用?
37. 常见的线程同步问题该怎样解决?
38. 怎样解决DNS劫持?
39. TCP的慢启动特点是怎样的。
40. 你对HTTPS是怎样理解的?
41. 怎样设计一个时长统计框架?
42. UI视图的事件传递机制是如何实现的?
43. 怎样设计一个图片缓存框架?
44. 客户端的整体架构实现是怎样的,解耦方式都有哪些?
45. UIView和CALayer之间的关系是怎样的?请从设计原则的角度回答系统为何这样设计?
46. UI卡顿、掉帧的原理是怎样的?
47. 请解释一下你对isa指针的理解。
48. 你是怎样理解引用计数机制的?
49. JVM中堆是如何管理的?JVM的内存回收机制
50. 请回答下面的代码输出结果:
dispatch_async(global_queue, ^{
NSLog(@”1”);
[self performSelector : @selector(printLog)
withObject : nil
afterDelay : 0 ];
NSLog(@”3”);
});
-
(void)printLog {
NSLog(@”2”);
}
51. 无限长轨道。两辆车同方向开,车会滴水,怎么让他们相遇。这题简直像脑筋急转弯。
52. 写一个斐波那契数列,递归式,要求改进; dp方式,要求优化空间
53. 用三个变量代替数组进行dp,要求改进
54. 讲一下Linux的内存结构
55. 排序算法,复杂度,比较。
56. 讲一下OSI七层模型,每层的作用,wifi属于哪一层。
57. 线程间的同步用什么方式。
58. 使用hashmap时重写哪两个方法,为什么要重写,什么场景下重写。
59. 平时用过什么数据结构,list用哪些有啥区别。
60. Spring中的ioc和aop。ioc的注解有哪些。
61. autowired和resource有什么区别,作用域有哪些。
62. autowired如何配置两个类中的一个吗
63. 写一个单例模式。
64. Java会有内存泄漏吗,三个区分别什么情况下会产生内存泄漏
65. 分布式系统怎么设计,说了CAP和BASE,最终一致性
66. 最终一致性是什么,举一下强一致性和最终一致性的例子。
67. 分布式事务和消息队列,分布式事务的消息id怎么确认顺序。
68. zk的性能瓶颈怎么克服。
69. 跨机房的网络延迟怎么解决。
70. 说一下socket编程吧。
71. 网络编程的NIO和BIO区别,阻塞指的是什么意思呢。
72. socket客户端和服务端的连接过程和通信过程说一下。
73. 操作系统, shell和命令。
74. 系统优化怎么做,cpu,IO,内存分别怎么排查问题和调优
75. docker和k8s了解多少
76. 操作系统了解么,讲一下进程和线程
77. 死锁和处理方式
78. 内存,虚拟内存和页面置换
79. 网络三次握手和四次挥手
80. 对数据库的了解,Redis
81. 分布式了解哪些,负载均衡有哪些方式。
82. mysql大表数据查询,怎么优化,分表,分库。
83. 单链表判环
84. 完全二叉树判断
85. docker和kubenetes的原理和了解程度,docker的cgroup
86. kubenetes的架构,扩容是怎么完成的。
87. Java的四种引用
88. Java的线程通信方式
89. Linux的进程通信方式
90. Java的线程池
91. 1 - N + 1这些数中取出N个,问剩下的是哪个。
92. 给定一串数字,找出所有可能的IP地址组合,比如192168111。
93. 队列和栈区别,两个栈实现队列,两个栈实现最小值栈
94. 数据库的事务性质,如何实现这些性质
95. 事务隔离级别有哪些,默认是什么级别。
96. 已提交读有什么问题,用于什么场景
97. 二叉树的了解么,平衡二叉树呢,有什么场景会用到呢。
98. 僵尸进程和孤儿进程是什么,分别有什么危害。
99. 主从复制怎么实现。
1. Java中一般用什么类型表示价格。
2. Java如何把byte类型转换成字符串
3. Java的string类型为什么是不可变的
4. Java的线程池说一下,各个参数的作用,如何进行的。
5 分布式系统的全局id如何实现。用zookeeper如何实现的呢。
6 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。
7. kafka了解么,了解哪些消息队列。
8. inux的访问权限是rwx格式的。使用一个类支持访问权限的增删改查,并且注意使用的数据格式以及方法效率,规范。
9. 数据仓库,多线程和并发工具等。
10. 私有云,docker和k8s等。
11. 了解哪些中间件,dubbo,rocketmq,mycat等。
12. dubbo中的rpc如何实现。
13. 自己实现rpc应该怎么做
14. dubbo的服务注册与发现。
15. 有序数组排序,二分,复杂度
16. 常见排序算法,说下快排过程,时间复杂度
17. 有N个节点的满二叉树的高度.
18. 初始化元素
19. 实现元素与元素间的联合操作
20. 实现查找元素所在树的根节点
21. 解决一个问题,判定两个元素是否在同一棵树上(两个元素是否相互连接)
22.单元点最短路的方法,时间复杂度
23. 如何实现关键字输入提示,使用字典树,复杂度多少,有没有其他方案.
24. hashmap的实现讲一下吧,讲的很详细了。讲一下红黑树的结构,查询性能等。
25. Java中的垃圾回收讲一下。
26. 死锁是怎么产生的
27. 进程的通信方式
28. CPU的执行方式
29. 代码中遇到进程阻塞,进程僵死,内存泄漏等情况怎么排查。
30. Linux怎么查看进程状态ps,查看cpu状态 top。查看占用端口的进程号netstat grep
31. 10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。MapReduce分割文件处理。
32. 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程
33. 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。
34. 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。
35. 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。
36. MySQL的索引,B+树性质。
37. Linux的cpu 100怎么排查,top jstack,日志,gui工具
38. Linux大文件怎么查某一行的内容。
39. Redis的持久化方式
40. 秒杀系统的架构设计
42. 十亿个数的集合和10w个数的集合,如何求它们的交集。
43. 十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。
44. TCP和UDP的区别,具体使用场景呢。
45. TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。
46. 对于socket编程,accept方法是干什么的,在三次握手中属于第几次。
47. 对于单例模式,有什么使用场景。
48. 除了单例模式,知道适配器模式怎么实现么,有什么用。
49. Linux了解哪些,基础命令和知识,对proc文件系统了解。
50. TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。
51. TCP的四次挥手,time wait状态有什么意义。
52. Java中的多线程了解么,线程池的增长策略和拒绝策略的了解。
53. 讲一下线程增加的过程和拒绝策略的执行。
54. fixthreadpool的增长策略,然后几种拒绝策略。
55. 高并发情况下,如何使用线程池,用哪个;线程结束要多久,是否在下一个线程结束前完成。
56. 并发juc了解么,有哪些线程安全的list。
57. HTTP协议了解么,和tcp有什么区别。
58. http1.0和2.0的区别。
59. 说下BIO和NIO的区别。
60. 说一下NIO的类库或框架。
61. channelhandler负责请求就绪时的io响应。
62. 倒排索引。
63. sql优化的方式。
64. 索引什么时候会失效变成全表扫描。
65. 分布式的paxos和raft算法。
66. Spring和Springmvc。
67. ArrayList和linkedlist的区别。
68. hashmap的实现。
69. 怎么理解分布式服务。
70.Tomcat的基本原理。
71. docker和虚拟机。
72.Tomcat的类加载器。
73. 自定义类加载器怎么实现,其中哪个方法走双亲委派模型,哪个不走,不走的话怎么加载类
74. 数据库的事务有什么用。
75. 联合索引的匹配原则。
76. 数据库万级变成亿级,怎么处理。
77. Spring用到了哪些设计模式。
78. web请求的过程。
79. 服务生产者和消费者怎么进行rpc调用。
80. dubbo的负载均衡怎么做,讲一下具体代码实现。
81.Linux的磁盘管理。
82. Linux有哪些进程通信方式,五大件。
83. Linux的共享内存如何实现,大概说了一下。
84. 共享内存实现的具体步骤。
85. cgroup在linux的具体实现。
86. Java的集合类哪些是线程安全
87. MySQL索引的实现,innodb的索引,b+树索引是怎么实现的。
88. MySQL的事务隔离级别,分别解决什么问题。
89.如果Redis有1亿个key,使用keys命令是否会影响线上服务。
90.Redis的持久化方式,aod和rdb,具体怎么实现。
91. Redis的list是怎么实现的。
92. sortedset怎么实现的,skiplist的数据结构。
93. 写层序遍历。
94. 写一个插入树节点到一颗排序树的插入方法。
95. 一个有向图用邻接矩阵表示,并且是有权图,怎么判断图中有没有环。
96. 一个二叉树,找到二叉树中最长的一条路径。
97. 操作系统的死锁必要条件,如何避免死锁。
98. 写一个LRU的缓存,需要完成超时淘汰和LRU淘汰。
99. 朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度,过程。
😎楼主是猿辅导基础研发部门的一名程序媛,2022届秋招即将开始了,希望为我们部门疯狂揽一波人才,同时也帮助各位学弟学妹们快速投递自己心仪的岗位,欢迎各位同学找我内推~
内推码:AGvxe
可内推岗位(研发类岗位年包更香哦!):
http://hr.yuanfudao.com/campus_apply/fenbi/28/#/jobs?zhineng=67596&page=1
1.登陆官网直接投递
2.也可将简历发邮件至lilanxinbj@yuanfudao.com,邮件内容需包括:姓名+毕业学校+岗位名称+简历。
工作时间早十晚七,不加班!周末双休!!
免费健身房、游泳馆
公司扁平化管理,无title
校招生专属“新牛、半圆”计划,带你从小白到大神
每年7200旅游补贴(按月发放)+每月120团建费