Java学习经验分享(2021秋招)

Java学习经验分享(2021秋招),第1张

Java学习经验分享(2021秋招)

背景

楼主本硕均为电子信息相关专业,之前使用的主要语言也是C,到研究生阶段才开始自学Java,做的两个项目也比较简单,一个是JavaGuide的RPC项目还有一个是基于SpringBoot的博客项目

面试情况

  • 字节(三面一个问题没回答出来,挂)
  • 百度(主管面透露自己不想去北京,挂)
  • 阿里(成都意向)
  • 美团(上海意向)
  • 京东(成都意向)
  • 华为(成都意向)
  • 小米(武汉意向)
  • 远景(上海意向)
  • 大华(成都意向)
  • 农行(成都意向)
  • 中兴(成都意向)
  • 招银(成都意向)
  • 荣耀(西安意向)
  • 快手(北京意向)
  • 贝壳(池子中)
一、基础 1、Java基础
  • B站尚硅谷宋红康Java基础视频
  • 《Java核心技术卷Ⅰ》(10~13章可跳过)
  • 常见容器的源码剖析,包括但不限于HashMap、ConcurrentHashMap、ArrayList、PriorityQueue等,基本要做到熟稔于心,可以配合常见面试题来抓重点
2、JAVA虚拟机
  • 《深入理解JAVA虚拟机》(JVM圣经,建议全文精读,多次翻看。如果没时间,重点看第2、3、7章)
  • 常见的虚拟机排错与调优技巧
3、高并发
  • 《Java并发编程之美》(分析源码的书籍,建议全文精读,对于之后分析JUC包下的源码帮助很大)
  • 《Java多线程编程实战指南(核心篇)》(国人写的,写的相当好。主要讲解高并发一些思想和设计,最后两章关于内存屏障的部分建议精读)
  • JUC源码剖析,包括不限于ConcurrentHashMap、AbstractQueuedSynchronizer、ConditionObject、CopyOnWriteArrayList、线程池原理、阻塞队列源码等(这部分重点把AQS原理和ConditionObject搞明白,再看其他源码会轻松很多)
4、计算机基础

非科班的同学需要格外注意这部分,这部分知识学起来比较枯燥,但是面试基本又是必问。如果时间充裕建议系统性的学一下,推荐B站上清华大学的 *** 作系统课程和湖南科技大学一个老师的计算机网络课程。

  • 计算机网络,B站UP主:湖科大教书匠;公众号:小林coding的《图解网络》(基本涵盖了70%以上的面试题,建议全文精读);《图解HTTP》,可以当手册翻阅
  • *** 作系统,B站:清华 *** 作系统原理;公众号:小林coding的《图解系统》(基本涵盖了70%以上的面试题,建议全文精读)
5、数据库
  • 《MySQL必知必会》(入门经典,短小精悍,三四天就可以看完)
  • 《MySQL技术内幕:InnoDB存储引擎》(1~8章,有时间建议精读,配合《高性能MySQL》基本能解决绝大部分数据库面试题)
  • 《高性能MySQL》(第1、4、5、6章精读,其它章节看个人情况,这本书实在太厚了)

关于后两本书,初学者看起来会比较抽象,建议配合面试题和一些博客一起食用,带着问题看会好很多

6、算法与数据结构
  • 《剑指Offer》配合LeetCode(算法建议每天都刷一两道,千万不要停,需要保持手感。LC上的热题100和剑指上的原题建议多刷几遍)
  • 《大话数据结构》(二叉树、链表、队列、堆、栈等,一些经典算法一定要知道)
7、设计模式与设计原则
  • 关注一些常见的设计模式即可,包括不限于单例、工厂、代理、观察者等。最好能结合框架中的设计模式学习
  • 常见的设计原则,开闭、单一、迪米特等
8、Linux
  • B站韩顺平Linux教程
  • 常见故障排查指令
二、框架 1、SSM框架

B站尚硅谷雷丰阳的SSM全家桶

  • Spring源码重点分析IOC、AOP源码、事务实现等源码和思想,同时关注一些常用注解的区别与实现。这部分建议自己debug分析
  • SpringMVC源码重点分析请求处理过程与父子容器启动过程
  • MyBatis重点关注MyBaits缓存、Mapper接口与XML文件映射实现原理以及一些常见面试题即可
