青云博客 记录、分享

设计模式是如何分类的

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

zhanxuewei zhanxuewei Published on 2024-04-22

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

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

zhanxuewei zhanxuewei Published on 2024-04-22

说说你对设计模式的理解

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

zhanxuewei zhanxuewei Published on 2024-04-22

ArrayList和LinkedList有什么区别

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

zhanxuewei zhanxuewei Published on 2024-04-22

什么是值传递和引用传递

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

zhanxuewei zhanxuewei Published on 2024-04-22

Java支持多继承么,为什么

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

zhanxuewei zhanxuewei Published on 2024-04-22

构造器是否可被重写

构造器在Java中是一种特殊的方法,用于创建和初始化对象。与其他普通方法不同,构造器的名称必须与类名一致,并且没有返回类型。 在Java中,构造器不能被直接重写。子类无法定义与父类相同名称和参数的构造器。这是因为构造器是用于创建对象并初始化其状态的特殊方法,它与类的实例化密切相关。如果允许子类重写构

zhanxuewei zhanxuewei Published on 2024-04-22

"懒汉模式"和"饿汉模式"

懒汉模式和饿汉模式都是单例模式的实现方式,用于确保一个类只有一个实例存在。 懒汉模式:在首次使用时才进行对象的初始化,延迟加载实例。它可以避免不必要的资源消耗,但在多线程环境下需要考虑线程安全和同步开销。 饿汉模式:在类加载时就进行对象的初始化,无论是否需要。它通过类加载机制保证线程安全性,而且获取

zhanxuewei zhanxuewei Published on 2024-04-22

有哪些常见的运行时异常

运行时异常是在 Java 程序运行过程中才会出现的异常,通常情况下不需要进行 try-catch 处理。以下是 5 个常见的运行时异常: 空指针异常:当应用程序尝试使用 null 对象时抛出。 数组越界异常:当应用程序尝试访问数组元素的时候,数组下标超出了数组的范围。 类转换异常

zhanxuewei zhanxuewei Published on 2024-04-22

char型变量能存贮一个中文汉字吗

在Java中,char类型是用来表示单个字符的数据类型,它采用Unicode编码,可以存储各种字符,包括中文汉字。 由于Unicode编码使用16位来表示一个字符,char类型占用2个字节的内存空间。而中文汉字通常使用UTF-8编码,一个中文字符占用3个字节的存储空间。因此,将一个中文汉字直接赋值给

zhanxuewei zhanxuewei Published on 2024-04-22
Previous Next