system类提供三个静态方法:system.currenttimemillis()获取毫秒级时间戳(受系统时钟影响);system.getenv()读取启动时继承的环境变量;system.gc()仅建议而非强制触发gc,生产环境应避免使用。

Java 的 System 类提供了几个静态方法,可快速获取当前时间戳、访问环境变量,以及向 JVM 发出垃圾回收建议(注意:不是强制执行)。下面分三部分说明用法和注意事项。
获取当前时间戳(毫秒级)
System.currentTimeMillis() 返回自 1970 年 1 月 1 日 00:00:00 UTC 起经过的毫秒数,常用于计时、日志打点或生成简单唯一 ID。
- 返回值类型为
long,是系统时钟的“墙上时间”,受系统时间调整影响(如手动改时间或 NTP 同步) - 不适用于高精度性能测量,推荐用
System.nanoTime()替代(纳秒级,单调递增,不受系统时钟干扰) - 示例:long ts = System.currentTimeMillis();
读取环境变量
System.getenv() 用于获取操作系统级别的环境变量,有两种常用重载:
-
System.getenv(String name):传入变量名,返回对应值(如 System.getenv("PATH")),不存在则返回null -
System.getenv():返回一个不可修改的Map<string string></string>,包含全部环境变量快照 - 注意:该方法无法读取进程启动后动态设置的环境变量(Java 进程继承的是启动时刻的环境副本)
发出 GC 建议(非强制)
System.gc() 是一个提示 JVM 执行垃圾回收的建议,但不保证立即执行,也不保证执行效果。
- JVM 可能完全忽略该调用,尤其在使用 G1、ZGC 等现代收集器时,其调度策略自主性更强
- 频繁调用可能干扰 JVM 的自动 GC 决策,反而降低性能,生产环境应避免主动调用
- 仅在极少数场景下作为调试辅助(如内存泄漏排查后手动触发观察对象是否被回收)
- 等效于调用
Runtime.getRuntime().gc()











