
Java 基础
文章平均质量分 95
面试题专栏
Yaml墨韵
热爱编程、熟悉全栈开发,商务合作或者有开发需求可加文章底部vx,期待与大家共同进
展开
-
Java定时任务全解析:从基础到高级
单机定时任务的常见解决方案有TimerDelayQueue、Spring Task 和时间轮,其中最常用也是比较推荐使用的是时间轮。另外,这几种单机定时任务解决方案同样可以实现延时任务。Redis 和 MQ 虽然可以实现分布式定时任务,但这两者本身不是专门用来做分布式定时任务的,它们并不提供较为完整和强大的分布式定时任务的功能。而且,两者不太适合执行周期性的定时任务,因为它们只能保证消息被消费一次,而不能保证消息被消费多次。因此,它们更适合执行一次性的延时任务,例如订单取消、红包撤回。原创 2024-11-30 14:00:00 · 865 阅读 · 0 评论 -
Java 序列化详解
如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。序列化:在序列化过程中,对象的状态被保存为一连串的字节,这些字节可以保存到文件中或通过网络传输。序列化后的字节流可以在需要时进行反序列化反序列化:与序列化相反,反序列化是指将字节流转化为对象的过程。在反序列化过程中,字节流被重新组装成对象,并恢复对象的状态。原创 2024-11-22 10:30:00 · 1066 阅读 · 0 评论 -
Java基础常见面试题总结(下)
Java 泛型(Generics)是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如这行代码就指明了该ArrayList对象只能传入Person对象,如果传入其他类型的对象就会报错。并且,原生List返回类型是Object,需要手动转换类型才能使用,使用泛型后编译器自动转换。原创 2024-11-22 14:30:00 · 936 阅读 · 0 评论 -
全面解析:常见加密算法及其应用
这篇文章介绍了三种加密算法:哈希算法、对称加密算法和非对称加密算法。哈希算法是一种用数学方法对数据生成一个固定长度的唯一标识的技术,可以用来验证数据的完整性和一致性,常见的哈希算法有 MD、SHA、MAC 等。对称加密算法是一种加密和解密使用同一个密钥的算法,可以用来保护数据的安全性和保密性,常见的对称加密算法有 DES、3DES、AES 等。非对称加密算法是一种加密和解密使用不同的密钥的算法,可以用来实现数据的安全传输和身份认证,常见的非对称加密算法有 RSA、DSA、ECC 等。原创 2024-11-29 10:30:00 · 1824 阅读 · 0 评论 -
Java SPI 机制详解
Java SPI(Service Provider Interface)机制是Java官方提供的一种服务发现机制,它允许在运行时动态地加载实现特定接口的类,而不需要在代码中显式地指定该类。这种机制为框架或库的扩展点提供了实现方式,使得开发者能够在运行时动态插入或更换组件的实现。以下是对Java SPI机制的详细解析:SPI 即 Service Provider Interface ,字面意思就是:“服务提供者的接口”,我的理解是:专门提供给服务提供者或者扩展框架功能的开发者去使用的一个接口。原创 2024-11-21 19:15:00 · 933 阅读 · 0 评论 -
深度解析 Java 类加载器:聚焦双亲委派机制核心要点
类加载器从 JDK 1.0 就出现了,最初只是为了满足 Java Applet(已经被淘汰) 的需要。后来,慢慢成为 Java 程序中的一个重要组成部分,赋予了 Java 类可以被动态加载到 JVM 中并执行的能力。根据官方 API 文档的介绍:类加载器是一个负责加载类的对象。是一个抽象类。给定类的二进制名称,类加载器应尝试定位或生成构成类定义的数据。典型的策略是将名称转换为文件名,然后从文件系统中读取该名称的“类文件”。每个 Java 类都有一个引用指向加载它的。不过,数组类不是通过。原创 2024-11-21 14:40:16 · 804 阅读 · 0 评论 -
Java 语法糖全解:深入理解背后的编译魔法
语法糖(Syntactic Sugar)也称糖衣语法,是英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。我们所熟知的编程语言中几乎都有语法糖。作者认为,语法糖的多少是评判一个语言够不够牛逼的标准之一。很多人说 Java 是一个“低糖语言”,其实从 Java 7 开始 Java 语言层面上一直在添加各种糖,主要是在“Project Coin”项目下研发。原创 2024-11-20 10:28:18 · 1349 阅读 · 0 评论 -
Java 反射机制详解
反射是 Java 语言中的一种强大机制,它允许程序在运行时动态地获取类的各种信息(如类的属性、方法、构造函数等),并且能够创建对象、调用方法和访问属性。:能够在运行时动态地操作类,使得代码更加灵活,可以根据不同的情况加载和使用不同的类和方法,适应复杂多变的业务需求。例如,一个恶意的程序可以通过反射访问和修改其他类的私有成员,从而破坏数据的完整性和安全性。,这种方式在根据类的全限定名动态加载类时非常有用,比如在加载数据库驱动时,会根据配置文件中的驱动类名动态加载对应的驱动类。类是 Java 反射机制的核心。原创 2024-11-19 10:16:51 · 942 阅读 · 0 评论 -
Java 基础面试题深度剖析(中):进阶必备知识
浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。深拷贝:深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。上面的结论没有完全理解的话也没关系,我们来看一个具体的案例!浅拷贝浅拷贝的示例代码如下,我们这里实现了Cloneable接口,并重写了clone()方法。clone()方法的实现很简单,直接调用的是父类Object的clone()方法。原创 2024-11-19 09:54:09 · 1164 阅读 · 0 评论 -
Java 基础面试必备:常见问题精华总结(上)
方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。返回值的作用是接收出结果,使得它可以用于其他的操作!1、无参数无返回值的方法//......2、有参数无返回值的方法//......3、有返回值无参数的方法//......return x;4、有返回值有参数的方法重写就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变。区别点重载方法重写方法发生范围同一个类子类参数列表必须修改一定不能修改返回类型可修改。原创 2024-11-18 10:56:08 · 666 阅读 · 0 评论 -
深度解析 BigDecimal:Java 高精度计算的核心利器
BigDecimal可以实现对浮点数的运算,不会造成精度丢失。通常情况下,大部分需要浮点数精确运算结果的业务场景(比如涉及到钱的场景)都是通过BigDecimal来做的。浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断。具体原因我们在上面已经详细介绍了,这里就不多提了。想要解决浮点数运算精度丢失这个问题,可以直接使用BigDecimal来定义浮点数的值,然后再进行浮点数的运算操作即可。// 0。原创 2024-11-18 10:52:58 · 1059 阅读 · 0 评论