Condición de bucle: ¿por qué "no es igual" en lugar de "inferior a"?

Me asignaron para trabajar en un proyecto de Android-Java (juego en tiempo real) con una base de código considerable (parcialmente heredada).

La mayoría de los bucles que veo son así (donde mjk suele ser una matriz de Java):

    int count = mjk.length;
    for (int i = 0; i != count; ++i) {
        // Stuff dealing with mjk[i]
    }

Generalmente escribo bucles como este:

    int count = mjk.length;
    for (int i = 0; i < count; i++) {
        // Stuff dealing with mjk[i]
    }

¿Alguna idea de por qué el autor original (a quien no he podido contactar hasta ahora) usó el formulario anterior? ¿Es común en C ++?

La razón práctica por la que pregunto esto es la optimización JIT: por lo que sé, Android optimiza los bucles (variables de inducción, invariantes, migración de control de rango al prólogo del bucle, etc.), y me pregunto si la falta de igualdad puede evitar tales optimizaciones (a diferencia de -que, que especifica un rango bien definido).

Solo tengo curiosidad por saber si el primer uso tiene alguna ventaja o desventaja sobre el segundo (en todos los aspectos).

Respuestas a la pregunta(5)

Su respuesta a la pregunta