#种一棵树最好的时间是十年前,其次是现在
很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。
但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark 了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。
大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。
说说自己提升学习效率的心得,其实非常简单:体系化的学习。
我曾经很喜欢看一些博客或者是一些 “看起来” 比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就 mark 下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高。
最后实在忍不住,抱着厚书硬啃了一遍,突然有种豁然开朗的感觉:读书时自己学到的是一张完整的知识网络,每个知识点和其它内容相互联系和区别。这种全方位的理解比起一篇篇独立的文章,不知要高到哪里去了。
在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。
但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark 了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。
大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。
说说自己提升学习效率的心得,其实非常简单:体系化的学习。
我曾经很喜欢看一些博客或者是一些 “看起来” 比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就 mark 下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高。
最后实在忍不住,抱着厚书硬啃了一遍,突然有种豁然开朗的感觉:读书时自己学到的是一张完整的知识网络,每个知识点和其它内容相互联系和区别。这种全方位的理解比起一篇篇独立的文章,不知要高到哪里去了。
在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。所以我建议你看文章博客,不能只看一篇,通透的、连续的学习,效果才是最佳的。
受疫情影响,今年似乎给人感觉时间比往年还要流逝得更快。显然,春节一过,我们又将迎来面试旺季金三银四。对于程序员来说,秋招的失利更意味着在金三银四要打一场“硬战”,可又有多少人做好了面试的准备呢?对于一线互联网公司的面试,你又了解多少呢?
今天,一本《Java面试考点大全》全网首发,带你摸熟20+互联网公司的面试考点!
本文扼要
本文结构主要分为以下三个部分:
- 01 互联网大厂考点(阿里+百度+腾讯+字节跳动+美团+京东)
- 02 Java面试考点大全(基本功底+常用技术+技术深度+技术经验+学习能力+工作能力+项目经验)
- 03 面试真题重现
01 互联网大厂考点
由于文章篇幅内容有限,面试到的公司不可能面面俱到,所以这里选取了6家具有代表性的互联网公司,然后对这两个梯队的互联网公司的面试进行了详细的分析,用宏观的角度来将这些互联网公司的面试考点进行了汇总。
1.1 阿里巴巴、百度、腾讯
1.2 字节跳动、美团、京东
02 Java面试考点大全
2.1 基本功底(Java基础+算法+数据结构)
——Java基础:Java异常分类及处理+反射+注解+内部类+泛型+序列化+复制
——算法:算法解题+LeetCod整理(中文版)
——数据结构:栈+队列+链表+散列表+排序二叉树+红黑树+BTree+位图
2.2 常用技术(Spring系列+Mybatis+Redis+MQ+Mysql+ZooKeeper+Docker+k8s等)
——Spring系列:Spring+Spring IOC +Spring AOP+Spring MVC+Spring Boot等
——Mybatis:
——Redis:缓存+数据结构及场景分析+内存淘汰机制+持久化机制+异常+集群等
——MQ:概念+架构
——MySQL:存储+索引+锁+分库分表+事务等
——ZooKeeper:概念+角色+工作原理
2.3 技术深度(JVM原理+多线程+中间件+分布式缓存+框架+源码等)
——JVM原理:线程+内存区域+垃圾回收+引用+GC+IO/NIO+类加载等
——Java多线程并发:并发知识+线程+线程池+生命周期+锁+阻塞队列+CAS等
——中间件(Tomcat):
——分布式缓存:缓存雪崩+缓存穿透+缓存预热+缓存更新+缓存降级
——开源框架:Spring+Spring MVC+Mybatis
——源码解读:
2.4 技术经验(高并发+分布式架构设计+Mysql数据库性能优化+设计模式等)
——高并发:
——分布式架构设计:
——Mysql数据库性能优化:
——设计模式:24种设计模式及六大设计原则
2.5 学习能力
- 学习最新技术的能力
- 活跃的GitHub用户,参与过开源项目
- 喜欢阅读源码的能力
- 习惯写博客的能力
2.6 工作能力
- 推动力和执行力
- 业务能力和学习能力
- 沟通能力和协作能力
- 分析能力和解决问题的能力
- 抗压能力和挑战能力
- 创新能力
2.7 项目经验
大厂面试,面试官是非常看重个人的项目经验的,对于项目的细节也会一一提问,所以项目相关的问题,还需要自己去做准备,个人只对一些具有参考性的项目进行了一些总结和经验分享,可以学习其中的思路。
——小米B2C商城系统:分布式架构设计+高并发场景应对方案+分布式事务场景策略+分布式场景方案+性能调优
——美团商户分布式营销系统:系统架构设计+核心高并发模块+分布式服务化+数据库性能提升+百万级QPS读取+十万级别TPS的数据安全
——线上100万并发Spring Cloud Alibaba脱敏实际项目:Spring Cloud Alibaba实际线上项目+分布式场景实现+项目高并发问题实战+项目海量数据问题实战
03 面试真题重现
3.1 以阿里面试题为例:
- 讲一下List 和 Set 的区别
- HashSet 是如何保证不重复的?
- HashMap 是线程安全的吗?为什么不是线程安全的?
- HashMap的扩容过程
- HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?
- 对象的四种引用
- Java获取反射的三种方法
- Java反射机制
- Arrays.sort 和 Collections.sort 实现原理 和区别
- LinkedHashMap 的应用
- Cloneable 接口实现原理
- 异常分类以及处理机制
- wait 和 sleep 的区别
- 数组在内存中如何分配?
- …
面试题答案
3.2 更多互联网一线大厂面试题:
总结
作为一个“好兵”,我从不打无准备的仗,毕竟知己知彼才能游刃有余。无论现在的你处于什么水平,技术拥有怎样的深度,都不得不承认,任何时候都需要你能够主动地去学习,面试也要提前做准备。如果你的职业发展有更长远的打算和规划,那就更应该沉稳下来,脚踏实地,一步一步。