Java教程

2021年Java开发突破20k有哪些有效的路径?架构师必备技能

本文主要是介绍2021年Java开发突破20k有哪些有效的路径?架构师必备技能,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

这段时间也一直在学习Netty相关知识,因为涉及知识点比较多,也走了不少弯路。目前网上关于Netty学习资料玲琅满目,不知如何下手,其实大家都是一样的,学习方法和技巧都是总结出来的,我们在没有找到很好的方法之前不如按部就班先从基础开始,一般从总分总的渐进方式,既观森林,又见草木。
Netty是一款提供异步的、事件驱动的网络应用程序框架和工具,是基于NIO客户端、服务器端的编程框架。所以这里我们先以NIO和依赖相关的基础铺垫来进行剖析讲解,从而作为Netty学习之旅的一个开端。

复习过程

  • 项目准备;
  • leetcode:刷完剑指之后每天会刷2-4道leetcode
  • java基础: 主要刷面经、重点掌握垃圾回收机制
  • 操作系统: 之前没学过,用几天时间看了一下最重要的进程线程、死锁、消费者生产者、哲学家问题、银行家算法
  • 计算机网络:花几天时间复习了一下,重点复习tcp(三次握手四次挥手拥塞控制流量控制)、udp、https
  • 数据库: 重点了解了索引的实现以及引擎的区别
  • 数据结构和算法: 主要通过剑指offer和leetcode进行复习
  • 其他:期间也做过大大小小好几次笔试,还有一些往届练习卷

腾讯

一面(3.13电话面)

  1. 自我介绍
  2. 介绍项目以及项目遇到的难点
  3. java的hashmap是否安全?hashmap、hashtable、concurrenthashmap的区别、底层和实现
  4. mysql索引的底层实现
  5. jvm垃圾回收机制
  6. tcp、udp区别和适用场景
  7. tcp三次握手、四次挥手,为什么挥手不能只有三次
  8. 线程和进程的区别
  9. 进程通信的方式有哪些
  10. 堆是线程共有还是私有,堆是进程共有还是私有,栈呢
  11. 了解过协程吗(我:携程???不了解呜呜呜)
  12. mysql查询优化
  13. 快速排序的时间复杂度、原理(口述算法)
  14. 最近在看什么书
  15. 除了腾讯还投了其他的公司吗
  16. 问我愿不愿意转go,并推荐我了解一下协程,最后让我耐心等待,面试的人太多,需要对面试的同学进行挑选,两周内会告知我结果
  17. 有什么想问的(对我的评价和学习建议)

二面(3.22现场面)

  1. 自我介绍
  2. 问我为什么发现自己不喜欢做客户端(简历中有一个安卓实习项目)而想做后台
  3. 介绍项目(一个电商小程序)
  4. 项目中的商品是否有考虑过xxx(忘记叫什么了,意思就是是否有考虑过同一种商品有不同的颜色、规格,在数据库中如何区分这些不同)
  5. 介绍项目的支付流程,并画一下流程(白板)
  6. 介绍一下订单状态码的含义,以及交易过程中订单状态码如何变化
  7. 如何防止商品的超卖现象
  8. 项目是否具有秒杀功能
  9. 并发的时候,如何保证性能
  10. 在分库之后,如何设计id
  11. 在分库后,一条插入请求,在上层不做处理,如何直接在数据库找到相应的库并插入库中的某个表
  12. 当服务器的cpu一直很高时,如何找出原因
  13. 是否用过调试工具
  14. 当项目一直无法访问的时候,如何定位错误
  15. 介绍一下aop和ioc
  16. 如何将一个ip地址由点分制(xxx.xxx.xxx.xxx)和int类型间进行相互转化
  17. 如何判断一个数是否为2的n次方
  18. 可实习时间
  19. 是否愿意转go
  20. 有什么想问的(对我的评价和学习建议)

hr面(3.26电话面)

  1. 自我介绍
  2. 介绍一下实习经历
  3. 实习中遇到的困难以及如何解决这些困难
  4. 未来计划,是否读研

面试总结

一面的问题都很中规中矩,唯一卡住的就是协程了,确实不会,只能和面试官说我不了解。
主要和大家分享一下二面的面试体验吧。因为二面自我感觉答得不是很好,有很多问题当时没记录下来,现在一时也想不起来。所以上面的面经并不完整。
当时面试完走出大厦以为自己挂掉了,结果刷新了一下状态发现变为hr面,真的超级意外。现在想想大概是因为我在遇到不会的问题时,没有直接说自己不会,尽量把答案往自己知道的方向回答。

  • 第7题,项目没有秒杀功能我也没做过,但是了解过一些,只能和面试官说确实没有,然后让他听我讲一下我的实现思路,期间又让面试官挖出了很多问题考我TAT
  • 第9题、第10题,面试官要求我在分库的场景下回答问题,我先回答了分表情况下如何实现,他肯定了我在分表下的做法,但是分库情况还需要另外考虑,我实在想不出来,才和他说自己没有办法实现,但这总比我直接说自己不会好。
  • 第13题,如何定位错误的时候,先讲了一下无法访问的几种情况,以及大量tcp处于time_wait、close_wait这两种状态的原因和解决方法。
  • 面试结束后,等电梯的时候突然想起面试中一个一直理解错误导致解不出的问题,发现自己想歪了之后赶紧编辑完答案又给面试官发了过去,这个答案后来得到了面试官的认可。

最后

每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。

如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。

领取这份Java零基础宝典只需要点击这里即可免费下载

](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**

[外链图片转存中…(img-Jgrd3YUD-1620609646283)]

这篇关于2021年Java开发突破20k有哪些有效的路径?架构师必备技能的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!