八股打卡(七)

揭秘大型语言模型:从神经元到思维透明的奇妙旅程 这篇博客带你走进大型语言模型的内部世界,从神经元的小任务,到功能向量的团队合作,再到层间的协作和思维的透明化。掌握这些知识,能让你在开发中更高效地优化AI,在研究中更深入地探索模型的奥秘。建议多动手实践,把这些理论变成自己的能力! 阅读详情

Spring 循环依赖

什么是循环依赖

多个Bean之间相互依赖,形成闭环。

如何解决循环依赖

Spring循环依赖的理论依据是基于Java的引用传递。当我们获取对象的引用时,field可以延后设置,但是构造器必须在引用之前。
Spring生成一个Bean需要以下过程:

  1. createBeanInstance实例化:使用构造器来创建Bean实例;
  2. populateBean填充属性:涉及多个Bean的引用;
  3. initializeBean初始化:调用spring xml中的init方法。
    发生循环依赖一般是在第一二步,构造器循环依赖和field循环依赖。
    解决Spring单例的循环依赖问题,采用三级缓存。
  4. 在singletonObjects一级缓存中获取;
  5. 如果获取不到,在earlySingletonObjects二级缓存中获取;
  6. 如果获取不到,那么在singletonFactories三级缓存中调用getOebct方法获取;
  7. 从三级缓存获取到后,将它从singletonFactories中删除,放入earlySingletonObjects中。

举个栗子
Bean A的setter方法或field依赖了Bean B的实例对象,Bean B的setter方法或field依赖了Bean A的实例对象。

  • Bean A通过构造器完成初始化第一步,被提前暴露到singletonFactories中。在第二步时,发现需要调用get(B),那么去寻找B,发现B还没被创建,那么就先创建B。
  • Bean B同样通过构造器完成初始化第一步,在第二步时,发现需要调用get(A),那么去寻找A。
  • 在singletonObjects中寻找A,找不到;去earlySingletonObjects中寻找A,找不到,去singletonFactories中寻找,找到了半成品A,继续完成初始化第二三步,B完成了初始化,被放到singletonObjects中。
  • 返回A,A从singletonObjects中获取到B,顺利完成初始化第二三步,A完成了初始化。
  • 由于B中有A的对象引用,那么B也完整地完成了初始化。

什么循环依赖无法解决

  1. 构造器依赖:三级缓存的前提是通过构造器生成了半成品的对象。
  2. prototype bean:Spring只会在需要的时候创建它,实例化它,不会缓存它,也就是不能提前暴露一个创建中的bean。

JDK动态代理 vs. cglib动态代理

  1. 基于接口&基于类
    jdk动态代理基于接口,被代理类需要实现一个或多个接口。
    cglib动态代理基于类,通过生成目标类的子类实现代理,通过继承实现代理类,不能代理final类和final方法。
  2. 性能:
    jdk动态代理通过反射调用来实现代理,创建代理的开销较小。但是频繁调用比cglib耗时。
    cglib动态代理通过字节码生成来实现代理,创建代理的开销较大。但是实际调用性能较好,没有反射调用的开销。
  3. 适用场景:
    jdk动态代理:接口驱动编程。
    cglib动态代理:没有实现接口的类。

Java中的反射机制

Java中的反射机制核心是运行时动态加载类并获取类的详细信息。本质是JVM获取class对象后,通过class对象反编译获得类的详细信息。
Java是一个先编译后运行的语言。程序中的对象类型在编译时期就确定下来了,有些类之前用不到,就没有加载到JVM中,通过反射能够动态创建对象调用属性。在编译时JVM不需要直到运行的对象是谁。

Spring中的设计模式

  1. 工厂设计模式:Spring通过工厂设计模式的BeanFactory和ApplicationContex来创建Bean。
  2. 单例模式:Spring中的Bean默认是单例模式。
  3. 代理设计模式:Spring AOP功能的实现。
  4. 模板方法模式:Spring中jdbcTemplate、hibernateTemplate等以Template结尾的对数据库操作的类/
  5. 包装器设计模式:项目中连接多个数据库,不同用户根据需求访问不同的数据库。
  6. 观察者设计模式:Spring的事件驱动模型。
  7. 适配器设计模式:Spring MVC中controller。

Spring MVC执行流程

  1. 用户发送请求到前端控制器DispatcherServlet。
  2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。
  3. HandlerMapping根据请求找到具体的处理器,生成处理器对象和处理器拦截器返回给DispatcherServlet。
  4. DispatcherServlet调用HandlerAdapter处理器适配器。
  5. HandlerAdapter经过适配调用具体的控制器Controller,也即后端控制器。
  6. Controller执行,返回ModelAndView。
  7. HandlerAdapter将ModelAndView返回给DispatcherServlet。
  8. DispatcherServlet将ModelAndView传给ViewResolver视图解析器。
  9. ViewResolver解析生成View。
    10.DispatcherServlet根据View渲染视图,返回响应给用户。

