个人近期面试情况

今年二月以来,我的面试除了一个用友的,基本其他都被毙了,可以说是非常残酷的。其中有很多自己觉得还面的不错的岗位,比如百度、跟谁学、好未来等公司。说实话,打击比较大。

情况基本上是从三月开始好起来的,这个时间点,可能疫情快过去了,国家也开启了接近40万亿的基础建设计划,在这个时间段,面试的几个代表性的公司,包括腾讯、饿了么、宝宝树、旷世科技等等,基本都成了。

最终,就在前段时间,蚂蚁金服给我确认了p7的职位。也算自己到了另一个奋斗的阶段了。对自己的经历,做一个面试总结。

我的面试准备

面试其实我是属于一边面试,一边准备的过程,但是无论如何,一定要做到基础扎实、比较好的自我介绍,以及描述自己的职业故事。

面试经历

快手 -- 视频面试30分钟

  • 谈一下项目
  • 谈一下对IOC和AOP的理解
  • Memchached 和 Redis 的区别
  • Redis的持久化实现
  • Redis的淘汰策略
  • 定期删除和惰性删除的区别、优缺点
  • IOC的原理是什么
  • Hashmap的底层实现和原理
  • 手写一个,实现map的put方法

百度 -- 视频面试20分钟

  • 说下spring事务,@Transition 这个注解在哪些情况下不会生效
  • Synchronized 基本原理
  • Synchronized和ReentrantLock 都是可重入锁,他们俩是怎么实现可重入的
  • 线程池的工作原理和7个参数
  • Volatile的用处
  • JVM在什么情况下会发生YoungGC和FullGC
  • Redis的淘汰机制
  • 类加载机制说一下
  • 快速排序的基本实现
  • Mysql优化是怎么优化的,索引失效的情况都有哪些
  • 实现一个抢红包的算法,怎么实现
  • 让你实现一个LRU算法,怎么实现

搜狐一面 -- 视频面试 50分钟

  • JVM垃圾回收机制
  • 怎么判断当前对象能否被回收
  • 对象首次创建的话创建在哪个区(新生代还是老年代,新生代哪个区)
  • 解释一下stop the world
  • Stop the world 过程中,如果有新的垃圾产生怎么办
  • 我说我们项目用的是JDK1.6,面试官就问,1.8和1.6都有哪些区别
  • 有了解过1.8的stream流吗
  • HashMap1.8和1.8之前的区别,以及底层实现
  • HashMap为什么不是线程安全的
  • HashMap还会造成什么问题(1.8之前头插法会导致死循环)
  • 实现HashMap线程安全的有哪些(我答了三种)
  • CurrentHashMap的底层原理,以及1.8和之前的区别
  • 详细讲讲CAS的工作原理
  • CAS的ABA问题怎么解决的
  • 你常用的线程池有哪些
  • 线程池的7个参数
  • SingleThreadExecutor和CachedThreadPool为什么不推荐使用,会出现哪些问题
  • 写一个冒泡排序
  • 写一个算法,快乐数(LeetCode原题),我一开始用递归写,会出现死循环的状态,面试官超好提醒我,然后花了很长时间修改算法,通过
  • Mybatis有了解它的插件吗
  • MybatisTemplate 有了解吗
  • Redis的五个参数
  • Redis的事务,我Muliti事务开始,然后写了五个key,其中有一个失败了,Redis怎么处理的,会回滚吗
  • Redis事务和Mybatis事务有什么区别
  • Redis主从复制了解吗
  • Redis主服务器是怎么给从服务器写入数据的
  • 看你还了解Docker,(简单说了一下玩过一点点)

