先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
上面的可以适当简化一下,能说出来多少取决于你的记忆力。
项目介绍:
这个是真的要提前准备好说辞,不然你面试的时候边想边说,说起来磕磕巴巴的,你给面试官的第一印象就不好了,至少说明你的表述能力不强。
介绍项目的话可以不用太紧张,面试官才拿到你的简历看多久,所以肯定是对你自己的项目是最熟悉的。需要注意的地方就是不要只讲一些业务相关的,面试官不需要知道这些,他只关心你的技术能力是否足够,通过你的描述知道你使用了什么技术,再根据相关的技术进行提问。
贴一下我的草稿:
我在xx公司做的xx系统,客户主要是xx,项目的功能主要是提供代理雨伞,代理快递,代理订餐,图书借阅等服务,后台用的是主体架构是使用Spring Cloud,微服务模块划分为xxx,我主要负责其中xxx几个模块的开发, orm用的是mybatis,数据库是用的mysql,缓存是用的redis,前台用到了vue技术。共有xx个同事参与开发,整个项目持续了xx时间。
面试官会对他感兴趣的点进行提问。
面经分享:
=====
(面试次数有点多,着重讲述几次经典面试。)
阿里面经分享:
阿里一面:
-
做一下自我介绍吧,简单说一下你的项目;
-
有遇到过内存泄漏吗?你们是怎么解决的?
-
java的基本类型有哪几个?String是不是java的基本类型?String为什么要是final类型的?
-
反射机制的底层实现是什么?动态呢?动态的实现原理?
-
hashmap了解吗?说一下hashmap相关的一些东西?hashmap是线程安全的吗?为什么是线程安全的?
-
concureenthashmap了解吗?他是如何实现线程安全的?
-
你刚才说1.8基于cas?cas的ABA问题怎么解决?
-
说一下JVM的线程模型?这些区域都分别是干啥用的?
-
说一下java类加载器的工作机制?类加载在哪个区域进行的?
-
说一下java的线程模型?
-
violate了解吗?它的原理是什么?violate是线程安全的吗?
-
保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读
-
数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优做过吗?说说你是怎么做的?
-
redis了解吗?你说说怎么用redis实现分布式锁?
-
spring中Bean的作用域,springMVC的controller是线程安全的吗?怎么去保证线程安全呢?
-
消息队列有用过吗?说说你怎么用的?
-
计算机网络了解吗?说一说TCP三次握手和四次挥手吧
-
time_wait状态产生的原因是什么?,有什么危害?可以如何避免?
-
寻找旋转排序数组中的最小值
阿里二面:
1、手撕算法
-
10个多线程保证 i从0加到10 (差点翻车,主线程忙等另外10个线程完结)
-
反转链表
-
上台阶(n=80)
2、操作系统
-
常用的linux命令说一下
-
操作系统中的信号 和 信号量有什么关系
-
epoll 和 Selector 有什么区别?
3、计算机网络
- 说一下拥塞控制
4、数据结构
-
说一下红黑树,你平时用的技术哪里用到了它?
-
哈希表怎么处理冲突?
5、项目相关
-
把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?
-
spring 和 springboot的关系你是怎么理解的?
-
Spring IOC和AOP说一下你的理解
-
为什么用消息队列?
-
对于消息的重复消费你有什么设计方案吗?
阿里三面:
-
你怎么学的Java啊?
-
设计模式了解吗?单例讲一下,懒汉饿汉double-check,怎么实现。策略模式,外观模式,适配器模式,装饰器模式,分别讲一下
-
联合索引什么时候不会触发索引?
-
AOP了解么,有什么好处,如何使用,怎么实现的?
-
支付宝到银行的转账业务怎么实现?
-
redis实现分布式锁
-
三台机器集群,按不同权重访问,怎么做?
阿里四面(hr):
-
先介绍一下你自己吧
-
说一下四种IO模型
-
平时怎么去学习的?
-
为什么你说学习了要去实践?
-
说一下的最大的优点和缺点
-
举一下你缺点的例子
-
想象一下你几十年后是怎样的生活?
-
你觉得最痛苦的一段时间
-
对你影响最大的一件事情
-
在安排活动的过程中有没有发生什么冲突?
-
你有什么崇拜的人吗?
-
你有什么想问的?
美团面经答案整理
字节面经:
=====
字节跳动一面:
-
实习项目就聊了差不多30分钟
-
问了MySQL的索引
-
redis的string类型
-
为什么使用RabbitMQ?
-
RabbitMQ有哪些部件?如何保证准确性跟一致性?
-
hashcode和equals?
-
动态代理
-
快排
-
无序数组计算每个位置大于前面的多少个数字(归并排序)
字节跳动二面:
-
谈谈项目?
-
mongodb底层原理或者数据结构是什么,务处理,插入和mysq有什么区别,为什么会慢
-
如载过程(Java) ,每一步做了什么
-
子类和父类的实例变量和方法有什么区别
-
重载和覆盖区别,返回值类型不同,可以重载吗,为什么,底层如何实现的
-
java多线程,状态图,画出来,阻塞的状态有哪几种,运行顺序,多线程的一些方法
-
java泛型
-
ThreadLocal, Concurrent 下面的包,原理是什么,
-
AtomicInteger,原理是什么,如何做到高效率的,有什么优化措施
-
悲观锁和乐观锁
-
@Transaction的原理,还有比如在一个类中两个方法, -个是B方法,-个是C方法, B. 上没有注解,C上
-
有那么在外面调用B**有事务,为什么,根据底层原理能不能推断出来(给提示问你能不能推断出来)
-
查询学生成绩不及格的所有人的姓名和编号,根据这个语句,如何建立索引,为什么,
-
mysq底层是什么,为什么效率高,主键能不能太大,为什么,如果太大,底层数据结构会不会变化,为什么
-
linux查询tcp连接处理CLOSE_ WAIT的状态的数目
-
了不了解RabbitMQ, kafka, RocketMQ, ActiveMQ, 以及其他消息中间件
-
redis为什么效率高,线程,数据结构,网络模型,aio, nio, bio, 为什么这么设计?如何处理高并发
字节跳动三面:
-
数据仓库,雪花模型和星型模型区别和用处,数据仓库的过程(分层) ,如何设计
-
数据仓库和数据湖的区别
-
分布系统的设计,分布式系统CAP,分布式系统的模型
-
linux环境下的线上业务管理有没有,如何管理
-
redis的集合有没有限制,限制是多少
-
redis的1w条的插入和更新有什么区别
-
mysql join的底层原理是什么,有哪几种(不是左右连接这种)
-
linux命令查询一个文件内出现重复最多的数字的
-
linux命令查询一个文件的行数
字节跳动HR:
-
自我介绍,对公司面试的评价,实习时间
-
为什么转专业?
-
你认为你有什么优点?有什么缺点?有什么兴趣爱好?
-
在团队中习惯充当什么样的角色?
-
遇到过比较困难的事情是什么?觉得自己很幸运的事情是什么?
-
对于未来的规划?有没有使用过公司的其他产品?有没有转正想法?
-
你还有什么想问的?
更多面经分享
======
以下面经就不具体详说,大致方向都差不多。
京东物流
====
最后
我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱?
既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪?
架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。
如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
中高级开发必知必会:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
中高级开发必知必会:
[外链图片转存中…(img-OHFzJkI1-1713561542301)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-dsjIcF4o-1713561542302)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!