前言
我朋友也是个写了四年Java代码的程序员,跟女友已经恋爱多年,最近突然结婚了。
他结婚以前,换了一家公司,咱俩就好久没见过面了。刚好今天出门办事碰上了,找了一家店坐一起喝酒聊天。
我聊天时打趣他:“亏得你小子运气好,还能娶到老婆。咱们这一行,不是加班就是加班,天天就是和代码过日子。”
朋友说:“做这一行也就工资看着高点,确实是每天都累死累活。我还不是一样的加班,都没时间陪老婆!”
跟着又聊到了工作,朋友听到我还在写业务代码非常意外:“你还在原来的公司做?我跳槽后就开始学习分布式架构、微服务、JVM调优、并发编程、SpringCloud等,虽然过程很是艰辛;但是后面接手做了几个大项目后就升职了,薪水也涨了不少、不然就凭以前那点工资,哪敢结婚买房。”
我于是问了问他的月薪税后28K,不由得心底一凉.....瞬间觉得最该同情的是自己。同时我也有点心动了,谁不想升职加薪呢?
我和朋友倒起了苦水:自己在公司干了这么久了,工资也没有提升,每天都是写业务代码,技术也得不到提高,很焦虑。我也想自己去学点东西,增加自己的价值,就是遇到瓶颈,不知道从哪入手。
他一听就说:“现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技术),要是你上对车,自身能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的Coder而已!
你现在就是缺少进阶Java中高级的机会,去深入去学习下数据结构算法、JVM调优、分布式架构设计等等;不然你在市场上没有核心竞争力,根本拿不到高薪!时间就是金钱,我向你推荐一套免费精品Java高级教程,保证你学了以后保证薪资上升一个台阶。”
华为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的原理
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
-
ali1024.coding.net/public/P7/Java/git
- github.com/spring-projects
最后总结
搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析
最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化