工作2年渣本面试被虐惨,回家修炼2个月,终于挤进“字节跳动”!  还记得,今年年初因为疫情一直被困在家里出不去,后面3月份去了一趟字节跳动面试,结果却被虐惨。哎,只恨当初不好好学习,读书的时候要么出去嗨皮,要么就打王者,三天打鱼两天晒网,怎么也学不进去。后面毕业了,找了份测开。工作快两年了,现在才下定决心好好学Java,3月去面试之前,其实我差不多也是个懵逼的状态吧,总以为自己还挺不错的,结果却被现实赤裸裸的打脸了,实力被吊锤(三范式都答不出来你敢信?),真的简直一渣渣。       灰溜溜的回家,一下就感觉对什么都失去了信心,多亏了朋友们的鼓励。下定决心,痛改前非,用了2个月时间,好好学习。基本所有常见知识点都扫了一遍,然后用思维导图捋顺复习思路,常见考点深入源码,多思考为什么?每天早上8点起来学习到晚上11点多,然后睡觉。(当然,除去吃饭洗澡上厕所的时间)说实话,这两个月下来,感觉自己都脱胎换骨了。讲真,专心学东西,学完真的很爽。虽然现在还是有很多不足,毕竟突击学习的东西不够稳固,但是也是告诉大家,突击也是有可能拿offer的,不要放弃,多投多面!     对了,去了两次字节,趁着现在还有点记忆,回忆一下我完整的一次字节面经(Java后台开发岗,3面技术1面hr)    字节面经  一面    自我介绍:讲了下自己的项目经历  问了下技术栈  HashMap 和 ConcurrentHashMap 的区别?  线程池  线程安全怎么实现?  数据库的锁  数据库的三范式  线程和进程的区别  Redis 的过期策略、缓存雪崩、惰性删除  MySQL索引、b+树,为什么不用哈希map来存储?  最左前缀原则  算法题目:随机链表复制      给定一个链表,节点数据结构如下,除了包含一个next指针,还包含一个rand指针,随机指向链表的某一元素,或者为空指针,实现一个函数,深复制这个链表,要求空间复杂度O(1)。     struct Node {  int val;  Node* next;  Node* rand;}       算法题目:滑动窗口算法      给定m个不重复的字符[a,b,c,d], 以及一个长度为n的字符串tbcacbdata, 问能否在这个字符串中找到应该长度为m的连续子串,使得这个子串刚好由上面m个字符组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面的这个例子,acbd,返回3。要求优化到O(N)。     二面    怼项目(质疑我的缓存一致性操作,然后我口嗨用消息队列解决并发问题)  手写单例模式-懒汉模式  InnoDB和MyISAM的区别  索引的底层实现结构是什么?为什么要这么实现?三层B+树节点的个数如何计算?  JAVA的锁、乐观锁悲观锁  代码题:最大岛问题(我想了个分治,思路不对,直接爆炸,面试官还是不错的,给我换了道题)  代码题:有序数组旋转后找最小值所在位置、给出一个有环的链表输出环的长度;  代码题:给出一个链表,每两个节点旋转一次,最后返回旋转后的链表;  智力题:64匹马,8个赛道,找出前四匹马最少需要比几次;  三次握手,最后一次握手能不能取消?  TCP的四次挥手  HTTPS  分代回收在整个GC中处于什么位置?   三面    自我介绍、怼项目、Redis缓存  synchronized锁是什么锁(我就说了是系统的同步互斥锁)原理应该是monitor(监视器)  垃圾回收(然后我说了四种引用什么时候GC)  为什么hashmap不是线程安全的?  LRU在操作系统怎么实现?  HashMap扩容底层实现  Git 底层实现;如何解决冲突?  设计题:关注系统怎么设计? 可以关注、取关别人 可以查看关注、粉丝列表 可以查看关注、粉丝数 快速判断两个人的关系  如果有大V(粉丝数很多),你的系统有没有问题?或者说如果觉得没问题,为什么没问题?(存储上,使用上)  编程题1:股票利润1  编程题2:股票利润3(可以买卖两次)(查了下,就是股票利润3,hard)   (写了半天,头秃,之前都没做过,想了几个办法都感觉不行,不断地跟面试官交流,好在最后在面试官的引导下写出来了) 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。    编程题3:两个单向链表进行加和,例如1->2->3->4,另一个是3->4,返回一个链表1->2->6->8;不可以遍历转出数字直接加。。。   HR面  都是一些比较常规性的问题,这里就不说了。  继续唠嗑  开头的时候我说过在复习的时候,把基本比较常见的知识都扫一遍(我扫的是一份30个章节分类的Java知识大全整理),然后用思维导图捋顺复习思路(我这儿有JVM、Spring、SpringBoot、性能调优、多线程、高并发、Redis、MySQL、kafka、RabbitMQ等),常见的考点深入源码(这边源码我主要是算法的源码、Spring的源码等),然后就是刷题目了。     简单说说...(其实这些“Java知识大全整理、思维导图、源码、算法、还有刷题大全1000以及各大厂的面经”我这儿都有整理,如果有需要可以直接来找我免费领取,添加VX “MXM9809”即可分享免费下载的方式)      Java知识大全整理   这个PDF真的很全面,有JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算等    Java知识大全整理    思维导图(每个小分支点击都有相应的解析,上几个看看)     Redis思维导图    Spring思维导图    MySQL思维导图    多线程并发编程思维导图    刷题(互联网 Java 工程师面试1000题)   包括了Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等    互联网 Java 工程师面试1000题    互联网 Java 工程师面试1000题    关于算法学习      应该有很多朋友想问我算法怎么准备?其实我个人偏向兔系刷法,第一遍思考5分钟做不出来的题目直接看答案,但是注意,最终每道题一定要自己完整的敲出答案来,不能边写边看。二刷的时候追求速度,一天10道题左右,题目范围就是 剑指offer 和 Leetcode100。另外一个,Leetcode上有一个字节跳动的题目区,里面的题目字节确确实实很常考,建议大家熟练掌握。     而且如果你选择看视频学习,这里也有技巧,很多人都有这种思维误区,看书的时候总爱一页一页看,一行一行读,看了前面忘了后面,看视频也是一点点看,效率其实不算高;建议讲废话的地方、你已经懂的地方,倍速播放, 拿好本子记录关键节点对应的时间戳,后续复习翻本子找对应的时间节点来看,效率怎么样,谁试谁知道。    各大厂面经     各大厂面经  不论是算法Leetcode、各大厂的面经、互联网 Java 工程师面试1000题、思维导图、Java知识大全整理还是更多的Java学习,上面截图可以看见小编这边都有整理,如果你不想麻烦再去找,可以直接添加VX “MXM9809”即可!     
点赞 0
评论 0
全部评论

相关推荐

白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务