分享些面经回馈牛油(PHP研发工程师/Java研发工程师)
下面分享面经
oppo(现场面2技术 1hr)PHP开发
一面
二面
中兴(专业面试 综合面试)java开发
笔试
编程题:
1.二重背包问题。
一面
半小时聊项目 十几分钟聊天 数据库视图解释远景(2技术 1hr)java开发
一面
1. 自我介绍
2. 项目介绍
3. JVM模型?
4. JVM如何调优,有哪些监控工具?
5. HashMap查找原理?
6.自己如何设计一个HashMap?
7. ArrayList与LinkedList区别?使用场景?
8.ArrayList如何优化(知道数据数量情况下)?
9. 线程和进程区别?
二面
猿辅导(2技术)java开发
一面1.项目介绍
2.int与Integer区别,给数量庞大的数字使用Integer创建是否会对重复数字创建新对象?
3.java垃圾回收算法有哪些,现在商用主要使用哪种回收算法?
4.算法:二叉树打印所有和为某值的路径。
1.自我介绍
2.谈谈对staic认识,有什么好处和缺点?
3.谈谈线程池,核心线程数和最大线程数分别指什么?
4.什么情况下会使用多线程?
5.如何保证多线程工作时变量的一致性?
5.锁有哪些类型?
6.sychronized属于乐观锁还是悲观锁?实现原理是什么?属于对象层面线程还是进程层面?
7.Lock与sychronized区别?
8.什么是死锁?
9.是否了解原子类?
10.什么是CAS?原理是什么?
11.算法:实现CAS
优化:如何解决ABA现象
流利说(电话面)java开发
一面1.同步和异步概念
2.swoole特性
3.redis项目中作用
4.redis数据结构有哪些
5.redis订阅发布功能
6.Mysql索引作用,底层实现
7.post与get区别
8.http基于什么传输层协议实现的?一次http连接成功后断开重新进行第二次http连接是否需要重新tcp连接。
9.https实现,ca证书作用
10.对称加密与非对称加密
11.链表是否有环,若有环如何求环长度
疯狂游戏(电话面)java开发
一面1.java线程池?
2.Nosql使用
3.手写观察者模式
4.解释观察者模式工作原理
4.是否了解ES6,webpack,vue等?
5.项目介绍?
贝壳(现场面2技术 1hr)PHP开发
一面星环科技(电话面)java开发
一面1.项目介绍
2.数组与链表区别
3.快排时间复杂度,堆排时间复杂度,快排空间复杂度(递归实现),堆排序空间复杂度。快排原理?堆排原理?
4.建堆的时间复杂度?
5.JVM的GC机制?是否碰到过由于GC导致问题。
6.Java异常种类?
7.工厂模式,使用场景?***模式?单例模式?
8.是否使用过数据库事务?ACID指什么?
9.隔离级别?分别含义?
10.是否了解过大数据相关知识?
11.业务介绍。
百度(不知道哪个部门)PHP开发
1.http1.0,http1.1,http2.0
2.协程原理,用户态还是和心态
3.分布式一致性如何保证,存在延迟不一致如何处理,数据延迟如何处理。
百度(百度云3技术)PHP开发
1.项目 自我介绍介绍
2.Java中的final的用法
3.JVM结构
4.java写程序如何进行异常处理
5.当异常抛出到最上层需要如何处理
6.描述堆的结构
7.堆排序实现策略
8.比较快排和堆排序时间复杂度最好最坏情况,空间复杂度。
9.Linux基本命令是否熟悉
10.log目录中有大量log文件,找出最近10天内未访问的文件。
11.系统cpu使用压力过高,如何排查或哪些进程造成原因。Top能检查到哪些关键参数。如何按照进程使用内存或cpu占用时间进行排序。
12.有无遇到自己写的程序造成内存占用过高情况。
13.从一台server访问另一台server出现unreachabel报错如何排查网络那个部分出现错误。
14.TCP与UDP区别
15.UDP使用场景(计算机系统中使用UDP),在什么情况下优先考虑使用UDP。
16.协程有无了解,实现原理,处理网络连接有什么优势。Java开发过程是否用到。
1.用什么命令查文件中关键字,大小写是否敏感,如何查找某个范围
2.前中后序遍历二叉树,非递归中序遍历
3.http请求方式,get,post,head有什么区别
1.项目
百度(不知道哪个部门,1面挂)PHP开发
2.编码:数组实现队列,用最小时间复杂度获得当前队列中最大值
3.500w个手机号和用户信息,如何设计数据库存储
4.10亿个数,机器内存512m,如何找所有重复整数
5.各种排序算法在哪些场景使用,如归并排序,快排,冒泡排序
6.是否了解大小端,代码如何实现大小端
阿里(新零售2技术)java开发
1.自我介绍
2.项目介绍,难点,挑战,职责,核心技术(3个)
3.链表和数组区别。
4.两个链表判断是否相交。
5.线程池。
6.排序算法有哪些,一般怎么选择。
7.一个文件有许多英文单词,如何统计出现频率最高前10个。
8.b 树是什么。
9.线程进程区别。
10.线程池概念。
11.是否有发表论文。
1.java里list,set,map,hashmap区别,使用场景
2.String,StringBuffer,StringBuilder区别
3.如何在大数组中找到从小到大第一亿个
4. thread local是什么,如何使用
5.csrf原理
6.servlet生命周期
7.Spring的AOP原理
8. JVM的GC算法有哪些
9.cpu占用过高排查思路(使用哪些命令)
10.线程池
ihandy(1技术)java开发
1.自我介绍
2.项目介绍
3.项目2
4.谈谈对redis的了解
5.redis单线程如何保证高效?I/O多路复用有哪些方法,使用过哪种?
6.php有无实现I/O多路复用的方法?java下是否有?
7.WebSocket内容?属于哪一层?基于什么实现的?
8.TCP在哪一层?OSI五层分别是哪些?各层功能是什么?都有哪些协议?
9.访问百度过程中各层做了什么?
10.2核cpu4g内存使用redis最大QPS是多少?
11.进程间通信方式?共享存储如何实现?
12.进程和线程有什么区别?
13.I/O多路复用,线程,进程间有什么关系?
14.select工作机制?针对进程还是线程?
15.算法:无序数组找出前k大方法,时间复杂度?为什么是这样的时间复杂度?有无其它方法?计数排序空间复杂度有无办法优化?
16.1t文件中每行存一个单词,使用内存为256M的机器如何统计频率最高的10个词?
17.最近遇到什么挫折?
18.未来发展方向?
19.用3个词形容自己优点?3个词形容自己缺点?
20.有无实习意向?
bigo(1技术)java开发
2.内存管理方法有哪些?空闲地址链表概念?
3.段式,页式,段页式含义及优缺点?
4.页面置换算法有哪些?LRU如何实现?
5.怎么理解线程和进程,它们之间的关系?
6.多线程如何保证线程安全?
7.线程安全实现的其他方法?
8.sychnized是否是可重入锁?
9.一般在什么情况下使用锁?
10.读操作是否需要上锁?如何实现?
11.乐观锁悲观锁概念?
12.有无一种机制读时不上锁,写时上锁?
13.生产者消费者模型?如何用java去实现生产者和消费者?
14.select和epoll的区别?epoll如何实现不轮询方式?
15.线程状态有哪些?创建一个线程后进入什么状态?创建完线程后如何调用线程?什么情况下会进入block状态?
系统调度获取cpu时间片
16.描述一种死锁的场景?死锁的本质?
17.java数据结构了解哪些?Map使用hashmap还是hashtable多些,二者有什么区别,针对增删改查哪种效率高?
18.是否知道哈希冲突如何解决?java里hashmap冲突用哪种方法解决?
19.concurrenthashmap与hashtable区别?
20.链表数组优劣,使用场景?
21.什么时候会使用堆栈?
22.了解哪些树?二叉平衡树概念?二叉搜索树?二叉排序树?二叉平衡树基于什么衍生出来?二叉排序树缺点?
23.数据库什么是外键?
24.索引概念,主要作用?如何实现加速查询?
25.TCP三次握手过程?传输过程中如何做流量控制?扩大窗口缩小窗口机制?
26.TCP与UDP区别?使用场景?
27.如何可靠化UDP?
28.个人爱好?访问哪些技术网站?自己是否有写博文?
shopee(2技术 1hr)java开发
1.代码:“1223345677881”,字符串去重?时间复杂度?
2.浏览页面过程client和server做了什么?
3.Accept发生在TCP三次握手的哪个阶段?connect,listen函数?
4.Http常见的状态码?
5.项目问答?
6.redis数据类型有哪些?应用?
7.有序集合底层实现?跳表如何实现?做了哪些优化?
8.图遍历方法?分别解释如何遍历。
9.PHP解析整体流程,如何进行性能优化?
10.解释swoole。
11.了解或使用过哪些锁?
12.死锁含义?何时会发生死锁?如何避免死锁?
13.看什么技术方面书?
2.手写代码图广度优先遍历
3.手写代码二叉树广度优先遍历(限时7min)
4.介绍Java常用机制了解哪些,简单介绍。
5.Http常见状态码及含义
6.从文件打开到编辑代码并执行操作系统做了哪些事
OS启动核心进程,创建子进程后获取CPU时间片,通过查询文件并执行os的I/O操作打开文件进行编辑后编译执行,最后执行I/O操作输出执行结果。
7.数据库事务ACID指什么,含义?
8.性格优缺点
浦发(1技术)java开发
美团(2技术)java开发
总结/个人感悟