2、SpringBoot

B站尚硅谷雷丰阳的SpringBoot系列视频

  • 重点关注SpringBoot自动配置原理
  • 关注一些常用注解的使用、实现与区别
  • 背一些常见面试题即可
3、Netty

Netty主要是项目需要所学,这部分看个人所需

  • Netty的线程模型、IO模型,事件处理过程等
  • 推荐简书闪电侠的Netty源码分析博客
  • Netty的应用场景以及开源框架了解
三、中间件 1、Redis
  • B站尚硅谷Redis视频

  • 《Redis设计与实现》(必看,建议全文精读,能够解决80%以上的Redis面试题)

  • 业务中常见的缓存问题,包括不限于一致性、数据倾斜等,这部分建议多看面经

2、消息中间件

主流消息中间件包括RabbitMQ、RocketMQ、Kafka等。时间充裕的同学可以多了解,楼主对于后两者了解不多,对于时间不够的同学,熟练掌握一种消息中间件即可

  • B站编程不良人RabbitMQ
  • 《RabbitMQ实战指南》
  • 常见消息队列场景题,包括不限于异步重试、解耦、削峰等,这部分建议多看面经和博客
3、Zookeeper
  • B站黑马Zookeeper教程
  • ZAB协议、Leader选举、一致性、分布式锁等相关面试题
四、项目
  • 基于Netty和Zookeeper的RCP框架
  • 基于SpringBoot的博客项目
  • 慕课网秒杀项目
  • 不管什么项目,如果写在简历上一定要搞清楚其中的难点和优化点,如果能加入自己的思想和优化策略更是再好不过。如果一个项目只知道怎么做,但不明所以建议不要写在简历上
五、其他
  • 微服务相关的一些基本概念,包括不限于服务治理、设计思想等。这部分楼主掌握的也不多,故不做推荐
  • 分布式事务与理论,包括不限于2PC、3PC、CAP理论、base理论、分布式锁等。这部分重点在于理解与抽象,建议多看博客
  • 一些常见的排错技能,包括不限于CPU负载过高、死锁、FullGC、慢查询、内存泄漏等
  • 常见海量数据处理题目,这部分网上博客有很多分享,主要思路是分而治之或者借用一些中间件等
  • 常见业务场景题
六、学习渠道推荐 0、B站
  • 尚硅谷(基本上主流技术栈都有)
  • 黑马
  • ...(基本上能想到的技术都能找到学习视频)
1、公众号
  • 小林coding
  • Java面试题精选
  • JavaGuide
  • Java知音
2、网站博客
  • JavaGuide八股(必背八股)
  • CSNotes(基础八股)
  • note-submit(框架和中间件等完整剖析)
  • Java知音(常见面试题剖析)
  • 美团技术团队
  • 阮一峰的网络日志
七、建议
  • 提前准备,提前准备,提前准备。现在Java后台是越来越卷了,秋招的金九银十基本不太适合互联网大厂。根据今年的秋招情况,应该改为金七银八,基本上到九月大厂的HC就被提前批和实习的同学占满了。有鉴于此,如果有机会实习的同学一定要去实习,首先实习的面试经历能够帮助自己在秋招时提前进入状态(即使不能去实习,也可以进行实习面试,这样在准备秋招时更能抓住重点);其次,对于非科班的同学实习的经历在简历筛选中具有较大的优势,如果在实习期间能做一些实际业务,在面试的时候也能更好的吹水
  • 保持心态,不要受身边同学的影响对自己否定,秋招一般坚持到最后的都能拿到不错的offer
  • 眼光不要局限于大厂,近两年制造业的崛起,很多制造企业开的薪资不比大厂低(比如海康、TP、汇顶、大华等今年薪资都很顶,楼主前期眼光就局限于大厂,最后到9月开奖时已经高攀不起了)
  • 对于非科班的同学,除了Java技术栈外,一定要重点注意计网和 *** 作系统,大厂很重视基础,反而对框架这些问的不是特别多
  • 每场面试一定要复盘,总结自己不会的点和回答的不利索的地方。在面试中除了专业知识外还要要注重逻辑和表达,不要一股脑的将所有知识揉在一起
  • 写在简历上的项目的知识一定要弄懂,否则很影响面试官的印象

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5611715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存