I’ve started an article of my investigations into the range check elimination optimization in Java. The optimization aims to reduce unnecessary array subscript index checking, but I haven’t found many details on when the JIT compiler will apply the optimization, and how much time it saves anyway. So far, my investigation explores simple cases, but at least it finds situations where the optimization is applied (index is loop counter) and situations where it isn’t applied (index is computed).