SpringBoot Starter的作用

SpringBoot Starter 是为了简化和加速项目的配置和依赖管理。

  1. SpringBoot Starter是预配置的模块,封装了特定功能的配置和依赖项。引入Starter依赖后,开发人员无需手动配置相关依赖和参数。常见的Starter有Spring-Boot-Starter-Web应用于Web应用、Spring-Boot-Starter-data-jpa用于数据访问,引入这些Starter后,Spring会自动配置所需的组件和Bean。
  2. Starter管理相关功能的依赖项,包括其他Starter和第三方库,能够确保它们良好协作,避免版本冲突和依赖问题。
  3. Starter的设计使得应用程序能够通过引入不同的Starter来完成模块化的开发。每个Starter专注一个功能领域,包括数据库访问、消息队列和web应用等。
  4. 开发者能够自定义Starter,用于共享和重用特定功能的配置和依赖项。

Java 8新特性

  1. lambda表达式:简洁的语言编写匿名函数。
  2. StreamAPI:使用声明式方法对集合操作,包括过滤、映射、排序、归约。
  3. 函数式接口:Consumer, Predicate, Function。
  4. 新的日期时间API:java.Time,解决了java.util.Date和java.util.Calendar的问题。
  5. 方法引用:方法引用通过方法名引用,而不是执行它。
使用verilog设计实现QR分解 QR(正交三角)分解法是求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。 使用verilog对QR实现方法进行设计并进行功能仿真: 如下: 顶层模块代码: module TOP( H1R, H1I, H2R, H2I, H3R, H3I, H4R, H4I, clk, rst_n, Y1R, Y1I, Y2R, Y2I, X1R, X1I, X2R, X2I ); parameter width = 16; // I 阅读详情

相关推荐

PaddleOCR训练自己的数据

一 、数据准备 采用PPOCRLabel标注自己的数据 PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置PP-OCR模型对数据自动标注和重新识别。使用Python3和PyQT5编写,支持矩形框标注和四点标注模式,导出格式可直接用于PaddleOCR检测和识别模型的训练。 1.1 安装PaddlePaddle pip3 install --upgrade pip # 如果您的机器安装的是CUDA9或CUDA10,请运行以下命令安装 python3 -m pip in.

zyb的博客 1万+

卡码网八股训练营40天打卡ending

值得一提的是这个录音打卡的方式,能很好的模拟面试时的情况,因为在面试中,我们很难大段大段地输出专业的名词,只能将相关的知识转换为自己的理解再讲述出来。同时,每天还有精华帖子,可以听一下其他同学的录音,与自己的进行比较,对自己的语音组织进行改进。在这个训练营中,我几乎坚持每天,偶尔遇到有事,也会在之后补回来。通过按时的打卡,我加深了对各类八股文知识的理解,也学习到了新的知识。

linyuanalice的博客 710

Unity游戏开发:从零开始适配Nintendo Switch的完整指南

本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。

vodka的博客 1069

40天的八股文总结

四十天前报名参加了卡哥的八股文训练营,在这四十天中每周都在训练营中打卡,可以通过念出来的方式进行八股文的记忆,同时还可以听到其他训练营中的朋友们的打卡,这让人感觉非常的有动力,每天都有更强烈的记忆八股文的信念。回头看都是慢慢的收获。

weixin_45138295的博客 417

新手入门机器学习案例(附源代码)

无

guguo666的博客 6656

车辆TBOX科普 第7次 TBOX技术深度解析:硬件架构与核心组件详解

摘要: TBOX(车载远程信息处理单元)是智能网联汽车的核心组件,承担数据采集、通信连接与安全交互等关键功能。其硬件架构以主控单元为核心,采用ARM架构处理器(如NXP i.MX系列)实现高效能低功耗处理,搭配DDR4/LPDDR5内存保障性能,eMMC/UFS存储确保数据可靠性。设计中需平衡车规级可靠性(AEC-Q100)、EMC兼容性及成本控制,同时集成通信、定位与安全模块。未来趋势聚焦异构计算、先进制程及功能安全(ASIL-D)与信息安全融合,推动TBOX向边缘计算节点演进。该技术是汽车智能化转型的重

IT深耕十余载,大道之简 861

卡哥四十天八股训练营学习总结与感悟

