Q:

Объясните, пожалуйста, что происходит во втрой строке

private static Character getCharByPosition(char[] charArray, int position){
    return charArray.length<=position ? null : charArray[position]; //эта строка мне совершенно не понятна
}

A:

return charArray.length<=position ? null : charArray[position];

Эта строка равнозначна:
if (charArray.length <= position) {
    return null;
} else {
    return charArray[position];
}

т.е. краткий синтаксис тернарного оператора if

