Это не влияет на то, что вы можете сделать с ArrayList, как вы по праву наблюдаете - сам ArrayList по-прежнему изменен. Вы только что сделали ссылку неизменной.
Но создание переменной final имеет другие преимущества:
final
может помочь компилятору выполнить определенные оптимизации производительности. В целом, чем больше вещей вы делаете неизменяемыми, лучше. Поэтому окончание ссылок (даже если они являются ссылками на изменяемые объекты), как правило, является хорошей идеей.
Вы захотите использовать прослушиватель событий, что-то вроде
document.addEventListener('keyup',
function (event) {
if (event.key === "something") {}
});