需要承认的是,这40天的八股内容大多都很基础(就需要这样的),但是卡哥也配备了相应的学习文档执导大家应该学习到什么程度,同时也会给予相应的拓展学习链接(虽然我很少看hhhh)。面试的时候经常会出现这样的情况:前两天背的八股在今天的面试中都用上了,就感觉很爽。而且感觉实习面试的八股都是比较简单的,相对来说基础很多(不知道秋招是不是)。下面我会分两个模块,分别记录实习面试当中被问到的八股训练营内容,以及我被问到的答得不好的其他八股,gogogo。指针和引用的区别,左值引用和右值引用的区别?(记不清了,但必会)

ly_qwq77的博客 1995

【Qt】QML-01:使用QtCreator10创建QML工程,并讲解第一个程序:Hello World

QML第一讲:创建QML工程、详解QML第一个程序Hello World

郭老二 7796

代码随想录八股训练营 完成总结

其实我感觉这次的八股打卡还是留有一些遗憾的,因为我在第三周和第四周的时候,生了病心情也不好,直接旷了两周的打卡。不过,我在最后两周的时候,一天打两天的卡,赶着今天把所有的打卡都补完了。

weixin_64434454的博客 1379

环境配置 |Jupyter lab/Jupyter Notebook 安装与设置

ipynb使用Jupyterlab/Jupyter Notebook 来编写程序时的文件,在使用时,可以现转换为标准的.py的python文件。

weixin_44649780的博客 5773

图像算法中的 Blob 分析

在计算机视觉中,Blob 可以理解为在图像中具有相似性质(如颜色、亮度等)的像素群体。Blob 通常用作基本单元,在图像分析和处理任务中能够提取出有意义的特征。

m0_44975814的博客 2483

代码随想录八股训练营总结

代码随想录八股训练营总结

m0_67804957的博客 966

Vue - 详细实现低代码平台,支持拖曳式可视化生成应用软件功能,用户通过拖拽元素、搭积木的方式创建应用(适合迭代的基础架构、低代码平台)

