青云博客 记录、分享

构造器是否可被重写

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

詹学伟 Published on 2024-04-22

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

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

詹学伟 Published on 2024-04-22

有哪些常见的运行时异常

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

詹学伟 Published on 2024-04-22

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

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

詹学伟 Published on 2024-04-22

2个不相等的对象有可能具有相同hashCode吗

有可能 两个不相等的对象有可能具有相同的哈希码。哈希码是由对象的哈希函数生成的一个整数值,用于支持快速查找和比较对象。 然而,由于哈希码的范围通常比对象的数量小得多,因此不同的对象可能会产生相同的哈希码。这种情况被称为哈希冲突。 哈希算法设计的目标是将不同的输入均匀分布在哈希码空间中,但无法避免完全

詹学伟 Published on 2024-04-22

synchronized的实现原理

synchronized是Java语言中最基本的线程同步机制,它通过互斥锁来控制线程对共享变量的访问。 具体实现原理如下: synchronized的实现基础是对象内部的锁(也称为监视器锁或管程),每个锁关联着一个对象实例。 当synchronized作用于某个对象时,它就会尝试获取这个对象的锁,如

詹学伟 Published on 2024-04-22

synchronized锁优化

synchronized还有一种重要的优化方式,即锁的优化技术。在Java 6及以上版本中,JVM引入了偏向锁、轻量级锁和重量级锁的概念来提高锁的性能。这些优化方式的原理如下: 偏向锁:偏向锁是指当一个线程获取到锁之后,会在对象头中记录下该线程的标识,下次再进入同步块时,无需进行额外的加锁操作,从而

詹学伟 Published on 2024-04-22

ThreadLocal有哪些应用场景

ThreadLocal是Java中的一个类,它提供了一种在多线程环境下实现线程局部变量存储的机制。 它的应用场景包括线程池、Web开发中的请求上下文信息管理、数据库连接管理和日志记录等等。

詹学伟 Published on 2024-04-22

讲讲你对ThreadLocal的理解

ThreadLocal是Java中的一个类,用于在多线程环境下实现线程局部变量存储。它提供了一种让每个线程都拥有独立变量副本的机制,从而避免了多线程之间相互干扰和竞争的问题。 在多线程编程中,共享变量的访问往往需要考虑线程安全性和数据隔离问题。ThreadLocal通过为每个线程创建独立的变量副本来

詹学伟 Published on 2024-04-22

浅谈CopyOnWriteArrayList

1.Copy-On-Write 是什么? Copy-On-Write它是一种在计算机科学中常见的优化技术,主要应用于需要频繁读取但很少修改的数据结构上。 简单的说就是在计算机中就是当你想要对一块内存进行修改时,我们不在原有内存块中进行写操作,而是将内存拷贝一份,在新的内存中进行写操作,写完之后呢,就

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