已在方法 main(String[])中定义了变量怎么处理

自学Java学习到变量章节,同一类型的变量,先声明a,再使用final关键字声明a
报错是已定义变量a。final关键字在同一个方法中对同一类型的变量进行赋值吗?

public class TestInt{
public static void main(String args[]){
long a = 30000000000000000L;
final long a= 127L;
System.out.println(a);

}

}

运行结果及报错内容

TestInt.java:4: 错误: 已在方法 main(String[])中定义了变量 a
final long a= 127L;

long a = 30000000000000000L;
final long a= 127L;
重复定义了,把其中一个a换个名称。
final修饰变量,变量将不能被重新赋值(变量的值不能被修改)

这和final无关,变量重名了

重复变量名称