赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
我只会java,哈哈哈。所以面试官就问java了。jvm问的还挺深,什么tlb,逃逸分析,栈帧里面有什么,还好去年看过全都防出去了。
3.说下metaspace和permGen。
本来信号就不好,还说英文,我听了几遍才知道问的是元空间和永久代。简单说了下。然后
4.元空间中创建对象会不会开辟物理地址内存
这tm问的是什么?我题目都不太懂orz
5.system.gc()一定会触发gc吗?和full gc有什么关系?
不一定。该题回答的比较朴素。哈哈。java就这么结束了
6.redis的aof文件过大怎么处理,怎么解决,开启aof的方式有几种?了解rewrite命令吗?
由于不了解这一块儿,几乎团灭了。redis还算是我的强项,结果居然败的这么惨
7.kafka。。。
回答没用过(其实用过,但是好多年前的事情了,所以就直接说没用过,简历上只写了rocketmq。)
8.用过什么mq,说一下rocketmq的消费方式,什么是死信队列
只用过rocketmq。集群和广播,面试官问只有这两种吗,我说是啊。然后大家一阵尴尬。 死信队列简单讲下就结束了。
9.说一下exchange。。
回答说我没用rabbitmq(其实我用过)。面试官原来前面听错了,以为我用过的是rabbitmq,吐槽说难怪消费方式回答只有两种。
10.ack机制,offset何时位移,broker复制原理
作为mq白痴,基本回答的都是浅尝即止。其实我activemq,rabbitmq,rocket,kafka都用过(毕竟跳槽多)。但是mq确实是我的弱项,唉,这一块儿面的我直接心态崩了,当时心想要挂要挂。
11.mysql索引优化没有走对是什么原因
终于又问我擅长的了。说了下优化器的策略,面试官说不是想问这个,就问我explain,然后我就把explain的字段都说了一遍,面试官说还是理解错了。然后说算了这题跳过,有点小尴尬
12.explain语句会执行sql吗
不会,优化器就结束了。所以rows会有误差。
13.mysql两段提交
说了下binlog和redolg以及分组。说实话,直接就说两段提交,不熟悉的人可能都不知道问的是啥啊
14.说下undolog,是不是只有rollback才会触发undolog
基于回滚保证原子性。由于innodb的锁是锁住索引,所以更新主键之类的的时候,原数据也会保留,所以更新后微commit前一条数据会变两条。 在commit的时候会回滚掉原数据,这个场景有点绕,但是我觉得我应该没回答错。
15算法
字符串数组中的字符能否拼接成为某个字符。由于不是牛客原题,当时心态又比较崩。所以这题算然不难但是最后没写出来没走通用例orz。
面完心态崩了,除了mysql,其他回答的都一般,算法也没做出来。面试官看我脸色不好,还挥手让我后面加油。当时是真的以为自己挂了。没想到最后有三面,这里感谢下2面面试官,哈哈哈。
字节跳动3面:
三面面试官是个大佬,头秃的严重,全程都挺忙的样子,有点心不在焉,大多都是聊天,问了下三分工作公司都是干啥的,自己做了什么项目。聊天10分钟,技术10分钟,算法5分钟。
1.java创建一个网络io流。会有什么操作,基于java底层或者网络或者操作系统说一下。
这块我java就简单了下(因为据说字节哪怕面的是java,也很可能做go,所以感觉多少点语言之外的可能好一点)。主要还是说了操作系统和网络。比如ringbuffer,dma,软中断硬中断之类的。
2.零拷贝说一下
就简单说了下sendfile和mmap。此外提了句senfile比较类似于网络中的对等概念,然后转到了网络
3.说一下ftp和http的区别
不了解ftp,跳过
4.文件下载一般用什么协议,udp还是tcp
udp用的多一点,两个都可以。udp主要nat穿透的话打洞容易,这一题过。
5.close wait和time wait有什么区别
这两个我回答的时候刚好说反了,哈哈哈
6.怎么保持长链接,为什么需要长链接
keep-alive。不然每次链接都要创建fd,浪费资源开销。
7.日志海量收集
开始的时候没听懂问什么就说日志用kafka啊。最后他提示多台机器,我就说mapreduce,简单说了下mapreduce,就结束了。
8.你说的主要是离线处理,如何实现实时的呢
流处理的话,flink,spark都没用过,所以不抢答了(我简历也没写我会大数据啊。怎么问这个orz)
9.算法
给出一串字符串,写出选取三个字符组合出来的所有可能。这一题是唯一一题白板,不需要运行。(这题看到我就想用dfs加回朔,但是问了下面试官说固定只选三个,我就傻傻的决定写了三层for循环,写完后面试官看了一下说你就写了三层循环啊,我说嗯)
这一面问的感觉都有点莫名其妙,很多人看了我的面经都吐槽问的都是些啥。最后就挂在这个算法上了。感觉自己傻了。内推我的老哥说我面评就一句话,说我算法表达弱,我想想就明白了,大家写算法的时候一定要想清楚,宁可写出来是错的,思路也要往最优解走啊。唉,字节也是我第一次当场写算法,以为只要结果对就行了,结果吃了不了解套路的亏。
字节总结
最后知道挂了还是很可惜,不仅已经到第三面了,最重要的是明明是能做出来的,结果自己傻x了。唉,看来是和字节无缘(感觉对不起2面面试官)。不过字节的效率还是很高的(腾讯这点就太逊啦)。可惜了我刷了这么多算法,字节面完后我就再也没有刷过一题算法了。要说最大的问题,就是之前没写过算法,所以一旦不是牛客的原题,我就会很慌。其实当时我的算法水平已经够应付社招了。至少之后没再刷过一题算法以及其他公司算法难度和字节差不多的情况下,我都是基本快速撸完,还没有哪个五分钟不能过的。也算是字节让我在算法上成了老油条吧233。
腾讯
======
在字节挂了之后的第二天就开始腾讯一面啦。字节和腾讯的面试经历感觉互为镜像。字节是我面的第一家,而腾讯则是我面试的最后一家。也是找腾讯的小伙伴内推。开始投的csig(去年12月面过然后挂了)一周后得知简历挂了,然后转投ieg,几天后简历也挂了。最后内推了pcg(居然也是个java部门),终于能面了。虽然我还是想面csig啦。
腾讯1面:
一面应该是组长,人很好。也是腾讯唯一一个和我全程视频露脸的面试官orz。是我今年所有面试经历中最好的,没有之一(另外提一下第2的话应该是微盟的2面,上海的小伙伴也可以试试微盟啊)。这一面只面技术不问项目(正好我项目不行,美得很)。技术一个小时10分钟(天呐是今年最长的一场了),算法五分钟不到结束。
1.说一下mysql的悲观锁乐观锁实现
乐观锁版本号加自旋。悲观锁就是slect for update或者 share mode
2.java里面是怎么实现的呢
悲观所主要是synchronized,走的操作系统mutex,又讲了一遍锁省级。乐观锁就是cas,底层是cpu指令。又说了下unsafe相关的内容。
3.如何取舍乐观锁悲观锁场景
当时面试心情好,就说了大实话。场景取舍类似于上厕所。小号就是乐观锁,毕竟排队一会儿就能等到,配合自旋等待就行了,如果使用悲观锁上下文切换(从厕所走到工位)花费的时间不划算。大号就是悲观锁了,毕竟等待的时间一般会很长。二者取舍就预测是否发生竞争,或者竞争的时间长不长。
4.说一下concurrenthashmap怎么实现。1.8比起1.7有什么优化
cas+synchronized,1.7则为分段锁。另外优化了寻址算法和hash算法(具体说了下两个公式)。(ps,最重要的红黑树没说,不过感觉不要紧啦)然后说了下怎么计算总数。扩容的步骤。
5. concurrenthashmap和hashtable的区别
一个最终一致,一个强一致。前者读的时候不加锁。
6.问一下网络吧。三次握手过程,能不能改为两次
经典八股文。ack,syn,半链接这些说一下就可以了。不能改为两次,如果没有中间消息丢失在没有超时机制的情况下就会产生网络的死锁。(不过终于到了我最擅长的网络啦,之前除了字节三面就没人问我网络,不愧是腾讯,嘻嘻)
7.四次挥手说一下,能不能改为三次。为什么要等待2msl
挥手过程又是八股文。可以改为三次,只要服务端开启延迟发送,第二第三步就可能变成一步。2msl是为了保证序列号不紊乱,不产生脏数据。顺便说了下序列号怎么产生的。
8.tcp的一些八股文,校验和,滑动窗口,拥塞控制,流控,nagle算法
又是基础八股文,tcp最大的缺点也就在流控了。流控还要维护整体网络,正常人一旦页面读取失败肯定会疯狂刷新页面啊。怎么可能等待一段时间再刷页面呢。
9.https加密过程
这一题我说太多了,从seesionid,sessionticket到加密套件的四个字断含义,加密套件只有两个算法需要填写,而只有一个算法需要填具体值。还有服务端是否需要发送证书,客户端是否需要发送证书。不同加密算法 ECDSA和RSA中间的过程有什么不同,讲到一半就感觉很累,不想讲了。越讲越快。
10.ca证书如何验证
标准八股文,就一般证书sha1加sha256验证证书完整性。还有就是最重要的密码套件中的算法怎么用(一般就是aes和sha256)。又讲了下证书链,多级证书。还有openssl的pem转crt等等。什么是自签证书(diss了一下12306,哈哈)。到这里网络就结束了
11.说一下redis的数据结构,zset怎么实现的
基础的5个加布隆过滤器,hyperloglog,geohash之类的。zest和字节一面说的一样。
12.zset怎么实现排名
span字段
13. 布隆过滤器怎么实现的,能否有删除功能
bitmap多个hash,增加计数器功能就能一定量实现删除功能(删除这块儿面试官不知道,所以听完有点懵逼,说自己之后在想一下我说的话)redis在这里就结束了
14.数据库的事物隔离级别,各基于什么方式实现
分享一份自己整理好的Java面试手册,还有一些面试题pdf
不要停下自己学习的脚步
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
面试题pdf
不要停下自己学习的脚步
[外链图片转存中…(img-yuMfGHPx-1713322766068)]
[外链图片转存中…(img-1NebLb5r-1713322766068)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-A4WAiprk-1713322766069)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。