蚂蚁金服(支付宝)一面 -- 视频面试 50分钟

  • 聊了十多分钟做的项目
  • 你们公司自研的Spring和市面上流行的Spring有什么不一样
  • Redis主要用来干嘛的
  • Redis的持久化方式
  • Redis的事务有了解吗(我说了使用的基本命令和mybatis、mysql的区别)
  • 你对你们经常使用的集合底层有了解吗
  • HashMap的底层原理,1.8以及之前的,线程安全实现方式
  • Sychonized和ReentrantLock 的区别
  • Volatile的作用是什么
  • 对JVM垃圾回收器有了解吗
  • CMS垃圾回收器说一下工作原理
  • 堆和栈的区别
  • JVM的调优
  • try{}catch{}finally{}中,如果finally{}中的返回值+1,返回的是多少,会改变返回结果吗
  • 线程池有了解吗,它的工作原理
  • 固定长度的线程池有什么缺点
  • Mysql和Oracle你用的最大的区别是什么(我说了两者的事务隔离级别,以及mysql中的Explain和oracle当中的Explain plan for的区别)
  • Mysql的聚簇索引和非聚簇索引有了解吗
  • 看你做过Sql优化,讲讲你做了哪些优化
  • Mysql回表知道是什么吗
  • SpringMVC的工作流程是什么
  • 一道简单的算法题,反转链表,我说这题我前段时间专门leetcode上练过,我算法不好,这段时间主要是复习基础了,面试官夸我基础很扎实,应该二面稳了,面试体检极佳

蚂蚁金服(支付宝)二面 -- 视频面试 40分钟

  • 是个小姐姐程序员,聊了聊项目
  • 问了下我们公司现在项目用到的技术栈
  • 和一面一样问了下我们公司自研的Spring有哪些不一样
  • 同样讲了讲oracle和mysql的区别
  • 讲讲不可重复读是什么
  • Jdk1.8有了解过CompletableFuture吗(我没有了解过,流下来没技术的眼泪)
  • 那你知道Future吗(好像是Callable的时候返回值会用到它,又流下了没技术的眼泪)
  • 写一个算法题吧,牛客网的 密码合格校验,写了十多分钟,全是靠if else解决的

    小姐姐也说,这个写的没问题,但是需要更多的考虑更好的办法,比如借助java自带的工具类等等。
  • 说一些和技术无关的,你对你自己的技术发展有什么想法(我就说,平时会多看看技术公众号,看B站学习技术,会关注很多新技术然后跟着学习,想去更大的平台通过实际场景的应用丰富自己的阅历)

美团(美团打车)一面 -- 视频面试 40分钟

  • String,StringBuild,StringBuff的区别
  • StringBuff为什么是线程安全的
  • ArrayList和LinkedList的区别是什么
  • 以上二位是线程安全的吗,怎么实现线程安全
  • Vector实现线程安全的原理是什么
  • 多线程编程中你知道哪些都是保证线程安全的
  • Volatile的底层实现是什么
  • 线程池了解吗,说说工作原理
  • 内存溢出说一下
  • 栈溢出说一下
  • 要实现一个OOM和栈溢出,怎么实现
  • 说一下你常用的垃圾回收器
  • Stop the world 解释一下
  • CMS的工作流程是什么
  • Spring中bean的作用域
  • Spring中bean的生命周期说一下
  • 说一下你在项目中遇到的印象深刻的问题是什么,有什么收获
  • Redis的持久化怎么实现的
  • 写一道编程题,leetcode 第一道经典题目--两数之和
  • 对美团打车有什么想了解的吗(问了下美团打车和滴滴高德打车的区别)

字节跳动 视频面试 -- 30分钟

  • 简单介绍了一下项目
  • HashMap介绍一下
  • 为什么要用红黑树的结构
  • 红黑树一般都会用在哪些场景中
  • Oracle的索引了解吗
  • Mysql的索引底层实现是什么
  • B+树的实现原理了解吗
  • Mysql事务特性了解吗,具体说一说
  • Mysql的事务隔离级别了解吗
  • Mysql的事务隔离级别是怎么实现的
  • 算法题:[(5,7),(1,6),(15,50),(60,90),(35,37)] 合并二元数组 输出[(1,7),(15,50),(60,90)]
  • 算法题:分层打印二叉树
  • 算法题:反转链表起网络

