标签: java

49 篇文章

Thread.sleep(0)有意义吗?
Thread.sleep(0)在某些情况下是有意义的,尽管它看起来像是“不睡眠”。让我们从多个角度分析它的用途和原理: 1. 操作系统层面的行为 // 虽然参数是0,但实际行为取决于操作系统 Thread.sleep(0); 关键点: 在大多数操作系统中,sleep(0)会让当前线程主动放弃剩余的CPU时间片 线程状态从运行态变为就绪态,触发一次线…
Spring的声明式事务在多线程的场景当中会失效,那怎么解决呢?
Spring的声明式事务在多线程场景中确实会失效,主要是由于事务管理依赖于ThreadLocal存储连接。以下是详细的失效原因和解决方案: 1. 失效原因分析 @Service public class UserService { @Transactional public void processInNewThread() { new Threa…
java Integer和int有什么区别,为什么要设计封装类?
Java 中 int和 Integer的主要区别如下: 核心区别 特性int (基本类型)Integer (包装类)类型基本数据类型类(引用类型)内存栈内存存储值堆内存存储对象默认值0null比较用 == 比较值用 equals() 比较值,== 比较引用泛型不能用于泛型可用于泛型(如 List<Integer>)方法无方法提供丰富方法…
Spring如何解决循环依赖问题?
Spring 通过三级缓存机制解决单例 Bean 的循环依赖问题,但仅适用于通过 setter/字段注入的循环依赖,构造器注入的循环依赖无法通过三级缓存解决。 一、三级缓存结构 // Spring 中的三级缓存 public class DefaultSingletonBeanRegistry { // 一级缓存:存放完全初始化好的 Bean(成品…
Java 中 Lock 和 synchronized 的区别是什么?
1. 基本特性对比 特性synchronizedLock (如 ReentrantLock)实现方式​Java 关键字,JVM 内置支持Java 接口,需要显式创建对象锁获取​自动获取和释放锁需要显式调用 lock() 和 unlock()灵活性​较低,结构固定较高,可控制锁的获取时机性能​早期版本较差,JDK 1.6 后大幅优化通常性能更好,尤其…
一份Eclipse常用插件的清单
一、Java开发相关插件 Lombok 背景:在Java开发中,大量的getter、setter、构造函数等代码编写比较繁琐。Lombok通过注解的方式在编译阶段自动生成这些代码。 示例:如果有一个User类,使用@Data注解,就可以自动生成get、set方法等。 细节:它减少了代码的冗余,提高了代码的整洁性,但需要在项目构建配置中添加相应的支持…
Java调用DeepSeek API的最佳实践与代码示例
1. 获取API密钥 首先,你需要从DeepSeek平台获取API密钥。这个密钥将用于验证你的请求。 2. 添加HTTP客户端依赖 Java中常用的HTTP客户端库有HttpURLConnection、Apache HttpClient、OkHttp等。你可以选择其中一个来发送HTTP请求。 例如,使用OkHttp,你可以在pom.xml中添加以下…
使用Java实现国密SM3算法
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。 SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用…
Java实现MQTT消息对接
MQTT简介 MQTT是一种基于TCP/IP协议族的轻量级消息传输协议,最初由IBM开发,主要用于远程传感器和控制系统之间的通信。其核心特点包括: 轻量级:协议本身占用资源少,适合资源受限的设备。 高效:消息传输速度快,延迟低。 可靠:支持多种消息质量等级(QoS),确保消息的可靠传输。 灵活:支持多种客户端和服务器实现,易于集成。 Java MQ…