09 2025 档案
摘要:MVC 一、Spring MVC的工作流程 客户端向服务端发送一次请求,这个请求会先到前端控制器DispacherServlet DispacherServlet接收到请求后会调用HandlerMapping处理器映射器——该请求由哪个Controller来处理 DispacherServlet调用
阅读全文
摘要:一、有哪些依赖注入方式? 构造方法注入:通过调用类的构造方法,推荐用于强依赖(没有依赖对象就没法工作)。这也是官方推荐的注入方式。好处:依赖不可变(final修饰)、更安全。 @Component public class UserService { private final UserDao us
阅读全文
摘要:Go语言代码覆盖率实现 一、什么是代码覆盖率 代码覆盖率是软件测试中的一种白盒测试度量指标,表示程序源代码中被执行的比例。简单来说,就是“我的测试到底跑过多少代码”。 覆盖率常见的几种标准: 语句覆盖(段覆盖、基本块覆盖):每一行代码是否至少执行过一次 分支覆盖:程序中的每个判断(if/else)是
阅读全文
摘要:Go单元测试打桩框架 Golang有常用的三个打桩框架:GoStub、GoMock、Monkey。 1、GoStub GoStub 是一款轻量级的单元测试框架,接口友好,使用方式简洁,能够覆盖多种常见测试场景: 全局变量打桩:替换全局变量的值,方便测试不同状态下的逻辑。 函数打桩:为函数设置自定义的
阅读全文
摘要:Golang相关测试框架 在 Go 语言里,最常用的测试框架有:自带的 testing 包、GoConvey 和 testify。 1、Go自带的testing包 testing 包是官方内置的,无需额外安装,也是大多数项目的首选。 (1)单元测试 测试文件必须以 _test.go 结尾,例如:ca
阅读全文
摘要:一、静态代码分析 静态代码分析是一种在不执行和运行程序的情况下检查源代码的方法。通过这种方法,自动化工具会扫描代码查找潜在的问题,如bug、安全漏洞或与编码标准的偏离。静态代码分析可以在执行或合并到main分支之前检查源代码中的问题。 动态代码分析是在代码被执行时,识别运行时的问题,例如性能瓶颈、内
阅读全文
摘要:ThreadLocal 1、ThreadLocal是什么 ThreadLocal就是线程本地变量,若创建了一个ThreadLocal变量,那访问这个变量的每个线程都会有这个变量的本地拷贝,但多个线程操作这个变量时,实际是操作自己本地内存里的变量,可以起到线程隔离的作用,避免了线程安全问题。 //创建
阅读全文
摘要:锁 1、synchronized用过吗?怎么用? synchronized是常用来保证代码的原子性的。 //1.修饰实例方法 // 有两个对象obj1和obj2,线程A调用Object.test(),线程B调用obj2.test(),不会互斥 // 但A和B如果都调用obj1.test(),会互斥/
阅读全文
摘要:Java内存模型 1、说一下你对Java内存模型(JMM)的理解 Java程序运行在各种硬件和操作系统上,不同硬件的CPU缓存策略、内存访问顺序、指令重排规则可能都不一样。那JMM是Java规范定义的一个抽象模型,是一套规则: 线程和主内存的交互:线程如何从主内存读变量、写变量 可见性保证:什么时候
阅读全文
摘要:基础 1、并行跟并发的区别 并行:同一时刻,多个线程都在执行,这就要求有多个CPU分别执行多个线程。 并发:在同一时刻,只有一个线程执行,但在一个时间段内,两个线程都执行了。其实现依赖于CPU切换线程,因为切换时间很短,所以基本对于用户是无感知的。 2、什么是进程和线程 进程:程序运行起来后在内存中
阅读全文
摘要:一、Spring框架的特性 IOC和DI支持:Spring 的核⼼就是⼀个⼤的⼯⼚容器,可以维护所有对象的创建和依赖关系,Spring ⼯⼚⽤于⽣成Bean,并且管理 Bean 的⽣命周期,实现⾼内聚低耦合的设计理念。 AOP编程支持:方便实现对程序进行权限拦截、运行监控等切面功能 声明式事务支持:
阅读全文
浙公网安备 33010602011771号