一般技术面到后面,面试官都是leader或者是部门老大,他们其实很关心你的职业规划、对待工作的态度、团队合作的能力、自我价值实现方面的思考,当然还有项目实现的能力,过往项目经验和深度。所以最好自己先想想怎么用简短的话表述清楚。注意围绕关键词去说。

写给看到最后码友的话

这些算是我作为过来人对于应届毕业生和刚工作不久的同学的一些小小建议吧。

(1)一定要紧跟技术前进的脚步,尤其是大数据相关的技术,在技术更迭的时候一定要学习熟悉新技术,看源码,哪怕自己在工作中用不到也一定要学。因为这是你下一份工作的敲门砖。

我作为一个老兵,在上一家公司工作4年,我没有逼迫自己学习新技术。

结果现在面试碰壁,其实大部分原因就是人家用的都是主流技术,你不会你就被淘汰。

(2)不要给自己设置舒适区,这个就是说,一个公司待久了不要懒惰,不能荒废自己,始终要保持清醒的头脑和进取心,不断学习,不断完善自己的技术,架构设计能力,项目管理能力,交付能力等。

一定要及时从项目中总结经验和不足,最好落实到日记本中,最后通过不断思考,形成自己的做事方法论。

(3)对自己的职业生涯要有一个规划,以后要做哪一块一定要有自己的想法,确定了就要从这个方向完善自己,多学多练。

目前大数据这一块,有数据中台架构的公司不是很多,除了算法岗外,大多数人在团队中都是1专多能的角色,今天干干ETL,明天搞数仓,后天又给BI出数据,可能又搞调度系统、报表系统、标签系统、反作弊平台等平台。

没有人会专一做某一块,但是自己一定要想好哪一块是自己以后要走的方向,那么这一个方向确定了就要深入的学习这一块的知识,多看源码,多做练习,如果接触到具体项目,要在项目中沉淀自己,最后形成自己的知识体系。

(4)做事情要有担当,不要根据OKR给自己设置界限,有能力有空闲多做一定要多做,这也是别人认可你的最佳途径之一。互联网圈子很小,大家认可你,以后去大厂,换个好工作,也许就更容易。

最后

在这我也分享一份大佬自己收录整理的Java学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Java开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料(主要是我把其他杂乱的不成体系的都删了~)

MySQL进阶面试突击(数据库理论+MySQL使用+MySQL底层实现)

算法与数据结构突击手册

Java核心技术笔记

Java面试神技

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

如果你有需要的话,可以帮忙点个赞

总结

文章内容中涉及到的Java面试题、源码文档,技术笔记等学习资料,均可以免费分享给大家学习,只需你动动手多多支持即可!有需要的朋友可以关注我的公众号:前程有光获取!

然后再即将到达的新年里祈愿天下和顺,日月清明。风雨以时,灾厉不起。国丰民安,兵戈无用。崇德兴仁,务修礼让。国无盗贼。无有怨枉。强不凌弱,各得其所。

