1.背景:

因为公司变动,lz不得不出来看看机会, 面试的岗位主要是后端,历经三周,面了北京大大小小的几家公司,最后收获了满意的offer。

自己也成长收获了不少, 谨以笔记,自己可以日后回忆,也希望能帮助到最近寒冬下需要找工作的同学,在文章的后面会附上一点小心得和建议。

2.level

我是16年本科毕业, 算上实习接近2年半-3年的工作经历吧,一直做java后端。  自己定位大概能到p6+的水平。有大厂经验,本科211, 所以面试机会总体来说还是挺多的。

3.过程

大概是从元旦过后开始写简历,投简历,从7号开始陆陆续续面了若干公司, 有好有坏,以表格形式记录如下,以我面试的时间排序。

声明:虽然博客没有什么人看,但是如果您认为记录有不实或者伤害到下述公司名誉啥的, 直接联系我删除即可。

4.总结及建议

1.一定要提前准备好,刷一定量的题,特别是现在各大公司都有自己的招聘系统,如果一面就挂了,可能直接就拉黑,后续面试就更难了。

2.关于刷题,大概刷完剑指offer上面的经典题, 或者leetcode前100道应该就够了,我建议有选择的刷,主攻排序,链表,大文件处理这些面试高频的,也有意义的。

3.关于练手,我觉得不要有太大的心里负担, 你去一般公司面试,对于公司可能是一种匹配,但是对个人可是一次很好的自我认知反省的机会,甚至会改变后续的很多结果。

我们结合对行业的了解,如下公司可以说小而美(其实也是大独角兽了),本身就值得加入,面试也有很多收获: 猿辅导,脉脉,探探,瓜子,vivo互联网。

当然拿大厂的边缘部门练手也未尝不可,就是有风险有记录。

当然也有一些黑名单,面试官迷之自信,态度傲慢,技术浅显, 建议大家面试前脉脉一下。。

最后一棒子打死,感觉位于清河的公司,可能都不太利于个人生活和发展。

4.关于基础,我在下面附上一些前辈整理好的url。一定要夯实打捞。

5.我觉得面试礼仪是衡量双方的重要标准, 面试者要注重自己的仪表整洁,谈吐礼貌自然。 可以从公司面试官的行为判断出公司的大体人员素质,我个人比较看重公司行政或者面试官是否能给瓶矿泉水或者倒杯水,我认为这是尊重一个面试者的基本表现,虽然后来我都是自己带水。 我面试中就小米和阿里没有(并且阿里文学是饭点约去面试,也不管饭,饿着肚子从5点面到9点多),然后就是双方是否守时,我一般提前20分钟到,提前10分钟给hr打个电话。 

6.关于面试难度,我觉得正常应该是围绕简历和基础循序渐进,一上来手撕红黑树,给个hard基本要dp的,或许不是真心想招人的。 

当然,即使难点也不要慌, 表达好自己的思考过程, 即使错了也没太大关系。

其他的想到在整理吧。

5.面试题+基础

各家的面试题其实都大同小异, 掌握基础和原理,走到哪都不怕。

电脑没电了 明天去公司再整理格式吧。

reids

 

知道redis吗,redis是如何做持久化的

介绍下redis的特点,redis的基本数据结构,数据持久化方式,主从之间如何同步;

导致redis性能瓶颈的操作

redis有哪些接口

Redis的实现模式;

redis为什么这么快?

 

 

java-core

1、List 和 Set 的区别2、HashSet 是如何保证不重复的3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?4、HashMap 的扩容过程5、HashMap 1.7 与 1.8 区别,说明 1.8 做了哪些优化,如何优化的?6、final finally finalize7、强引用 、软引用、 弱引用、虚引用8、Java反射9、Arrays.sort 实现原理和 Collection 实现原理10、LinkedHashMap的应用11、cloneable接口实现原理12、异常分类以及处理机制13、wait和sleep的区别14、数组在内存中如何分配

 

 

java-并发

1、synchronized 的实现原理以及锁优化?2、volatile 的实现原理?3、Java 的信号灯?4、synchronized 在静态方法和普通方法的区别?5、怎么实现所有线程在等待某个事件的发生才会去执行?6、CAS?CAS 有什么缺陷,如何解决?7、synchronized 和 lock 有什么区别?8、Hashtable 是怎么加锁的9、HashMap 的并发问题?10、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树?11、AQS12、如何检测死锁?怎么预防死锁?13、Java 内存模型?14、如何保证多线程下 i++ 结果正确?15、线程池的种类,区别和使用场景?16、分析线程池的实现原理和线程的调度过程?17、线程池如何调优,最大数目如何确认?18、ThreadLocal原理,用的时候需要注意什么?19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别?20、LockSupport工具21、Condition接口及其实现原理22、Fork/Join框架的理解23、分段锁的原理,锁力度减小的思考24、八种阻塞队列以及各个阻塞队列的特性

  • 单机上一个线程池正在处理服务,如果忽然断电了怎么办(正在处理和阻塞队列里的请求怎么处理)?
  • 为什么要使用线程池?
  • 线程池有什么作用?
  • 说说几种常见的线程池及使用场景。
  • 线程池都有哪几种工作队列?
  • 怎么理解无界队列和有界队列?
  • 线程池中的几种重要的参数及流程说明。

 