Vue低代码平台-拖曳式拖拉拽可视化生成应用软件,拖拽式低代码数据可视化开发平台,vue实现拖拽,拖拽式Vue组件代码生成平台,基于vue的可视化拖拽代码生成工具,Vue实现可拖拽组件的方法,一个低代码平台的前端部分,靠拖拉拽生成页面。Vue技术栈从零实现低代码可视化搭建平台示例,低代码轮子,通过拖拽就可生成Vue代码的平台来了,vue低代码平台开发相关比低代码更强大的零代码开发平台,这款低代码SAAS数据可视化工具,拖拽生成大屏。vue实现拖拽效果,Vue自由拖拽缩放组件,自定义组件(文本、图片

🏆 前端领域优质创作者 1万+

关于目前面试八股文的一些心得体会

现在出去面试,明显能够感觉到和之前不一样了,八股文几乎是每个厂家的必备面试环节,从计算机网络,数据库,操作系统,到具体语言的实现细节,都会问到并且会深入去挖掘。这个网站,有配套的视频,有由浅入深的讲解,有几乎全覆盖的从简单的数组到动态规划等进阶难度,非常全面。一方面,随着信息的传播,越来越多的新人涌入了这个赛道,另一方面,众所周知的原因,不管大厂还是小厂在经历寒冬之后,要么裁员,要么停止扩张。自九月初开始,至今为止,坚持了40天的打卡,窃以为,随着时间和自己的努力,对八股文的理解有了很大的提升。

my博客 497

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

代码随想录---八股文训练营Day40(总结)

最后,其实这段40天的八股训练营对我的好处有点多,不论说是帮我梳理了知识体系还是说让我把之前背不下来的八股背下了,这都对我的用处很大,并且我也把这40天的八股训练记成了笔记,也算是我以后面试前突击的一个小资料吧。

qq_50993361的博客 1201

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

代码随想录八股文训练营总结

【摘要】本文总结了代码随想录八股文训练对面试准备的帮助。代码随想录整理的高频题目虽然数量不多,但能串联相关知识点进行拓展,覆盖了大厂常见考题。以TCP四次挥手为例,不仅掌握基础概念,还能深入理解实际应用中的变通方案和相关衍生问题。3月以来的实习面试中,遇到的八股文基本都在准备范围内。建议结合录音功能反复练习回答技巧,同时要根据自身技术栈(如C++)补充其他资料系统整理。最后强调持续学习的重要性。

stm_white的博客 464

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

40天背C++八股文

坚持每天打卡背八股不是一件简单的事,就算在有每天打卡要求的情况下也会漏掉几天,还是需要别人推动你去做这件事,事情驱动型的做,才会做到坚持不懈。为了找工作自己付出了多少时间和精力,一定会在未来有所回报的,朝着心中既定的目标去,一定会成功,只是时间问题,但是我会在既定的时间内做到最好!从今天开始回顾卡码网八股文的同时也要开始背嵌入式的八股,每天都背一点,积少成多!同时每天也要刷题+准备项目!

weixin_47450156的博客 128

代码随想录八股训练营

解决焦虑的最好的办法就是动手做”,我一直也都是很抗拒八股的,从2月开始,一直都跟着八股训练营开始每天打卡八股,即便再忙也会把八股训练营当做一个每天必须完成的任务。虽然现在找实习仍然还是0offer,但是面试的时候八股确实答得很溜了。唉,希望我能够拿到心仪的offer吧。

m0_63594371的博客 120

代码随想录八股文打卡40天心得体会

【代码】【无标题】

summitcode的博客 144

卡码八股训练营40天心得总结

40天,说长不长,说短不短,但对于我来说,这段时间无疑是一次全新的挑战与蜕变。从每天坚持打卡、录音,到不断琢磨“八股”的写作方法,我不仅学会了如何严谨地构思和表达,更在这过程中体会到了持续努力的力量。

qq_45975088的博客 383

代码随想录-八股文训练营-结营总结

代码随想录-八股文训练营-结营总结

Yu13682352451的博客 1053

八股训练营40天打卡

由于自己在本科的基础打的不是很好,有很多东西也是一知半解。最近面临毕业找工作的难题,对于那些八股文很是头疼,在去年的时候我看了一个月的JavaGuide,看的时候觉得已经会了,但是今年回过头再看,发现根本说不出来。后来过年在刷题的时候,看到了代码随想录中有八股文训练营这个平台,感觉这个很不错,能够督促我,并且通过录音知道自己在实际中是什么鬼样子,及时调整。还能看到其他大佬对问题的理解。

NLXXDMX的博客 132

八股训练营总结篇

本人非科班出生,基础很差,起初加入八股训练营的目的是想快速过一遍八股,好在年底找到一个日常实习,但在打卡过程中发现,没有基础直接背诵是很痛苦的一件事,翻来覆去即使背下来了后修还是会忘记。于是边恶补基础边努力打卡,虽然学得云里雾里但还是收获了很多,让我知道基础不牢地动山摇的道理。而且八股的准备过程离不开项目的支持,要优先掌握项目相关的八股,最好理解加记忆,死记硬背是不行的。接下来还会继续注重基础的学习,只有理解了再去看面试题,效率才会更高,加油。

2301_78149965的博客 259

四十天Java八股文打卡训练营的蜕变之旅

过去的四十天,我参加的Java八股文语音打卡训练营不仅让我对Java语言有了更深入的理解,也极大地提升了我的编程技能和问题解决能力。每一天的学习都以语音打卡的形式开始,这种形式强化了我的学习责任感,也增加了学习的互动性。随着每一天的深入学习,我逐渐意识到,坚持这样的学习方式不仅让我在知识上得到了积累,更重要的是,在思维方式和解决问题的方法上也有了显著的提升。我现在看待问题的角度更加全面,解决问题的方法更加多样,编码的速度和质量都有了明显的提升。

keepstandard的博客 391

【八股训练营40天打卡感想】

训练营初期,我的技术基础还停留在Java SE和Web开发的入门阶段,对后端开发的很多知识领域都感到陌生。但随着在训练营的学习让我逐步建立起了完整的知识体系。训练营使用的"图解网络"等资料,以直观的方式讲解复杂概念,降低了一定的学习门槛。作为非科班出身,这一点尤为重要。现在,我每天都会记得复习八股知识,这种持续学习的习惯也让我颇为受益。相信在保持这种学习热情和习惯的基础上,我会在技术道路上取得更大的进步。回顾这段学习历程,我收获的远不止知识本身,更重要的是养成了坚持学习的好习惯,找到了适合自己的学习方法。

QingFengshuo的博客 181

参与卡哥八股训练营总结

但是自从一天懈怠之后,从找到实习之后,由于破窗效应,欠下的债越来越多,从一天做一次笔记到一周做一次笔记,到最后不做笔记。不过总算还是完成了所有的打卡,尽管有的内容背完了还是会忘,但是总算是对计网、操作系统、数据库、C++都熟悉了一遍。一开始踌躇满志,每天都背的很认真,认真做笔记。每天从实验室打完工,还会去楼梯间抱着iPad 背八股。一件事情,不管完成度如何,做了就比不做的好,希望在后续秋招过程中,能一直保持学习状态和心态。

Chen_Xuejuan的博客 163
上一篇: 八股打卡(六)
下一篇: 字典树运用
code120302
博客等级 码龄7年 195粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值