粉丝投稿!从2月份的面试被拒到如今的阿里P7,说一说自己学java以来的经验!的更多相关文章

  1. [干货,阅后进BAT不是梦]面试心得与总结---阿里、小米、腾讯

    之前实习的时候就想着写一篇面经,后来忙就给忘了,现在找完工作了,也是该静下心总结一下走过的路程了,我全盘托出,奉上这篇诚意之作,希望能给未来找工作的人一点指引和总结, 也希望能使大家少走点弯路 , 如 ...

  2. 2年Java开发工作经验面试总结

    最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪 ...

  3. 分享一套主流框架源码资料,征服阿里 P7 面试必备!

    2019年已经过完一半了, 我在这里为大家准备了一份资料,征服阿里 P7 面试必备! 希望这些资料可以帮助到大家,从一个码农进阶为一个优秀的程序员,也可以帮大家提升系统实战能力. 这些资料包括: 讲解 ...

  4. 阿里P7岗位面试,面试官问我:为什么HashMap底层树化标准的元素个数是8

    前言 先声明一下,本文有点标题党了,像我这样的菜鸡何德何能去面试阿里的P7岗啊,不过,这确实是阿里p7级岗位的面试题,当然,参加面试的人不是我,而是我部门的一个大佬.他把自己的面试经验分享给了我,也让 ...

  5. 12天,这本《重学Java设计模式》PDF书籍下载量9k,新增粉丝1400人,Github上全球推荐榜!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言

  6. 多次面试被拒,‘宅家苦修’30天,终获美团offer(含字节跳动/阿里/腾讯等大厂面试题整理)

    背景:双非渣本. 今年由于疫情,上半年一直在家里.2月份本来无忧无虑,呆在家里不给国家添乱的时候,发现身边的同学找到了大厂的offer.心里开始有点慌张.本来想在3月份如果能回到学校,就开始考研之路, ...

  7. 阿里P7整理“硬核”面试文档:Java基础+数据库+算法+框架技术等

    现在的程序员越来越多,大部分的程序员都想着自己能够进入大厂工作,但每个人的能力都是有差距的,所以并不是人人都能跨进BATJ.即使如此,但身在职场的我们一刻也不能懈怠,既然对BATJ好奇,那么就要朝这个 ...

  8. 阿里、百度等多家公司Java面试记录与总结

    算算自己大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面试经验. 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己, ...

  9. 2019阿里P7最新总结Spring Boot面试问题

        Spring Boot一直是Spring生态系统的关键参与者.该项目通过其自动配置功能使我们的生活更加轻松.在本教程中,我们将介绍在求职面试中可能出现的一些与Spring Boot相关的最常见 ...

随机推荐

  1. 适合 JS 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 这里是 HelloGitHub 的<GitHub 上适合新手的开源项目>系列的最后一篇,系列文章: C++ 篇 Python 篇 Go 篇 Java ...

  2. ChromiumWebBrowser flash不能自动播放问题解决方案

    前言:WPF项目 引用 CefSharp.Wpf 79.1.360,新版本的Cef默认flash不能自动播放 步骤一:提高pepflashplayer版本号 在CefSettings中设置版本号参数: ...

  3. 关于Django的序列化问题。serializers

    在DRF框架里,ModelSerializers是一个重要的组件.大大的帮组我们节省了数据序列化的过程,真的可以说是良心产品.接手的这个项目用的Django,前人的代码都是手动序列化的,为了保证风格的 ...

  4. PyQt(Python+Qt)学习随笔:Qt Designer中的menu菜单及menu bar菜单栏

    菜单由menu bar菜单栏和menu菜单两部分构成,分别对应类QMenuBar和QMenu. menuBar是包含一系列下拉菜单项组成,menu包含两种,一种是直接对应Action的,一种是父菜单, ...

  5. hitorMiss、hitAndMiss以及MORPH_HITMISS?

    hitorMiss.hitAndMiss在图像处理中都是同一个概念,即图像的形态学变换中的击中击不中变换,hit表示击中,miss表示击不中.MORPH_HITMISS是OpenCV调用时该变换的op ...

  6. 安卓11配置谷歌FCM推送报错

    2020-12-11 11:57:50.872 15404-15464/com.sp.notify E/FirebaseInstanceId: Failed to get FIS auth token ...

  7. Springboot mini - Solon详解(二)- Solon的核心

    Springboot min -Solon 详解系列文章: Springboot mini - Solon详解(一)- 快速入门 Springboot mini - Solon详解(二)- Solon ...

  8. ajax与浏览器请求的差异对比.png

  9. 使用Tomcat Native提升Tomcat IO效率

    目录 简介 Tomcat的连接方式 APR和Tomcat Native 在tomcat中使用APR 简介 IO有很多种,从最开始的Block IO,到nonblocking IO,再到IO多路复用和异 ...

  10. PHP代码审计学习-PHP-Audit-Labs-day1

    0x01 前言 偶然间看到红日团队的PHP代码审计教程,想起之前立的flag,随决定赶紧搞起来.要不以后怎么跟00后竞争呢.虽然现在PHP代码审计不吃香,但是php代码好歹能看懂,CTF中也经常遇到, ...