GaGa's Blog

One GaGa, One World !

JCP(Java Community Process) 是 Java 技术规范的官方制定与演进方向制定,由 Oracle 主导维护。

它的核心作用是:

  • 定义 Java 标准(语言、API、平台)
  • 组织社区(厂商、个人、组织)参与规范制定
  • 保证 Java 生态的一致性与兼容性

可以理解为:
JCP = Java 标准制定的立法机构

Read more »

  • GraalVM 是一个高性能的JDK 分发,同时也是一个多语言运行时(polyglot runtime),不仅支持 Java/JVM 语言,还支持 JavaScript、Python、Ruby、LLVM bitcode 等。

  • 它的目标包括:提升 JVM 语言(如 Java、Kotlin、Scala 等)性能、缩短启动时间降低资源消耗,同时支持多语言互操作。

核心特性

  • JIT/编译器改进:GraalVM 包含了 Graal 编译器,可作为 HotSpot 的替代或补充。

  • Ahead-of-Time 编译(AOT)/Native Image:一个亮点是可以将 Java 应用编译成本地二进制(native executable),从而在很多场景中获得极快的启动速度和较低内存/CPU 消耗

  • 多语言互操作(Polyglot):允许在同一运行时内混合使用多种语言,并且降低不同语言间调用的开销。

Read more »

云厂商的“抢占式实例”(或称为“竞价实例”)通常是指在云平台中,按照实时竞价方式提供的实例。这类实例通常是云服务商在数据中心的空闲计算资源上提供的按需、价格相对较低的计算实例。因为其基于资源剩余和竞价模型,使用时存在一定的不确定性和风险,**云厂商可能随时回收这些资源(默认竞价获得实例拥有时间1h)**。


抢占式实例的特点

  1. 低成本:相比标准实例,抢占式实例通常价格更便宜,适合成本敏感型的应用。

  2. 资源随时可能被回收:抢占式实例的主要特点是,云服务商可以根据资源需求情况随时回收这些实例。因此,它们适合运行那些不需要持续稳定运行的负载。

  3. 短暂性:这些实例通常有最大使用时间限制,且云厂商会在资源紧张时优先回收它们。

  4. 适用场景

    • 计算密集型任务(如大规模数据处理、数据分析、批量计算等)
    • 高可扩展性的微服务应用
    • 在任务完成后可以容忍实例中断的工作负载
    • 分布式系统中的部分任务,如容错机制较强的系统(例如 Hadoop、Spark)
Read more »

DeepSeek-TUI 是一个面向终端(Terminal)的 AI Coding Agent(代码代理)工具,本质上属于:

  • Terminal Native AI Agent
  • TUI(Text User Interface)交互模式
  • 面向 DeepSeek V4 系列模型优化
  • Rust 编写的高性能终端代理框架

它的定位并不是简单“聊天 CLI”,而是:

“可直接在终端中读写代码、执行命令、管理 Git、搜索 Web、协同子 Agent 的 AI 开发代理系统”

Read more »

Kubernetes Probe(探针)用于:

  • (startProbe)判断容器是否已经启动完成
  • (readlinessProbe)判断容器是否可对外提供服务加入/剔除service endpoint
  • (livenessProbe)判断容器是否健康

K8s 会根据 Probe 结果决定:

  • (startProbe)是否继续等待启动
  • (readlinessProbe)是否将 Pod 加入 Service Endpoint
  • (livenessProbe)是否重启容器
Read more »

dhi.io 本质上是Docker 官方提供的一个专用镜像仓库(registry),用于分发:

Docker Hardened Images(DHI,安全加固镜像)

它类似于:

  • docker.io(Docker Hub)
  • ghcr.io(GitHub Container Registry)
Read more »

JedisLettuce 都是 Java 生态中主流的 Redis 客户端,但它们的设计理念、线程模型、性能特征、适用场景差异非常明显。

一句话总结:

  • Jedis:同步阻塞模型,简单直接,适合传统项目
  • Lettuce:基于 Netty + 异步非阻塞,适合高并发和现代微服务架构

Read more »

.xsdXML Schema Definition(XML 模式定义)文件的后缀,用于定义 XML 文档的结构和约束规则

可以理解为:

.xml 是“数据”,.xsd 是“数据的规范(Schema)”


Read more »

Java 21(2023 年 9 月发布,LTS 长期支持版本) 是继 Java 17 之后最新的 LTS 版本。


最重要的特性:Virtual Threads(虚拟线程)—— JEP 444(正式版)

这是 Java 21 中最重磅的特性。

Read more »

Spring Boot 版本 最低 JDK 版本 最高支持 JDK 版本 推荐 JDK 版本 备注
Spring Boot 4.0.x(最新主流) Java 17 Java 26 Java 21 或 Java 25 2025 年 11 月发布,基于 Spring Framework 7
Spring Boot 3.5.x Java 17 Java 25 Java 21(强烈推荐) 当前最推荐的 3.x 长期版本
Spring Boot 3.4.x Java 17 Java 24 或 25 Java 21 已逐步停止 OSS 公开支持
Spring Boot 3.3.x Java 17 Java 23 或 25 Java 21 仍在维护
Spring Boot 3.0 ~ 3.2 Java 17 Java 21 Java 17 / 21 较旧
Spring Boot 2.7.x(旧项目) Java 8 Java 21 Java 11 或 17 已接近 EOL,不推荐新项目使用

1.详细说明

  1. Spring Boot 3.x 系列(目前最常用)

    • 最低要求Java 17(强制,不能用 Java 8/11)
    • 大部分 3.x 版本都能运行在 Java 21 上,且表现更好(支持 Virtual Threads 等现代特性)
    • 推荐:新项目直接使用 Spring Boot 3.5.x + Java 21
  2. Spring Boot 4.0(2025 年底发布的新一代)

    • 最低仍然是 Java 17
    • 支持到 Java 26
    • 推荐使用 Java 21 或 25(LTS 版本)
  3. 生产环境推荐(2026 年)

    • 最佳选择Spring Boot 3.5.x 或 4.0.x + JDK 21
    • 次选:JDK 17(兼容性最好,但错过部分新特性)
    • JDK 25/26:适合追求最新特性的项目

2.如何在项目中指定 JDK 版本

Read more »
0%