38 归档分页
370 留言互动
4 核心专题

Java并发编程:深入理解Synchronized关键字与ReentrantLock

本文系统阐述了 Java 并发中的两大锁机制:synchronized 与 ReentrantLock。synchronized 作为语言层面的基础同步,支持方法/代码块锁、对象锁、类锁,可重入但默认非公平,使用简洁安全。ReentrantLock 属于 java.util.concurrent.locks,提供显式加锁、可选公平/非公平、超时尝试、Condition 条件变量等高级特性,同样可重入,但需手动释放,使用复杂且易致死锁。文章比较两者在性能、灵活性、可读性及适用场景,建议在简单同步时优先使用 synchronized,需细粒度控制或条件等待时选用 ReentrantLock,以实现高效安全的并发程序。

深入理解Java虚拟机(JVM):内存模型与垃圾回收机制

本文系统阐述了JVM的内存结构与垃圾回收机制。首先介绍了程序计数器、虚拟机栈、本地方法栈、Java堆和方法区五大内存区域及其作用;随后解析了四类GC算法——标记‑清除、复制、标记‑整理和分代收集,并给出GC调优要点,包括选择合适的收集器、合理配置堆大小、优化对象分配以及使用VisualVM、JConsole等工具监控分析。掌握这些内容有助于提升代码性能、避免内存泄漏,并在面试中展示技术深度。

SpringBoot接口加密解密工具

本文介绍了一个基于 SpringBoot、通过注解实现的接口加密解密工具。工具支持 Base64、DES、3DES、AES、RSA 等对称/非对称算法以及 MD5 加密,只需在接口上添加 @ZxfEncryptResponse 或 @ZxfDecryptRequest 并指定 AlgorithmType 即可完成响应加密或请求解密。使用步骤包括拉取代码、打包成 jar、在项目中引入依赖并在配置文件中配置相应的密钥(DES、3DES、AES、RSA 公私钥),提供了一套可直接使用的密钥示例以及示例代码。项目源码已开源于 Gitee。

ChatGPT的api接口调用

本文介绍了在网站中接入ChatGPT问答功能的基本流程:准备可访问Google的网络环境和海外服务器,注册OpenAI账号并获取API Key,按照官方文档使用HTTP请求调用接口。提供了PHP示例代码,说明参数设置、请求头构造及返回结果处理。并提醒使用费用、代金券有效期以及防骗注意事项。

Spring定时任务

Spring在项目中通过Spring Integration模块提供定时任务功能,核心接口为TaskExecutor(执行Runnable)和TaskScheduler(调度任务)。常用实现包括ThreadPoolTaskExecutor和ThreadPoolTaskScheduler,满足大多数需求。使用时在配置类上加@EnableScheduling,标注@Scheduled的方法会被自动调度,方法必须无参无返回。默认单线程,可通过实现SchedulingConfigurer或在配置文件中设置spring.task.scheduling.pool.size来扩展线程池。@Scheduled支持cron表达式、fixedRate、fixedDelay和initialDelay等参数,分别控制执行频率、间隔和启动延迟。

HTML获取SpringBoot从model传的值

本文说明了在 Spring Boot 中如何通过 Controller 的 Model 向前端页面传递数据,并在 HTML 模板中使用 Thymeleaf 语法 [[${...}]] 获取并显示这些值。文章给出典型的 Controller 代码示例(使用 model.addAttribute 将数据放入模型),以及对应的 HTML 写法,演示了渲染后的效果图,帮助读者快速掌握后端数据在前端页面的读取与展示方法。

JS制造一个方法的方法

文章列举了 JavaScript 中声明函数的多种写法:传统函数声明、函数表达式、箭头函数之外,还可通过 `eval` 动态生成函数或使用 `new Function` 构造函数。后者接受参数名和函数体的字符串,可在运行时拼接代码并返回新函数,虽用得少但在需要动态生成代码时仍有价值。

ChatGPT国内免费使用

本文介绍了一个提供国内免费使用ChatGPT的中文网站,用户可通过链接 https://chat.gptchinese.info 直接访问并使用ChatGPT服务。

NC69 链表中倒数最后k个结点

本文介绍了在单链表中查找倒数第k个节点的题目及实现。要求时间 O(n),进阶空间 O(1)。采用快慢指针法:快指针先走 k 步,随后与慢指针同步前进,快指针到达链表末尾时慢指针即指向倒数第k个节点;若链表长度不足 k 则返回空链表。文中给出完整的 Java 代码实现。