public class Test {
  public static void main(String[] args){
    final String[] hoge = {"foo","bar"};
    
    hoge[0] = "hoge";
    
    System.out.println(hoge[0] + "," + hoge[1]);
  }
}

これを実行するとエラーが出ずにhoge,barと表示されてしまうんだが
どうしてこうなるのか、どうすれば変更不可になるのか説明願えないだろうか