发表于: 2025-04-19 20:41:06

0 103


今天完成的事情:

为什么需要单步调试?Debug的时候IDE是怎么找到源码的? 

单步调试之所以必要,是因为它允许开发者逐行执行代码以精确定位问题、验证逻辑正确性及理解程序流,这对于复杂问题的诊断和解决至关重要。当在IDE中进行调试时,IDE通过编译时生成的包含源码路径和行号等信息的调试符号表来定位源码,同时利用配置的源码路径或附加的源码文件,结合调试协议(如JDWP)与运行时环境通信,从而实现在断点处准确地展示对应的源码位置,支持开发者进行有效的调试工作。

可否远程连接到线上直接调试?真实的项目中,遇到问题的排查方案是什么?

可以直接线上测试线上问题应通过日志、监控、快照(Heap/Thread Dump)和诊断工具(Arthas/PerfMa)快速定位,禁止直接远程调试生产环境;优先回滚+离线分析,确保系统稳定。

Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

Spring中的IOC(控制反转)是一种设计原则,通过将对象的创建与管理职责从应用程序代码转移到容器来实现,使得依赖关系在运行时由外部容器注入到对象中,而不是在代码内部通过new关键字手动创建。使用IOC而不是直接new创建实例的主要原因在于它可以降低系统各组件之间的耦合度,提高代码的灵活性、可维护性和可测试性,同时支持更好的依赖管理和生命周期控制。这样做的好处是让开发者能够更专注于业务逻辑而非底层的基础设施管理,促进了模块化和重用。

什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?

贫血模型和充血模型是两种不同的领域模型设计方式。贫血模型指的是将数据与操作分离,实体类仅包含数据属性(getter和setter方法),业务逻辑、校验规则等则被放置在独立的服务层中;而充血模型则是将相关的行为和数据封装在一起,实体类不仅包含属性还包含有对应的操作方法及业务逻辑。尽管充血模型符合面向对象的设计原则,但在很多企业级应用特别是使用Spring框架的项目中,出于简化架构、增强事务管理以及便于测试等方面的考虑,可能会倾向于使用贫血模型。

clean,install,package,deploy分别代表什么含义?

clean:清理构建产物,保证环境干净。

package:编译并打包项目为 JAR/WAR 文件。

install:将包安装到本地 Maven 仓库,供本地项目使用。

deploy:将包发布到远程 Maven 仓库,供团队或生产环境使用。

怎么样能让Maven跳过JUnit?

快速跳过测试:使用 -DskipTests 或 -Dmaven.test.skip=true。

长期跳过测试:在 pom.xml 中配置 maven-surefire-plugin。

灵活控制:通过 Maven Profile 动态启用或禁用跳过测试


明天计划的事情:

遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)


返回列表 返回列表
评论

    分享到