JVM

1、详细jvm内存模型2、讲讲什么情况下回出现内存溢出,内存泄漏? 3、说说Java线程栈4、JVM 年轻代到年老代的晋升过程的判断条件是什么呢?5、JVM 出现 fullGC 很频繁,怎么去线上排查问题?6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?7、类的实例化顺序8、JVM垃圾回收机制,何时触发MinorGC等操作9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的10、各种回收器,各自优缺点,重点CMS、G111、各种回收算法12、OOM错误,stackoverflow错误,permgen space错误

  • 说一下对jvm的理解,jvm的组成部分,各个部分的存储内容以及常见的jvm的问题排查步骤。
  • JVM熟不熟悉?简单说说类加载过程,里面执行的那些操作?
  • JVM方法区存储内容 是否会动态扩展 是否会出现内存溢出 出现的原因有哪些。
  • 介绍介绍CMS
  • 介绍介绍G1。
  • 为什么jdk8用metaspace数据结构用来替代perm
  • 简单谈谈堆外内存以及你的理解和认识。
  • JVM的内存模型的理解,threadlocal使用场景及注意事项?
  • JVM老年代和新生代的比例?
  • jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?
  • Java虚拟机中,数据类型可以分为哪几类?
  • 怎么理解栈、堆?堆中存什么?栈中存什么?
  • 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
  • Java中,什么是是栈的起始点,同是也是程序的起始点?
  • 为什么不把基本类型放堆中呢?
  • Java中的参数传递时传值呢?还是传引用?
  • Java中有没有指针的概念?
  • Java中,栈的大小通过什么参数来设置?
  • 一个空Object对象的占多大空间?
  • 对象引用类型分为哪几类?
  • 讲一讲垃圾回收算法。
  • 如何解决内存碎片的问题?
  • 如何解决同时存在的对象创建和对象回收问题?
  • 讲一讲内存分代及生命周期。
  • 什么情况下触发垃圾回收?
  • 如何选择合适的垃圾收集算法?
  • JVM中最大堆大小有没有限制?
  • 堆大小通过什么参数设置?
  • JVM有哪三种垃圾回收器?
  • 吞吐量优先选择什么垃圾回收器?响应时间优先呢?
  • 如何进行JVM调优?有哪些方法?
  • 如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?

 

 

Spring

1、BeanFactory 和 FactoryBean?2、Spring IOC 的理解,其初始化过程?3、BeanFactory 和 ApplicationContext?4、Spring Bean 的生命周期,如何被管理的?5、Spring Bean 的加载过程是怎样的?6、如果要你实现Spring AOP,请问怎么实现?7、如果要你实现Spring IOC,你会注意哪些问题?8、Spring 是如何管理事务的,事务管理机制?9、Spring 的不同事务传播行为有哪些,干什么用的?10、Spring 中用到了那些设计模式?11、Spring MVC 的工作原理?12、Spring 循环注入的原理?13、Spring AOP的理解,各个术语,他们是怎么相互工作的?14、Spring 如何保证 Controller 并发的安全?

 

Netty

 

分布式相关

1、Dubbo的底层实现原理和机制2、描述一个服务从发布到被消费的详细过程3、分布式系统怎么做服务治理4、接口的幂等性的概念5、消息中间件如何解决消息丢失问题6、Dubbo的服务请求失败怎么处理7、重连机制会不会造成错误8、对分布式事务的理解9、如何实现负载均衡,有哪些算法可以实现?10、Zookeeper的用途,选举的原理是什么?11、数据的垂直拆分水平拆分。12、zookeeper原理和适用场景13、zookeeper watch机制14、redis/zk节点宕机如何处理15、分布式集群下如何做到唯一序列号16、如何做一个分布式锁17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗18、MQ系统的数据如何保证不丢失19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题20、zookeeper的选举策略21、全局ID

 

 

mysql:

http://www.iocoder.cn/Interview/MySQL-01/

mysql索引的实现原理

Innodb中,什么是聚集索引,非聚集索引,他们是什么关系

插入一条记录时,聚集索引和非聚集索引是如何修改的

建立索引的标准是什么

查看 SQL 是不是使用了索引?(有什么工具)

 

SQL 索引的顺序,字段的顺序

MySQL 分页查询语句,mysql分页有什么优化

 

 

01-28 02:22