北京六天十次面试,已拿到offer,面试题和总结分享(Java岗)

简介: 前言:最近一朋友离了职,在北京前前后后面试了6天,一共10家公司,我找他分享出面试过程及经验,希望能对各位正在面试中或者准备面试的童鞋有所帮助,以下面试企业为了保密不说实际名称。以下为第一人称。第一家公司:简称A 由于刚刚开始面试选择试试水,就在智联上投递了一写公司,这家就是第一个让我去面试的公司。

前言:
最近一朋友离了职,在北京前前后后面试了6天,一共10家公司,我找他分享出面试过程及经验,希望能对各位正在面试中或者准备面试的童鞋有所帮助,以下面试企业为了保密不说实际名称。以下为第一人称。

第一家公司:简称A 
由于刚刚开始面试选择试试水,就在智联上投递了一写公司,这家就是第一个让我去面试的公司。这家企业是新三板上市的一家公司,大约有700人那样。面试时间定在早上10点,去了以后给了一份面试题
内容如下:
一、Spring
1.请说明spring实现AOP的两种方式及其区别
2.请说明Spring生命周期中的可扩展接口及其定义的方法,如FactoryBean.
3.请简述Spring Cloud的名个组件及其功能。
二、MyBatis
4.请说明MyBatis中DAO接口的实现机制。
5.现在需要增加一个计算SQL执行时间的插件,请简述该插件的实现原理与方式。
三、前端
6.请简述Prototype的应用场景及其基本用法。
7.请简述Promise的应用场景及基本用法。
四、分布式及中间件
8.请简述CAP理论。
9.请简述Redis 2.X实现高可用的方法及如何水平扩展。
10.请列举常用的消息中间件及其特点。
11.请简述HBase的基本概念、应用场景及其与关系型数据库的区别。
五、Java
12.请简述Sring.intern()方法。
13.请简述jdk的类加载机制、ClassLoader及双亲委派模型。
14.请说明Executor、ExecutorService、Executors、ThreadPoolExecutor之间的关系。15.请简述Java并发编程中,锁的几种类型。
16.请说明CountDownLatch、CyclicBarrier、Semaphore的适用场景。
17.请说明ConcurrentHashMap在1.7 和1.8中实现的不同之处。
18.请简述volatile关键字的含义、JMM内存模型及happens-before原则。
六、设计19.请简述Observer模式及其在JDK中的应用。
20.请给出一个分布式网络爬虫的设计架构,支持每天G级的爬取数据量。
然后hr一会告诉我笔试不过,无法进入面试。这个还是很难受的。因为在面试过程中不管如何都会和面试官聊下,起码知道哪些题不对,也可能是我自己准备不充分导致,第一次面试就这样草草结束。
第二家公司:简称B
这家公司规模很小,大约就50人吧,是boss直聘上一个hr主动联系让去试试,所以就去,对于这家企业还是信心满满的,想找点自信,结果恰恰相反。
去了以后也没面试题,写了一个登记之后hr就让我和面试官聊天,首先让我把项目流程介绍一下,我说了以后。他说我看了你的github代码感觉还不错,你给我show一段。有点懵逼,猛下这么说出乎我的意料,我就说写个2分查找吧,就随手写了一个但是我竟然犯了一个致命错误,返回值有些问题写成null,但是明显我采用的是int而不是integer。
然后接着问我web前端遇到过什么问题没有,我说平时这方面遇到问题倒不是太多,他说好你给我写个过滤器,这个实在是没法写出来,平时可能都是电脑写,足以说明我准备的确实不充分,后来又让我写个sql,虽然最终写出来了但是时间过久。然后聊点其他的就说你回去吧,后续通知,我就知道这次面试再次挂了。心情低落极点了。
第三家公司:简称C
这家企业规模还不错,有上千人吧,环境也可以,是拉钩上看到的一家企业。也是10点面试,去了给了一个面试题,一份心理测试题,面试题难度还是有点的,10道选择题考察知识多少final,static,do which等知识难度倒是一般,后面是大题,比如写出ssh的配置 ,数据库连接池配置,thread和runnable是什么区别,写几种单利模式,Linux一些查找命令,一个复杂的sql语句。Linux我不太熟悉,没写出来,ssh配置这个平时看的也是,写的很一般,数据库连接池配置写的也一般。
然后是心理测试,这个测试题非常多而且考察东西也多,包括一些国外的名人问他干嘛的,设计怎么让北京三环不堵车,还有怎么设计类似摩托车但是不耗油等等吧,答完题大约11点半,然后第一面竟然是hr,聊了还不少,关于为啥跳槽,发展方向,以前做啥等。第二面大约就几分钟,问我会Linux不,我说不怎么会,以前你干嘛的然后就说你回去吧我们后续通知。基本也挂了。

