2019程序员个人面试随笔

我找工作的时间范围在2019年10月13日至11月22日,此时工作年限四年零七个月。

先说几个重点

1、简历一定要写好,我整理简历花了两三天的时间,差点吐了,用到的网站有

https://github.com/geekcompany/ResumeSample

https://github.com/resumejob/awesome-resume

2、投简历之前花个三四天的时间全局复习一下,我主程序Java,复习看的是这个

https://github.com/Snailclimb/JavaGuide

3、前期先投些小规模的公司,自己心仪的公司中前期投,因为大公司的流程比较慢,比如阿里的投了简历,筛选到电话面试大概需要十天吧

4、一定要把每场面试不会或不熟的知识点记录并总结(不是背答案,要理解记忆,实在理解不了,那就如是说不会),多面几次,你会发现就那么几个主要的问题

5、不管怎样,先拿到offer再说,越多越好,横向比较一下,选出最心仪的offer。

6、不要以为拿了offer就能放松了,有些公司后面可能会有其他的流程,比如测评、体检之类的,测评不过的也会pass掉你,体检未达到公司指标的也会pass掉(虽说法律禁止,但是有的公司很拽,懂的人都懂),最终在你入职签订劳动合同的时候再去放松吧。

面试问到的问题

说明一下, 以下只是问到我的问题

Java
  • HashMap源码分析

  • ConcurrentHashMap源码分析

  • 为什么要重写hashcode

  • 线程池工作的原理及参数的含义

  • CountDownLatch、CyclicBarrier 原理和区别

  • Volatile作用

  • synchronized 与 lock 的区别

  • 常见的原子操作类

  • 偏向锁、轻量级锁、重量级锁、自旋锁的概念

  • class.forname与classloader的区别

  • 集合sort的底层原理

  • JDK中用到的设计模式

  • 如何快速计算出一个数是否为2的n次方

  • 如何实现热部署

JVM
  • JVM内存模型
  • 垃圾回收
  • 一些常见的参数
  • 如何解决献上CPU 100%的问题(发现到定位代码)
  • 类加载器、为什么是父类委派
  • JMM的设计初衷与好处
  • 类文件加载过程
  • JVM中对象的组成

程序员必回必问,多看书多实践,不要为了面试去看

网络
  • Http和Https的却比
  • Http与RPC的区别
Linux
  • 常用参数
Mysql
  • 整数类型有几种
  • 存储引擎的 InnoDB 与 MyISAM 区别、优缺点、使用场景
  • 索引类型与区别
  • 为什么使用B+树做索引结构
  • 聚簇索引与非聚簇索引的区别
  • 为什么是最左匹配原则
  • 什么是覆盖索引
  • 索引创建原则
  • UUID适合做索引吗
  • B+树的一个节点所占用大小(可以推算出一个节点能存储多少行数据)
  • SQL的优化,explain后出现各field代表的含义
  • 隔离级别
  • 锁机制
MQ
  • 项目中用到的MQ,目前市面上MQ的比较
  • Rabbitmq的组件与应答机制
  • Rabbitmq的通信协议,一个消息如何发送存储和消费
  • 如何保证消息不丢失
  • 如何保证消息不重复
  • exchange routekey queue关系
Redis
  • 持久化方式、各自的优缺点
  • 集群类型
  • 为什么是单线程
  • 如何实现原子性操作
  • 数据类型
  • 缓存雪崩、穿透、击穿的含义及解决方案
ElasticSearch
  • 什么是倒排索引
  • 为什么搜索能那么快
  • 集群介绍,各名词如主副节点、分片、副本等
  • 如何解决脑裂的问题
  • 文档索引过程
  • 文档搜索过程
  • 索引的优化
SpringBoot
  • controller是否为单例,如何保证多线程下安全
  • 如何解决循环依赖
  • 涉及到的设计模式
  • 代理的实现
  • IOC过程,越详细越好(这个可真是凭真功夫,因为随便一个点都能牵扯出一系列的问题)
  • springboot如何做到自动配置
  • springboot启动过程
Mybatis
  • #$的区别
  • 如何实现xml与接口绑定
其他

其他的就是按照你简历中涉及到的一些功能点去问,非常有感触的是蚂蚁金服的电话面试,只问你用过的,然后不停的深入深入再深入,直到你回答不上来,所以,简历上写的一定要是很熟练的;

还有一般都会问你项目中解决过的重大问题,思路啊、实施过程等等,个人感觉这里考察就是表达能力和解决问题的能力,或者跨部门协调的问题等等,一般是在负责人面试的时候会被问到,最好也需要提前整理一下;

投简历渠道

这次面试主要用的是Boss直聘和拉勾网还有一些猎头的推荐,猎聘和前程无忧不敢用,生怕刷新简历电话会被打到爆。。。特别是那些外包的公司

最后

一定要放平心态,不要太紧张,就当一次技术交流,看过一哥们在博客中写道

面试是一种蜕变

就当是对以往能力的一次检验,顺便做个查缺补漏,最后祝大家都能进入自己心仪的公司!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