Char de Java para fundición de bytes

He estado probando el casting de char y pasé por esto:

public class Test {
    public static void main(String a[]) {
        final byte b1 = 1;
        byte b2 = 1;
        char c = 2;

        c = b1; // 1- Working fine
        c = b2; // 2 -Compilation error
    }
}

¿Alguien puede explicar por qué funciona bien en 1 cuando agregué una final al byte?

Respuestas a la pregunta(3)

Su respuesta a la pregunta