第四家公司:简称D
从第四家公司开始变得顺利,连续过了6家公司。经过前3家失败,我回去总结下,把基础知识复习一下,避免死在这样的问题上。这家企业大约300人,一家传统的公司,主要大数据方面的。去了也是一份面试题,这个面试题对我来说比较简单,选择题就不题了,大题是三个一个问什么是ioc和aop,一个是设计模式,一个是sql。
大约半小时就写好了,然后面试官看了一眼面试题也没问面试题上问题,问我你说咱们聊什么知识,我就说多线程吧,然后他问我Java线程池几种方式,我回答4种,各位自己查哪几种,然后又聊thread和runnable,接着问hashtable和ConcurrentHashMap,因为看过这两个的源码所以回答还是挺轻松的。陆陆续续问了一些线程安全问题,最后又聊了一些存储过程知识,这个平时用的少回答的一般,但是我观点是尽量少用存储过程,避免把大量业务放在数据库处理。
还问了一些数据库索引设计问题,这个我会,所以答的也可以。最后问下我薪水我说最低多少,就开始二面了。二面是一个不是Java的,是这整个团队的组长,主要问了一些如何处理几亿日志查询,我说可以采用存储过程还有内存数据库什么的,她说不是好的方案,接着我问你们有什么好的方案,她说我们暂时没有,用的就是你刚刚说的。总体还是挺满意的然后问我薪水,让我等下说让总监决定我的薪水,然后总监不在,这个确实不在,他领着我去人事那边做个登记说明天给电话来复试。
大约2天后打电话让去复试,因为我手里有offer了就给hr说了情况,我说你问下,如果薪水不到,我就不去了。后来hr回复他们确实给不了,我说那就算了。这家公司是好的开头,整个信心提升了好多。
第五家公司:简称E
这家企业大约700人,300多个研发,办公环境倒是一般,下午2点过去的,也没有面试题,主要问线程知识,然后问我你熟悉哪个数据结构说个,然后我随便说了几个他说可以,又问我要多少薪水,最低多少我说了下他说没问题,就让我去二面了。
二面问的是数据库,线程方面知识,我感觉答的倒是一般,大约聊了半个小时,然后说我们今天就聊到这,然后我就回去准备下一家,然后回来路上一面就给我打电话说你面试通过了,薪水按照你说的来,问我啥时候入职我说下周,他说尽快,最后hr也给我说了薪水,过了一天就发了offer,这家公司感觉还行吧,最后只是感觉挺对不起hr的,答应去没去,打电话时候明显生气了。
第六家公司:简称F
这家公司规模还不错,可能有些买水果支付钱的时候还用到,但是总部在上海,北京新成立不久。这家没面试题,主要是针对项目,问我遇到过什么问题,为什么这么设计,好处在哪里,我都一一解答了,聊得时间蛮久的,最后他说他们加班可能会少,团队目前就5个人,问我能否接受,然后又说自己公司很有前景什么的一堆,我个人不喜欢这样小团队,坑太多就说我回去考虑下给你打电话,当然薪水他也说可以按照我要的来。因为不喜欢这样环境所以也没打电话给他。

