Java Nativeメモリ領域 / ヒープメモリ領域についてまとめてみる

Java 8でメモリ管理の仕組みが変更されました。本記事では、Java 8以降のメモリについて記載します。

まず、Java 8のメモリはNativeメモリ領域とヒープメモリ領域から構成されています。Nativeメモリ領域はOSが管理し、ヒープメモリ領域はJVMが管理します。

クラス、メソッド、ライブラリはNativeメモリ領域にロードされます。そして、インスタンスはヒープメモリ領域にが格納されます。この調子だと、スレッドはヒープメモリ領域に格納されるのかなと思ったのですが、Nativeメモリ領域に格納されうようです。スレッドはOS管理の持ち物ってことですね。

先日、非常に技術力の高い先輩に「ライブラリがロードされる仕組みを理解すること」「JVMの気持ちになること」の2つが出来るようになると、未知の課題に直面したときに解決方法が明確になるよとの助言を頂きました。

まだまだ具体的な理解が足りませんが、一歩前進って感じですね。

以上、「Java Nativeメモリ領域 / ヒープメモリ領域についてまとめてみる」でした。

参考

Java のメモリ管理 – Azure Spring Apps | Microsoft Learn