先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
下面就是我各家公司面试的一个体验
华为
==
1.简历投递方式:在BOSS直聘上联系的华为HR。
2.线上笔试:在正式面试之前,会有线上笔试环节,3道算法题,难易程度由浅入深,做出来两道基本就没问题了。
3.一面:视频面试,这轮面试会有两个面试官,每个面试官大概会面试45分钟,面试内容偏向Java基础为主;最后会写个算法题,不过也不复杂。
4.二面:这轮主要是几个领导一起电话面试,可能会问一些项目相关的内容,不过更多是框架相关的,不会涉及到很底层的技术细节。
5.HR面试:沟通一下职级和薪资情况,华为的薪资是由基本工资和绩效工资组成的,然后年终可能是2个月,我尝试去argue了一下薪资,但是好像并没有什么卵用。
总结:华为面试官和HR都很Nice,整体面试难度中规中矩,都是偏重于基础和简单的算法,另外面试流程也很快,基本上两周之内结束没问题。不过现在华为社招基本是OD,也就是挂靠到外企德科那边,不是正式员工,所以日后升职加薪可能会有所影响,这点大家需要自己考虑下。
蚂蚁金服
====
1.简历投递方式:朋友直接内推的,内推过后一周之内就联系面试了。
2.一面:线上电话面试,杭州打来的,主要是介绍下项目,他会根据项目中的技术点,进行一些讨论。印象比较深的是,当时我们讨论下分布式一致性的解决方案,但感觉他对我的回答不太满意,哈哈。最后会发一个链接过来做题,题目主要考察Java多线程的使用,我当时的题目是在某种场景下找到最快的支付方式。
3.二面:上海打来的电话面试,这轮是主管面试,也是项目为主,然后拓展开去很多基础问题,比如分布式锁、分布式一致性、事物、Java线程等等。这轮没有做题,聊了大概一个小时,就结束了。
3.三面:这次是2轮面试官的主管来面试,让我直接去上海蚂蚁Z空间面试。这轮的话,主要是讲项目或者是说更宏观一点的东西,没有具体技术细节。
4.HR面试:因为我面试的P6,所以3轮过后就直接HR面试了,HR侧重阿里味的考察,比如乐观、皮实等等。
总结:面试难度适中,流程基本上一周一面,整体下来一个月,当然不包括后续的背调、体检之类的,因此如果要面试阿里,可以提前一些开始面试,然后一边面试一边复盘总结。
PDD
===
1.简历投递方式:BOSS直聘找到pdd HR。
2.一面:视频面试。前半小时聊项目,后半小时做题。
3.二面:视频面试。前半小时聊项目,后半小时做题。
4.三面:视频面试。前半小时做题,后半小时聊项目。
5.HR面试:确定薪资,因为PDD的强度非常大,大家可以大胆一点要薪资,不然进去以后后悔就晚了。
总结:PDD的面试流程非常简单粗暴,就是做题加上聊项目,一半一半,题目难度基本是Leetcode上的Medium难度,我面试下来也没有碰到很偏很怪的题目,面试准备的时候,把Leetcode上面常考的200题刷一刷就没问题了。虽然最后没有去PDD,但是PDD的面试官和HR都给我留下很好的印象,面试流程很舒服,就像和朋友交流一样;PDD的流程很快,大概两周之内出结果,因为不同公司的流程不一样,HR那边一直等了我好几周,可以让我拿到其他Offer了再回复她,这点上真的特别感激。
百度
==
1.简历投递方式:BOSS直聘找到HR。
2.一面:视频面试。分享项目,然后问一些技术细节,主要偏向Java基础、缓存、分布式这块。
3.二面:视频面试。这轮和上轮差不多,不过会问更多的技术细节,让我在线写了一个生产者消费者模式,还有一个算法题。
4.三面:视频面试。主管面试,比较轻松一些,聊聊工作、聊聊规划就完了。
5.HR面试:确定薪资,百度的薪资组成是Base加上股票。如果有其他公司的Offer,可以大胆argue一下,HR可能会有各种理由说不能加了,但是一定要坚持argue,我体验下来,argue的空间还是很大的。
总结:面试侧重于纯技术,所以关于技术细节,一定要搞清楚弄明白;至于算法,百度考察的不深。面试流程很快,大概一周多就结束了。
经验总结
====
多家面试总结下来,考察的范围都很广,包括基础知识、项目和算法。
-
基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。比如Java的AQS原理,多线程,JVM内存等,框架的话,有Spring,MySQL、Redis、Kafka、ES、ZK等,都要十分熟悉。
-
项目,阿里比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,为什么要选择这种技术、架构怎么设计、以后如何扩展、出问题了怎么定位等等;这些在面试之前都要想清楚。
-
算法,这点没地说,就是要多刷题。面试了这么多公司,除了阿里,其他公司的每一轮都会要求做算法题,所以在面试之前要对各种常见算法了然于心,比如DFS、BFS、树、贪心算法、常见DP等等,有时间的话多去刷刷题找感觉。
面试题分享
=====
这部分分享一下我在面试准备过程中,以及面试时遇到的常考基础题,大家可以针对题目复习一下。所有的面试题及答案我都已经整理成PDF,需要的可私信【面试】二字领取!!
1. Java基础
==========
1.1 Hashmap 与 concurrentHashMap (重点)
1.2 集合相关问题
1.3 Java 泛型的理解
1.4 跳表(ConcurrentSkipListMap)的查询过程是怎么样的,查询和插入的时间复杂度?
1.5 java 字节流 字符流
1.8 包装类型和基本类型比较问题
1.9 为什么重写equals和hashcode
1.10 stringBuilder和stringBuffer的区别
1.11 Java序列化的原理
1.11 Java8、9、10、11的一些新特性介绍
1.12 java中四种修饰符的限制范围。
1.13 Object类中的方法。
1.14 浅拷贝 深拷贝
1.15 接口和抽象类的区别,注意JDK8的接口可以有实现。
1.16 动态代理的两种方式,以及区别。
1.16 传值和传引用的区别,Java是怎么样的,有没有传值引用。
1.17 一个ArrayList在循环过程中删除,会不会出问题,为什么。
1.18 Exception和Error区别
1.19 new关键字和newinstance()方法
1.20 Map、List、Set 分别说下你知道的线程安全类和线程不安全的类
1.21 Java防止SQL注入
1.22 反射原理及使用场景
1.23 static Vs Final ? 如何让类不能被继承
1.24 内存泄露?内存溢出?
1.25 重写Vs重载
1.26 Lambda表达式实现
1.27 ClassNotFoundException和NoClassDefFoundError的区别
2. 并发、多线程
==========
2.1 volatile 关键字 原理
2.2 对java中锁的理解
2.3 悲观锁 乐观说
2.4 对CAS的理解,java中的CAS,如何不用unsafe实现CAS
2.5 java 线程创建方式
线程run和start的区别?两次start同一个线程会怎么样?
2.6 Java线程池的原理?线程池有哪些?线程池参数是什么?
2.7 ThreadLocal及其应用场景
2.8 对线程安全的理解
2.9 get需要加锁么,为什么?
2.10 Lock的底层原理。synchronized、Lock、ReentrantLock、ReadWriteLock。
2.11 AtomicInteger怎么实现原子修改的?
2.11 分布式环境下,怎么保证线程安全。
2.12 产生死锁的四个必要条件?
2.13 如何中断线程
2.14 线程的状态都有哪些。
2.15 wait、notify、notifyAll、await、signal、sleep、yield
2.16 Callable和Future的了解。
2.17 synchronized关键字的用法,优缺点。
2.18 可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁
2.19 ABC三个线程如何保证顺序执行。
2.20 双线程交替打印奇偶 (阿里)
最后
最后,强调几点:
- 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
- 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
- 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。
面试答案
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
4106552)]
[外链图片转存中…(img-DkHEFdlL-1713544106552)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-0fX8CYgg-1713544106553)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!