从阿里、头条面试回来,面试官最喜欢问的Jvm和Redis你了解多少?
大家都知道程序员涨薪主要还是要靠跳槽来完成!但是我们都知道,无论是考试,还是求职,这个难度,参加人数是影响难度的一个很大因数(当然特别牛逼的大佬可以忽略这句话)。
每年高考、考研人数都在增加,这求职人数也必然是每年都会增加的,因此,就算完全不出新技术,求职的难度也会越来越大。
最近和不少出去面试的朋友闲聊,都发现,两年前面试高级开发,会JUC、JVM相关的知识点都是加分项,现在反而成了基本要求,不会这些,面试都是被吊起来打!
两年前,JVM会一些理论知识,比如垃圾回收算法的概念,优缺点,适用场景等都已经能达到及格水平。现在人多了,这个筛选难度也大了,现在都开始问,你有没有做过哪些JVM调优?
大家都知道,公司开发的人数比较多,就算有JVM问题,那么参与调优的人数也是有限的。公司不可能像大学一样,让每个人都能在实验室,然后每个同学都能在亲自做实验,然后老师再打分之类。
现实是,很多同学的公司,根本没有JVM调优场景,就算有,你也没有机会参与解决,现在的面试情况就是,你不会,很可能就被“误杀”。
当然,JVM只是个举例,比如高并发场景,很多同学公司根本没有这个场景,而且就算有,也是核心人员才参与解决,不可能像大学实验室一样,大家都要亲自参与,然后完成了才能下课。
也正是这样,就导致了,优秀的人得到的机会就越来越多。人生虽然是一段很长的路,但是很多时候,某一段你落后了,可能以后都很难追上了。
每个人的情况都不一样,因此后续怎么努力,怎么规划,也是不一样的。但是就算目前没有实战的场景或者没有实战的机会,现在努力,也还来得及。
具备基本的理论都是必须的,万一哪天大佬排查的时候,正好需要个人帮忙,然而你正好有相关知识储备,那人家自然就会想到你。
但是假如你完全一点都不知道,那就真的和高并发、JVM调优、redis这些没什么关系了。因此,这里提供一个思维导图,方便大家查漏补缺,先系统学习,把知识体系建立起来。
JVM
Redis
JVM面试
- 内存模型以及分区,需要详细到每个区放什么?
- GC 的两种判定方法
- GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路
- GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。
- Minor GC 与 Full GC 分别在什么时候发生?
- JVM 内存分哪几个区,每个区的作用是什么?
- 如和判断一个对象是否存活?(或者 GC 对象的判定方法)
- 简述 JAVA 垃圾回收机制
- java 中垃圾收集的方法有哪些?
- 简述 java 类加载机制?
- java 类加载过程?
- 类加载器双亲委派模型机制?
Redis面试题
- 为什么要用Redis?
- Redis持久化机制
- Redis内存淘汰机制
- 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
- Redis 常见数据结构以及使用场景分析
- Redis 和 memcached 的区别
- Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)
- Redis 事务
- Redis集群(主从模式、哨兵模式)
- Redis分布式锁
- Redis的双写一致性问题
最后
复工在即,今年的金三银四比起往年又有很大的不同,如何抗住这波冲击是一个关键点,机会是留给有准备的人的