共计 2785 个字符,预计需要花费 7 分钟才能阅读完成。
自己 3 年开发教训、去年年底开始筹备跳槽找工作,做足了充沛的筹备,在五月份开始找工作,一开始也是到处碰壁,终于在七月初拿到了百度的 offer!面试了很多家公司,感觉大部分公司考查的点都差不多,所以将本人的心得记下来,心愿能给正在找或者筹备找工作的敌人提供一点帮忙。
作为浏览福利,我也把本人的复习资料整顿了一下,蕴含各个大厂的面试真题 + 高频面试题,须要的可【点击此处】支付
一面
我的项目:
1、找一个我的项目,介绍下状况。其中遇到了什么问题,每种问题怎么样的解决方案。
算法题:
2、一个排好序的数组,找出两数之和为 m 的所有组合
3、自然数序列,找出任意间断之和等于 n 的所有子序列
数据结构:
4、从数据库查出一个数据后果集,其中有一个工夫字段,请用一个数据结构存储使得能够最疾速的查出某个时间段内的记录。
5、上一题我提到了 B + 树,他就持续问了为何用 B + 树实现索引而不必二叉树
数据库:
6、说说 Oracle 数据库的事务隔离级别,以及遇到的相干问题
这个我说了规范的四种级别,Oracle 实现的三种级别,并概述了下多版本读一致性
我的项目相干技术:
7、看到简历上写了个 rpc,讲讲,我说了跟 rmi 比拟像,说了异同点,而后又开展到内存调配的问题,不过没搞懂他到底要说什么。还问题 java 客户端跟 c 程序服务端的通信状况,比如说 c 那边间接一个构造体过去,怎么解决,答曰没遇到过。
8、简历上写的 jvm 性能调优,说说都做了什么事件
9、说到 jvm 的时候,说到了咱们用 windows 开发,就问 linux 的脚本晓得么,awk 用过么
10、简历上写 web 框架开发保护,就问浏览器端跟服务器端如何通信,不过最初只落到了 java 对象如何传递到客户端,客户端数据如何传递到服务端。
java 根底:
11、并发同步的问题,synchorized 是如何应用,Object 的 wait、notify 办法什么作用
框架:
12、是否理解 spring,ioc 的实现,aop 的实现计划,各种计划有什么限度
二面
我的项目:
1、介绍下你做的我的项目,略微高层次一些的介绍下,意思是不要没完没了的介绍
其中提到了主实例集群节点与主实例备用节点的单例状态如何放弃同步
2、rpc 通信和 rmi 区别
3、并发拜访同一条数据的时候,如何保证数据同步。
4、网站性能优化都做了什么,具体的?ETag、Last-Modified、Expires、Cache-Control
5、最近看什么书,印象最粗浅的是什么?
算法:
6、二叉树,找两个节点的最底层的公共父节点,给思路
7、单向链表反转,写代码
三面(就记了这么多)
自我介绍:
1、集体根本状况,顺便提到我的项目,就开始扯了几下
数据库:
2、数据库性能优化有做么?做了些什么?
设计:
3、设计一个小商店进销存零碎的的表结构设计,老板每天要晓得卖出的货物,要定期查看货物的老本、销售额和利润。
这里要留神,重点之一是如何进行成本计算,要晓得成本计算的几种办法,选其中一种实现,这个会影响表构造的设计
算法:
4、1 到 1 亿的自然数,求所有数的拆分后的数字之和,如 286 拆分成 2、8、6,如 1 到 11 拆分后的数字之和 => 1 + … + 9 + 1 + 0 + 1 + 1。
之前去百度面试,整顿了一下面试问题。没有口试,间接和面试官交谈。感觉面试官人挺好的,挺有急躁,每次面试回来不管公司大小,不论能不能拿到 offer,但根本都能有一些有价值的输出,还挺开心的。我尽管有 4 年工作教训,然而不是走纯技术系的,开发,保护,见客户,项目管理什么都干过,最近想换工作,粪发图强恶补算法,数据结构一类大公司特爱考的基础知识。
这次后几道题答的不好。尤其是有一个对于服务器 session 优化和数据库表程度拆分策略的,没说到点儿上,回来的路上有了点儿思路,回来百度一下,发现八九不离十。后面几个算法的也都是磕磕碰碰,好歹都说上来了,是不是最优的就不好说了。
以前做信息系统,更重视业务的获取与性能的实现,尽管所有人都喊性能、架构什么的,然而实际上没人在乎。反正撑死了也就那么点儿人用。互联网公司真的是不一样啊,对并发和大数据量的关注是深入骨髓的。感觉真是羞愧。尽管这几年跑客户谈需要讲 ppt 自夸也是混局面的,然而从心里心愿本人在技术上也能再往前走一步。
总结
依据记忆整顿如下:
- 有一个汇合 a,外面有 n 个正整数,乱序排列。给定一个正整数 N,求,a 中任意两个数相加等于 N,共有哪些种组合状况。例如,汇合为 {1,3,44,2,4,5,54,222,368} N=6, 则后果集为 {1,5},{2,4}
- 这个题网上有相似的
- Treemap 的实现。
- 各种汇合类的构造和优缺点,大家都挺爱考的。以前做行业信息化,没什么感觉,然而如果很在意性能,搞清楚还是挺有用的。
3. 有两个很大的文件,每个文件中都有 1 亿行,每行一个整数。问这两个汇合的交加是什么。给定的前提是机器内存不足以齐全装入任意一个文件。
- 这个简直是网上的原题了
4. 堆和栈的定义,堆和栈外面的对象,哪个运行速度快。
- 还问了一些衍生的问题,记不清了,只有看清楚 java 教材对于这方面的介绍足矣
5. 为了实现一个折线图,须要将数据存入一种数据结构,折线图横坐标是工夫,纵坐标是值,常常的查问是按时间段进行查问,如 select value from t where begin>’20110101’and end<’20111212’, 问,应用 java 中的那种数据结构比拟好。
- 还是考 java 中的各种汇合类,实质上是问各种数据结构在程序 / 随机的读取 / 插入上的效率
- 数据库的索引通常用什么数据结构实现?为什么用这种数据结构。
- 就晓得是 btree,然而 btree 是咋回事,为啥不能用其余 tree 或者别的构造,这个看过一篇帖子当前才明确。算是学习了。
7. 如果数据库中有 2 个表,表 a 字段为姓名、年龄,表 b 字段为姓名、单位。当初应用姓名字段做 left join 查问,假如姓名字段都有索引了。问数据库是怎么实现的。如果把这两个表看为在内存中的数组,要本人实现 left join,怎么实现?
- 面试官看我切实不晓得数据库里 leftjoin 怎么实现的,就让我本人实现一个内存中的,勉强答出来了吧,然而可能不太好。
8. 数据库各种事务隔离级别
- 这个是纯不记得了,以前工作中素来用不到,真是汗颜
- wait() 办法和 notify() 办法干什么用的,wait() 办法有什么应用限度,是哪儿都能用么?
- 对于一个从来不用多线程的人,这么简略的问题也变得有点儿难。只晓得干什么用的,不晓得有什么限度
- 数据库中有一个表有上亿的数据量,怎么优化?
- 次要是拆分,除了按业务拆分外,还有什么从技术角度的,可扩展性好的程度拆分形式
- 思路是拆没错,然而面试官问的不是业务拆分策略,而是从技术上思考。还得思考扩展性,比方拆好当前,数据量增长迅速,又要拆了,怎么办。这个程度拆分策略有好多,网上能搜到。然而我说的都不是很有体系,以前没弄过,都是现场想。。