2021年Java开发突破20k有哪些有效的路径,我们究竟还要学习哪些Java知识

前言

关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。

近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成长笔记”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点!

Java成长笔记主要是将Java程序员按照年限来进行分层,清晰的标注着Java程序员应该按照怎样的路线来提升自己,需要去学习哪些技术点。

下面会介绍这份Java成长笔记的主要内容涵盖的知识点,由于文章篇幅,所以只展示了截图内容,完整版免费获取方式在文末!

image

**资料自取 【VX:vip1024b】**面(个人感觉回答得还不错)

1. 自我介绍
2. 说项目,项目问的非常深(本人提到之前做过的一篇关于FULL GC的问题定位和优化的项目以及一个多并发的项目)

2.1 对于自己产于过项目的系统定位是否清楚?
2.2 对于系统的各个模块是否清楚?
2.3 每个接口的tps?
2.4 对于上下游系统的依赖?
2.5 对于使用到的中间件、框架是否清楚?

3. 你觉得你做的项目中最有亮点的事情?
4. memcache redis同类中间的差异、优缺点?使用注意点有哪些?

memcache可以存储的数据类型只有字符串类型,而redis可以存储字符,list,sorted List,hash数据类型的数据;
memcache不支持数据持久化,redis支持RDB,AOF持久化;
memcache不支持集群,redis支持redis-cluster集群

5. redis分布式锁说说

我提到了redis的setnx()方法,以及使用redis的KV结构,lock作为key,key对应的value使用map结构,map中使用请求requestId作为map的key,过期时间作为map的value,获取锁使用cas算法,比较时间是否过期来获取锁和释放锁

6. TCP,UDP
7. 多并发项目的并发量,有没有压测过,以及QPS,请求的消息量太大,使用自己创建的任务队列会不会使内存爆?
8. Redis集群主从数据同步

主从集群实现了数据的读写分离,主服务器负责读写,偏重写,从服务器只负责读。主服务器启动之后向从服务器发送日志文件,从服务器根据日志文件进行数据的更新,之后如果主服务器有写操作,也会向从服务器发送相应的写操作

9. Zookeeper实现选举的原理

zk的选举过程中其起始所有结点的状态为looking,当某个结点的选票超过所有结点数的一半,该结点就会成为leader,结点状态为leading,其他结点会成为followers,结点状态为following。选举的依据是(sid,zxid)数据,sid代表结点的ID,zxid代表事务ID,选举过程中每个结点第一轮选举会选举自己作为leader,将(sid,zxid)发送给其他结点,其他结点收到数据(sid,zxid)与自身的数据做比较,如果zxid比自身zxid的要大,则直接选举当前结点;如果小于,坚持选举自己;如果zxid相等,比较sid哪个大,大者作为leader。

10. 说说分布式(我说的是Dubbo)
11. 数据库事务,分布式数据一致性如何实现?

读者可以了解一下ZAB协议,我大概就是围着ZAB协议说的

12. SpringIOC,SpringAOP

我简单说了说IOC,AOP的原理,以及原理依赖的模式

13. 数据库事务的隔离级别

四大隔离界别:Uncommitted-read Commited-read Repeated-read Serializable分别针对数据库脏读,不可重复读,虚读问题

14. 谈谈RPC

RPC远程调用,说了说原理,使用到的组件,以及RPC主要的任务:序列化,传输数据,方法调用(方法对应的ID)

15. 算法题:笔试题-最短路径问题(这道题是通过的)
某物流派送员p,需要给a、b、c、d4个快递点派送包裹,请问派送员需要选择什么的路线,才能完成最短路程的派送。假设如图派送员的起点坐标(0,0),派送路线只能沿着图中的方格边行驶,每个小格都是正方形,且边长为1,如p到d的距离就是4。随机输入n个派送点坐标,求输出最短派送路线值(从起点开始完成n个点派送并回到起始点的距离)。

我的做法是使用排列算法,将所有的情况排列出来,计算最短路径

二面(个人感觉回答的特别垃圾,六道问题回答了两道)

1. 自我介绍
2. 怼项目,各个角度刁难
3. FULL GC问题排查工具

我做项目时其实没有使用什么工具,就是用Linux命令TOP,TOP交互命令 1,H;jsatck,jstat以及JVM的相关参数和JVM日志的查看

4. 从事开发遇到最具有难度的问题
5. Spring事务,嵌套事务

这道题其实我是被问懵了,我回答得相当不好,一直回答事务隔离那一块,面试完我总结了一下有关Spring事务相关知识点

6. 面向接口编程的好处是什么

问的问题太抽象,我回答不好,面试官说不够完善

7. 数据库两个insert同时操作同一张表,第一个线程操作一半,问第二个线程会发生什么?

我回答的稀巴烂,下来查了一下,大概就是说这里涉及到的锁是间歇锁,读者可以看看相关知识

8. 说说死锁

举个例子,两个线程1和2,两个锁a和b,线程1拿到a锁后申请要b锁,而同时线程2已经拿到b锁,要申请a锁,两个线程之间陷入僵持状态

最后

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

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

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

[外链图片转存中…(img-IwfE4gc5-1648914465319)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值