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直聘和拉勾网还有一些猎头的推荐,猎聘和前程无忧不敢用,生怕刷新简历电话会被打到爆。。。特别是那些外包的公司

最后

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

面试是一种蜕变

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

推荐阅读更多精彩内容