Spring
文章平均质量分 93
Spring
山鬼、
坐错车和错过车哪个更遗憾?
展开
-
JVM调优理论与实践最佳结合
垃圾的定义:没有任何引用指向的一个对象或者多个对象(循环引用)原创 2023-10-09 13:57:35 · 447 阅读 · 0 评论 -
JVM内存模型
堆由老年代和新生代组成,新建的对象一般都是在存放在Eden区,当Eden区不够用时,就会就行Minior GC,回收垃圾对象释放内存空间,当垃圾回收后仍然存活的对象就会放到S0和S1其中一块区域,当再次发生Minior GC时,会把Eden区和有对象的S区中的存活对象移动到另外一块空的S区,这时先前有对象的S区又变成空的S区,所以S0和S1是相互转化的,当S区对象达到一定的阈值时,新生代的对象就会向老年代转移,当老年代的对象达到一定阈值时,就会触发Full GC。一个线程一个栈,一个方法一个栈帧。原创 2023-10-09 13:42:43 · 413 阅读 · 0 评论 -
JVM类加载机制
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。Java语言里类型的加载、连接、初始化都是在程序运行期间完成的。例如,编写一个面向接口的应用程序,可以等到运行时再指定其实际的实现类,用户可以通过Java预置的或者自定义类加载器,将某个应用程序在运行时从网络或者本机磁盘加载一个二进制流文件作为程序的一部分(比如SPI机制)。这都依赖Java语言运行期类才加载诞生的。/**原创 2023-10-09 13:36:40 · 443 阅读 · 0 评论 -
Java问题诊断和排查工具
在数字世界中,Java作为一种流行的编程语言,广泛应用于开发各种类型的应用程序。然而,在开发过程中,不可避免地会出现各种问题。本文将探讨一些用于诊断和排查Java问题的工具。原创 2023-09-17 12:57:44 · 1898 阅读 · 0 评论 -
Spring-IOC-深度学习
IoC代表控制反转(Inversion of Control),是一种软件设计原则,它反转了传统的程序控制流。在传统的程序中,应用程序负责控制和管理对象的创建和生命周期。而在IoC中,控制权被反转,对象的创建和管理变为由外部容器(通常是IoC容器)负责。将组件之间的依赖关系从代码中移出,将其配置在外部,由容器来负责管理这些依赖关系。这可以通过构造函数注入、方法注入或属性注入等方式来实现。原创 2023-09-15 08:37:12 · 1801 阅读 · 0 评论 -
Spring-AOP深度学习
AOP是一种编程范式,旨在将不同关注点(如日志记录、事务管理、性能监视等)与应用程序的核心业务逻辑分离开来。它通过在关注点与业务逻辑之间的交叉点(称为切点)上插入代码来实现这一目标。切点(Pointcut):切点是您选择在哪里插入额外代码的规则或条件。通常,它是一个方法的签名或一个特定的类。通知(Advice):通知是在切点上执行的额外代码块。原创 2023-09-15 08:34:06 · 1806 阅读 · 0 评论 -
Spring-反射
Java反射是一种在运行时检查和操作类、方法、字段等的机制。它允许您在编译时未知类的情况下,获取类的信息并调用其方法、访问其字段等。反射是Java语言的一个强大特性,但也需要谨慎使用,因为它可能会导致性能问题和代码可读性问题。反射的核心类是Class,它代表了一个类的运行时信息。您可以使用Class对象来获取有关类的信息,如类名、字段、方法等。总结一下,Java反射是一种强大的工具,可以在运行时检查和操作类、方法、字段等。但请注意,谨慎使用反射,避免破坏封装性和引入性能问题。原创 2023-09-15 08:29:44 · 1772 阅读 · 0 评论 -
如何解决循环依赖
循环依赖指的是两个或多个模块、类或组件之间形成的相互依赖关系环。通常,这些依赖关系是双向的,其中一个模块依赖于另一个模块,同时后者也依赖于前者。难以理解:循环依赖使代码的执行流程变得复杂,难以理解模块之间的关系。难以维护:当一个模块发生变化时,循环依赖可能会导致多个模块需要同时修改,增加了维护的复杂性。难以测试:循环依赖可能导致难以分离单元测试,因为一个模块的测试可能依赖于其他模块的状态。循环依赖是一个常见的问题,但可以通过仔细的设计和合适的解决方法来解决。原创 2023-09-15 07:20:13 · 2665 阅读 · 0 评论