最近技术群的一个问题,引起了我的思考:
今年,还存在金三银四吗?
大家都知道程序员涨薪主要还是要靠跳槽来完成!但是我们都知道,无论是考试,还是求职,这个难度,参加人数是影响难度的一个很大因数(当然特别牛逼的大佬可以忽略这句话)。
每年高考、考研人数都在增加,这求职人数也必然是每年都会增加的,因此,就算完全不出新技术,求职的难度也会越来越大。
最近和不少出去面试的朋友闲聊,都发现,两年前面试高级开发,会JUC、JVM相关的知识点都是加分项,现在反而成了基本要求,不会这些,面试都是被吊起来打!
两年前,JVM会一些理论知识,比如垃圾回收算法的概念,优缺点,适用场景等都已经能达到及格水平。现在人多了,这个筛选难度也大了,现在都开始问,你有没有做过哪些JVM调优?
大家都知道,公司开发的人数比较多,就算有JVM问题,那么参与调优的人数也是有限的。公司不可能像大学一样,让每个人都能在实验室,然后每个同学都能在亲自做实验,然后老师再打分之类。
现实是,很多同学的公司,根本没有JVM调优场景,就算有,你也没有机会参与解决,现在的面试情况就是,你不会,很可能就被“误杀”。
华为Java一面· 1H
闲聊偏多,问的技术性问题比较基础
-
·简单说说面向对象的特征以及六大原则
-
·谈谈final、finally、finalize的区别
-
·Java中==、equals与hashCode的区别和联系
-
·谈谈Java容器ArrayList、LinkedList、·HashMap、HashSet的理解,以及应用场景
-
·谈谈线程的基本状态,其中的wait() sleep() yield()方法的区别。
华为Java二面 · 0.5H
问题深入一些,开始加难度
-
·JVM性能调优的监控工具了解那些?
-
·简单谈谈JVM内存模型,以及volatile关键字
-
·垃圾收集器与内存分配策略
-
·垃圾收集算法
-
·MySQL几种常用的存储引擎区别
-
·数据库的隔离级别
-
·算法:5亿整数的大文件,怎么排?
华为Java三面· 0.5H
三面问题更为细致了,考察项目经验更多
-
·Java内存模型
-
·full gc怎么触发
-
·gc算法
-
·JVM回收策略
-
·ClassLoader原理和应用
-
·高吞吐量的话用哪种gc算法
-
·ConcurrentHashMap和HashMap
-
·volatile的底层如何实现,怎么就能保住可见性了?
-
·有参与过开源的项目吗?
-
·线程池原理,拒绝策略,核心线程数
-
·1亿个手机号码,判断重复
-
·线程之间的交互方式有哪些?有没有线程交互的封装类
华为Java4面 · 1H
重点考察全局观和应急处置
-
·项目介绍
-
·两次点击,怎么防止重复下订单
-
·数据库表设计,索引
-
·Redis的缓存淘汰策略、更新策略
-
·dubbo、netty、RPC介绍原理
-
·限流算法
-
·zk挂了怎么办
-
·分布式锁的实现方式,zk实现和Redis实现的比较
-
·秒杀场景设计,应付突然的爆发流量
-
·分布式数据一致性
-
·一致性哈希
-
·消息队列原理介绍
-
·注解的原理
-
·数据库原理,数据库中间件,索引优化
-
·ioc原理、aop原理和应用
-
·大数据相关,MapReduce
-
·Docker的原理
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
量很高的资料。**
[外链图片转存中…(img-TxyqG434-1622089978326)]