第七家公司:简称G
这个公司可以算是3线互联网了,小有名气,规模也比较大,当时是很想拿下的,下午2点过去的,不过面试的还挺多的,就我那一屋子就3个人,面试题是一个小时,第一题主要是针对目前流行的一些技术,让解释下。
我大约搞定了80%,因为平时看的多,但是也很多只是知道存在并不知道用法,第二题是一个排序,我写了一个快排,第三题是求一个数的质数第四题是二叉树(个人觉得出的有问题我后来问题这个题意义是什么他说考察一下是否会写递归)第五题是设计题我参考了一下集合方面的设计,采用接口+抽象类+类这种方式。最后是一个排序,我没有多少思路。
面试时候可能人多直接由技术总监面试,技术考察点倒不是很多,着重考察个人,问你如何展开工作,你是什么样的人等等我回答的还可以,然后他说你的薪水多少我说下,然后他签字说去找hr吧。这家过的很轻松。
hr给的薪水明显低些,但是他们4个月奖金,3个月一发,考核是0.8到1.2基点。offer合同也有写,应该比嘴上说我们几个月年终奖靠谱多了。这家企业我犹豫了好久,因为后面我成功面试了另外一家,这家技术总监给我打电话聊了有半小时说了一下他们的前景而且薪水会加到比我拿到的只多不少,hr后来打电话也确认了这件事。
在后来属于我的直属上司又打电话和我聊聊,不过说实话挺感动,我说我们加微信吧,以后有机会再合作,因为互联网圈子很小。
第八家公司:简称H
这家企业规模还挺大,让写一个心理测试题,主要是php开发,根本就没有Java开发,主要想招几个人做一些项目维护,来了一个面试还挺帅的,主要就问项目,没什么具体技术点,就是我们相互吹吹牛逼,他吹完我在吹,然后说小伙子很不错,要不要考虑来啊,我说这个压力山大啊,你容我考虑考虑就回去了,反正我肯定不想在这样环境工作,很苦逼。
第九家公司:简称I
这家公司知名度挺大的,估计大家也都知道。下午本来约好是4点面试,但是我中间有事迟到了,4点半过去的。第一面的面试官很nice,感觉人特别的好,也很随和,生活中是值得交的朋友。第一个问题问我什么事面向对象,反正我回答滔滔不绝。
第二个问了hashtable相关的知识这个我也会接着我们又聊聊volatile,我又说了Java内存模型,后来让写个算法,写的不太好,他说没关系,我只是想看看你的代码风格。然后又让写个sql,我随手就写出来,然后他说你在写个那个有点复杂没写出来,他说没关系,这个不是面试的范畴,有点难为你了,这个不算啊,不要在意。
后来我记得还问了数据库索引方面知识,最后告诉我你的一面过了,你等下一面吧(反正这个面试官给了我很深的印象,人确实不错)。
二面主要考查的是项目,主要问了我最后一个项目包括很多细节,如何优化的并且画图,同样也让写个算法,不过比较好的是让伪代码就行,所以我还是写出来了,不过又问有没有更好的方式,我想了想说目前我也没更好的方式了。(遇到算法题哪怕在复杂只要实现就写,能写出来比不会写强很多)整个面试还是围绕项目展开的。
后来面试结束他说整体还可以,某些细节没答出来,但是整个思路都是对的,那时候都7点多了,问我明天再来一次复试怎么样,我说我只有上午有时间,下午我有面试。他说你等下我去找老板(就是他的领导),然后展开三面,三面上来问了一下整个项目的流程我再次解释并画图,然后聊天过程核心还是团队协作问题,如何和产品经理沟通,还有一个如果你是组长你会怎么样做,侧重管理能力,因为我在第二段工作做过类似所以回答起来还是很轻松,其实和产品沟通,研发沟通最主要是换位思考,懂的尊重别人。
面试完毕都快9点了,他说hr肯定面不了了,你明天还要不要在来一次,我说明天下午有面试来不了,他说那没事我让她电话联系你,我说薪水我要多少合适啊,他说你随便,我说我有offer了说下offer薪水,他说你可以提,我们这边会给你一个考核的。
最后走的时候说你明天和hr聊天注意点说话不要被刷了,尽量不要说你领导过多好话。反正意思保持中立。前前后后到发offer用了2天时间,hr确实也没问薪水问题直接他们评定的。我觉得挺理想的。
第十家公司:简称J
这家同样是大企业,名气也不小。由同事内推过去的。面试的人简直了实在太多了,感觉所有面试加起来100人都不止,去了也没笔试题,一面就问我几个问题,一个是二叉树的顺序排序,会先跟,后跟,中跟就是不会顺序,尴尬了。
第二个让写一个单例模式,写了一个内部类。第三个问题问了hashMap的<操作,我回答的不算好,主要考查源码的,然后让我写个归并排序,这个同样写不出来,连续几个就知道完蛋,肯定不过。果真不过,然后问我面试怎么样我说还行拿到几个offer,他说恭喜之类的话就让回去了。

总结:
整个面试下来,觉得面试也有运气成分,但是更多是实力体现,我们不要抱着侥幸的心理,把基础打杂事,注意说话的方法,一定洋溢着自信。
1、诚恳
注意一点是当面试官问你你有什么想问他的不,把握好机会,也会可以逆转局势。你可以问他需要什么样人然后定位自己看看自己是不是,说到底面试的人想要招人过去,记得一定要诚恳。
2、不说大话
不要说什么大话,什么我精通多线程之类的。就说你自己性格特点能做什么样事,也许面试官会给你一个机会。
3、面前准备
还有就是面试之前记得准备充分,关于是否要看面试题,如果可以还是要看一下,注意一下问题的细节,为自己创造多一点机会。
4、面后总结
还有就是面试完毕之后进行总结,千万失败否定自己垂头丧气。
如果感觉公司还不错,就可以踏踏实实工作,不要眼高手低,错过机会,当你实力很强的时候就是企业主动找你的时候。
最后:

更多的技术分享,尽在我的公众号:Java小朔哥

还有我把近一年经历过的面试,和一些刷过的面试题都做成了PDF,PDF都是可以免费分享给大家的,只要关注我的wx公众号:java小朔哥,就可以获取免费领取方式!

