0
点赞
收藏
分享

微信扫一扫

java做视频网,9次Java面试经验总结

圣杰 2022-03-30 阅读 72

前言

多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲。在平时工作中如若使用不当会出现数据错乱、执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关重要。

java做视频网,9次Java面试经验总结

小编接下来会从基础概念开始到最后的并发模型由浅入深,讲解下线程方面的知识。

二、什么是循环依赖

循环依赖直白点就是发生在两个类,你引用我,我引用你的状态,如图:

java做视频网,9次Java面试经验总结

三、如果不依赖于Spring自己解决循环依赖如何解决

以上图为例,假设,我们能够创建完成AService之后,放置到到一个缓存中,再去注入属性!每次注入属性的时候,所需要的属性值都从缓存中获取一遍,缓存中没有再去创建不就解决了?如图所示:

java做视频网,9次Java面试经验总结

总结一下上面的流程:

  1. AService创建完成后将自己加入到二级缓存,然后开始注入属性
  2. 发现AService依赖BService于是先查询一级缓存是否有数据一级缓存没有就查询二级缓存,有就返回,没有就创建BService
  3. 缓存中没有,开始实例化BService,然后注入内部属性!
  4. 注入内部属性时发现依赖AService,于是先查询一级缓存是否有数据一级缓存没有就查询二级缓存,有就返回,没有就创建,很显然,二级缓存是有数据的。于是从二级缓存《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》

Java优秀开源项目:

  • ali1024.coding.net/public/P7/Java/git

  • github.com/spring-projects

取出AService注入到BService

  1. BService创建完成后将自己从二级缓存挪到一级缓存,并返回。
  2. AService获取到BService后,注入到自己的属性中并把自己从二级缓存挪的一级缓存,返回AService!
  3. 至此,循环依赖创建完成!

那么有了上面的思路,我们如何用代码实现一遍我们的逻辑呢?

最后

俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!

另外,给大家安排了一波学习面试资料:

image

image

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!

举报

相关推荐

0 条评论