final的作用:
1、修饰类;被final修饰的类不能被继承,比如JDK中 Long String等
2、修饰方法;被final修饰的方法不能被重写,即子类不能复写父类的final方法
3、修饰变量;被final修饰的变量不能被重新赋值,这里需要强调一下,首先我们有个大前提final是java的一个关键字,所以不能被重新赋值只是在语法上不能再次赋值,如果通过其他方式直接操作字节码是可以修改的。另外如果修饰的为引用数据类型,比如final User user;不能被重新赋值的意思是,user这个变量不能指向新的内存地址,但是如果我们通过user.setName修改user的值是可以。