华为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的原理
言尽于此,完结
无论是一个初级的 coder,高级的程序员,还是顶级的系统架构师,应该都有深刻的领会到设计模式的重要性。
- 第一,设计模式能让专业人之间交流方便,如下:
程序员A:这里我用了XXX设计模式
程序员B:那我大致了解你程序的设计思路了
- 第二,易维护
项目经理:今天客户有这样一个需求…
程序员:明白了,这里我使用了XXX设计模式,所以改起来很快
- 第三,设计模式是编程经验的总结
程序员A:B,你怎么想到要这样去构建你的代码
程序员B:在我学习了XXX设计模式之后,好像自然而然就感觉这样写能避免一些问题
- 第四,学习设计模式并不是必须的
程序员A:B,你这段代码使用的是XXX设计模式对吗?
程序员B:不好意思,我没有学习过设计模式,但是我的经验告诉我是这样写的
从设计思想解读开源框架,一步一步到Spring、Spring5、SpringMVC、MyBatis等源码解读,我都已收集整理全套,篇幅有限,这块只是详细的解说了23种设计模式,整理的文件如下图一览无余!
这块只是详细的解说了23种设计模式,整理的文件如下图一览无余!
[外链图片转存中…(img-ifGtvyIW-1626876502071)]
搜集费时费力,能看到此处的都是真爱!