Java のラムダ式が、どのようにコンパイルされ実行されているか気になりますよね。 そこで、クラスファイルを分析して、その中身を調べてみました。 なお、今回は OpenJDK 17.0.1 を使って調べています。 バージョンによって挙動が異なる場合があるので、ご注意ください。 外側のローカル変数を参照しない場合 おさらい:匿名クラスのコンパイル結果 本題のラムダ式を調べてみる前に、匿名クラスの場合にどのようにコンパイルされているかを確認しておきましょう。 (ご存じの方は、読み飛ばしてもらって大丈夫です) 今回は、Runnable インタフェースを匿名クラスとして実装しました。 public class Main { public static void main(String[] args) throws InterruptedException { var thread = new Th