相关文章
|
3月前
|
Java 测试技术 微服务
最新技术栈下 Java 面试高频技术点实操指南详解
本指南结合最新Java技术趋势,涵盖微服务(Spring Cloud Alibaba)、响应式编程(Spring WebFlux)、容器化部署(Docker+Kubernetes)、函数式编程、性能优化及测试等核心领域。通过具体实现步骤与示例代码,深入讲解服务注册发现、配置中心、熔断限流、响应式数据库访问、JVM调优等内容。适合备战Java面试,提升实操能力,助力技术进阶。资源链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)
165 25
|
3月前
|
缓存 Java 关系型数据库
2025 年最新华为 Java 面试题及答案,全方位打造面试宝典
Java面试高频考点与实践指南(150字摘要) 本文系统梳理了Java面试核心考点,包括Java基础(数据类型、面向对象特性、常用类使用)、并发编程(线程机制、锁原理、并发容器)、JVM(内存模型、GC算法、类加载机制)、Spring框架(IoC/AOP、Bean生命周期、事务管理)、数据库(MySQL引擎、事务隔离、索引优化)及分布式(CAP理论、ID生成、Redis缓存)。同时提供华为级实战代码,涵盖Spring Cloud Alibaba微服务、Sentinel限流、Seata分布式事务,以及完整的D
191 1
|
2月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
329 0
|
3月前
|
存储 安全 Java
常见 JAVA 集合面试题整理 自用版持续更新
这是一份详尽的Java集合面试题总结,涵盖ArrayList与LinkedList、HashMap与HashTable、HashSet与TreeSet的区别,以及ConcurrentHashMap的实现原理。内容从底层数据结构、性能特点到应用场景逐一剖析,并提供代码示例便于理解。此外,还介绍了如何遍历HashMap和HashTable。无论是初学者还是进阶开发者,都能从中受益。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
202 3
|
3月前
|
存储 安全 Java
2025 最新史上最全 Java 面试题独家整理带详细答案及解析
本文从Java基础、面向对象、多线程与并发等方面详细解析常见面试题及答案,并结合实际应用帮助理解。内容涵盖基本数据类型、自动装箱拆箱、String类区别,面向对象三大特性(封装、继承、多态),线程创建与安全问题解决方法,以及集合框架如ArrayList与LinkedList的对比和HashMap工作原理。适合准备面试或深入学习Java的开发者参考。附代码获取链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
1274 48
|
3月前
|
算法 架构师 Java
Java 开发岗及 java 架构师百度校招历年经典面试题汇总
以下是百度校招Java岗位面试题精选摘要(150字): Java开发岗重点关注集合类、并发和系统设计。HashMap线程安全可通过Collections.synchronizedMap()或ConcurrentHashMap实现,后者采用分段锁提升并发性能。负载均衡算法包括轮询、加权轮询和最少连接数,一致性哈希可均匀分布请求。Redis持久化有RDB(快照恢复快)和AOF(日志更安全)两种方式。架构师岗涉及JMM内存模型、happens-before原则和无锁数据结构(基于CAS)。
105 5
|
3月前
|
Java API 微服务
2025 年 Java 校招面试全攻略:从面试心得看 Java 岗位求职技巧
《2025年Java校招最新技术要点与实操指南》 本文梳理了2025年Java校招的核心技术栈,并提供了可直接运行的代码实例。重点技术包括: Java 17+新特性(Record类、Sealed类等) Spring Boot 3+WebFlux响应式编程 微服务架构与Spring Cloud组件 Docker容器化部署 Redis缓存集成 OpenAI API调用 通过实际代码演示了如何应用这些技术,如Java 17的Record类简化POJO、WebFlux构建响应式API、Docker容器化部署。
135 5
|
3月前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
191 6
|
3月前
|
安全 Java API
2025 年 Java 校招面试常见问题及详细答案汇总
本资料涵盖Java校招常见面试题,包括Java基础、并发编程、JVM、Spring框架、分布式与微服务等核心知识点,并提供详细解析与实操代码,助力2025校招备战。
183 1
|
3月前
|
算法 Java 微服务
2025 年 Java 面试宝典社招春招秋招实操全方位攻略
2025年Java面试宝典涵盖核心技术及最新趋势,分为四大板块:1. Java基础:深入数据类型、多态等特性,结合学生信息管理等实例;2. JVM核心:解析内存模型与GC算法,附多线程转账等场景应用;3. 高并发方案:详解synchronized与线程池配置,提供Web服务器优化案例;4. Spring生态:剖析IoC/AOP原理,演示微服务架构实现。特别新增Java 17+特性实操,包括Record类、密封接口等语法糖,整合Spring Boot 3、响应式编程及云原生技术,通过订单状态机、API网关配置。
244 1