青云博客 记录、分享

反射中,Class.forName和ClassLoader的区别

Class.forName和ClassLoader是Java反射中用于加载类的两种不同方式。 Class.forName是一个静态方法,通过提供类的完全限定名,在运行时加载类。此方法还会执行类的静态初始化块。如果类名不存在或无法访问,将抛出ClassNotFoundException异常。 Clas

詹学伟 Published on 2024-04-22

深拷贝和浅拷贝区别

深拷贝和浅拷贝是在进行对象的复制时常用的两种方式,它们有以下区别: 拷贝的程度: 浅拷贝只拷贝对象的引用,不创建新的对象实例。拷贝后的对象与原始对象共享同一份数据,对其中一个对象的修改会影响到另一个对象。 深拷贝创建一个全新的对象实例,并将原始对象的所有属性值复制到新对象中。拷贝后的对象与原始对象是

詹学伟 Published on 2024-04-22

谈谈自定义注解的场景及实现

自定义注解是Java语言的一个强大特性,可以为代码添加元数据信息,提供额外配置或标记。它适用于多种场景。 配置和扩展框架:通过自定义注解,可以为框架提供配置参数或进行扩展。例如,Spring框架中的@Autowired注解用于自动装配依赖项,@RequestMapping注解用于映射请求到控制器方法

詹学伟 Published on 2024-04-22

HashMap和Hashtable有什么区别

HashMap和Hashtable都是Java集合框架中Map接口的实现类,它们有以下几个区别: 线程安全性:Hashtable是线程安全的,而HashMap是非线程安全的。Hashtable通过在每个方法前加上synchronized关键字来保证线程安全性,而HashMap则没有实现这种机制。 n

詹学伟 Published on 2024-04-22

设计模式是如何分类的

根据应用目标,设计模式可以分为创建型、结构型和行为型。 创建型模式是关于对象创建过程的总结,包括单例、工厂、抽象工厂、建造者和原型模式。

詹学伟 Published on 2024-04-22

抽象工厂和工厂方法模式的区别

抽象工厂模式和工厂方法模式是两种创建型设计模式,都关注对象的创建,但有一些区别。 抽象工厂模式提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定具体的类。它适用于需要一次性创建多个相关对象,以形成一个产品族。抽象工厂模式通常由抽象工厂、具体工厂、抽象产品和具体产品组成。通过切换具体工厂实现

詹学伟 Published on 2024-04-22

说说你对设计模式的理解

设计模式是一套经过验证的、被广泛应用于软件开发中的解决特定问题的重复利用的方案集合。它们是在软件开发领域诸多经验的基础上总结出来的,是具有普适性、可重用性和可扩展性的解决方案。

詹学伟 Published on 2024-04-22

ArrayList和LinkedList有什么区别

ArrayList和LinkedList是Java集合框架中List接口的两个常见实现类,它们在底层实现和性能特点上有以下几点区别: 底层数据结构:ArrayList使用数组来存储元素,而LinkedList使用双向链表来存储元素。 随机访问性能:ArrayList支持高效的随机访问(根据索引获取元

詹学伟 Published on 2024-04-22

什么是值传递和引用传递

值传递和引用传递是程序中常用的参数传递方式。 值传递是指在函数调用时,将实际参数的值复制一份传递给形式参数,在函数内对形式参数的修改不会影响到实际参数的值。这意味着函数内部对形参的改变不会影响到函数外部的变量。在值传递中,对形参的修改只作用于函数内部。 引用传递是指在函数调用

詹学伟 Published on 2024-04-22

Java支持多继承么,为什么

Java不直接支持多继承,即一个类不能同时继承多个父类。这是由设计上的考虑和语言特性决定的。 Java中选择了单继承的设计,主要出于以下几个原因: 继承的复杂性:多继承会引入菱形继承等复杂性问题。当一个类同时继承自多个父类时,可能会出现命名冲突、方法重复实现等问题,导致代码难以理解和维护。 接口的存

詹学伟 Published on 2024-04-22
Previous Next