GaGa's Blog

One GaGa, One World !

SDKMAN(Software Development Kit Manager)的命令行界面核心存储库,它是一个在 Unix 类系统(如 Linux, macOS, WSL 等)上非常流行的软件开发工具包(SDK)版本管理器,特别常用于 Java 生态系统(包含 Java JDK、Groovy、Scala、Kotlin、Gradle、Maven 等)。


1. 核心功能与痛点解决

Read more »

AngularJS 是 Google 开发的前端 MVC 框架,版本为 1.x,用于构建动态单页应用(SPA)。它是现代前端框架的”祖师爷”之一,深刻影响了后来的 Angular、React、Vue 的设计思路。


一、历史定位

2009 年:Google 发布 AngularJS 1.0
2014 年:推出 Angular 2.0(完全重写,改名 Angular)
2016 年:Angular 2/4/5 陆续发布
2016 年起:AngularJS 进入 LTS 维护模式
2022 年 12 月:AngularJS 正式停止维护(EOL)
Read more »

单线程基于libuv实现,分为6个阶段循环执行:

    1. Timers:执行setTimeout/setInterval回调。
    1. Pending callbacks:执行系统操作的延迟回调。
    1. Idle/Prepare:内部使用。
    1. Poll:I/O事件(核心,等待新I/O或定时器到期)。
    1. Check:执行setImmediate回调。
    1. Close callbacks:执行关闭回调(如socket close)。

核心:异步I/O、非阻塞,通过事件队列驱动。nextTick/microtask优先于宏任务。

使用 GraalVM 将 Java 程序构建为原生可执行文件(Native Image)的过程,核心原理是利用提前编译(AOT, Ahead-of-Time Compilation)。它将 Java 字节码直接编译成特定操作系统和架构的机器码,运行时不再需要完整的 JVM。


1. 环境准备

要在本地构建 Native Image,除了 GraalVM 本身,还需要安装目标系统底层的 C++ 编译工具链。

Read more »

在较新版本的 GraalVM(特别是 GraalVM For JDK 17/21/22+ 以及与之配套的 Native Image Agent)中,输出结构做出了重大优化。

为什么只有这一个文件(resource-config.json)?

以前的 Agent 会分开生成 resource-config.jsonreflect-config.json 等独立文件。而新版 GraalVM 引入了 Reachability Metadata(可达性元数据) 的统一规范。

你看到的 reachability-metadata.json 实际上是一个合体文件(或者是包含多类配置的统一元数据描述)。

Read more »

一句话总结

函数 能做什么 返回值
eval() 求值单个表达式 表达式的计算结果
exec() 执行任意语句块 None
compile() 将源码编译为字节码对象 字节码对象(code object)

1. eval() — 表达式求值

Read more »

1. CentOS 8

  • 默认内核:4.18.x
  • 示例:4.18.0-305.el8.x86_64
  • 支持 5.x 系列需要安装 ELRepokernel-ml 或通过 AppStream 升级。
  • 说明:CentOS 8 原生采用 RHEL 8 的 4.18 内核

2. CentOS Stream 9 / RHEL 9

  • 默认内核:5.14.x
  • 示例:5.14.0-162.el9.x86_64
  • 说明:RHEL9 内核从 5.x 系列开始,CentOS Stream 9 保持跟进。
Read more »
0%