- 博客(6)
- 收藏
- 关注
原创 Java的128陷阱问题
Integet的valueOf()方当中,如果我们的数值在-128-127之间的数值都存储在有一个catch数组当中,该数组相当于一个缓存,当我们在-128-127之间进行自动装箱的时候,我们就直接返回该值在内存当中的地址,所以在-128-127之间的数值用==进行比较是相等的。而不在这个区间的数,需要新开辟一个内存空间,所以不相等。128陷阱指的是:两个Integer对象使用==比较时,若数值在-128~127范围内,结果为true;== 对引用类型比较的是内存地址。(Unboxing)的对比。
2025-08-19 08:32:35
223
原创 Java 包装类详解
Java 包装类(Wrapper Classes)是将基本数据类型封装为对象的桥梁,使得基本类型可以参与到集合、泛型、反射等面向对象的操作中。Java 提供了与基本类型对应的包装类,如 Integer、Boolean 等。自动装箱和拆箱机制简化了基本类型与包装类之间的转换,但也带来了潜在的陷阱,如空指针异常和性能问题。包装类还实现了缓存机制,优化了常用范围内的对象复用。在使用包装类时,需注意 == 和 .equals() 的区别,避免频繁装箱拆箱带来的性能损耗,并正确处理 null 值以防止 NPE。包装类
2025-05-15 13:30:25
954
原创 Java 代理模式详解
代理模式是Java中的一种结构型设计模式,通过提供一个代理类来控制对目标对象的访问。它能够在不修改原有类代码的情况下增强功能,实现延迟加载、安全控制等功能。代理模式主要包括三种实现方式:静态代理、JDK动态代理和CGLIB动态代理。静态代理在编译期确定代理类,适用于小项目;JDK动态代理在运行时生成代理类,适用于实现了接口的类;CGLIB动态代理通过继承目标类实现代理,适用于无接口的类。代理模式广泛应用于权限控制、日志记录、事务管理等领域。掌握代理模式有助于编写更灵活、可维护的代码,并深入理解主流框架的底层
2025-05-15 13:02:02
774
原创 Java 反射机制详解
Java反射机制允许程序在运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。其核心在于通过JVM获取类对象后,反编译并获取对象的各种信息。反射的主要应用场景包括动态加载类、解耦和提高程序的可扩展性。例如,在Servlet中,反射机制用于加载JDBC类和MySQL的jar包,即使没有main方法,也能将类加载到JVM中。反射的工作原理与类的生命周期密切相关,通过Class.forName()、类名.class或对象.getClass()等方式获取Class对象。反射的常用功能包括获取类的属性、
2025-05-09 20:17:28
837
原创 Java 多态详解:方法重载与重写在运行时的动态绑定机制
Java 多态是面向对象编程的核心特性之一,通过继承、方法重写和父类引用指向子类对象实现。多态允许同一对象在不同时刻表现出不同形态,增强了程序的灵活性和可扩展性。实现多态的关键在于方法重写和动态绑定,即编译时检查父类方法,运行时执行子类重写的方法。通过代码示例展示了多态的实现机制,包括父类引用调用子类方法的过程,并分析了方法调用的编译期和运行期行为。多态在接口设计、框架开发和代码复用中具有重要作用,是 Java 编程中不可或缺的特性。
2025-05-09 17:19:35
328
原创 Spring Mvc 参数传递
在Spring的众多注解中,经常会发现很多注解的不同属性起着相同的作用,比如@RequestParam 的value属性和name属性,这就需要做一些基本的限制,比如value和path的值不能冲突,比如任意设置value或者设置path属性的值,都能够通过另一个属性来获取值等等。为了统一处理这些情况,Spring创建了@AliasFor标签。如果是使用注解@PathVariable必传的参数类型,不加参数会报404。@RequestMapping注解中也有应用。Spring Mvc 参数传递。
2025-04-18 17:09:19
465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人