final关键字解析

 

final可以修饰变量,方法,类。

  1. final修饰变量这个变量不可变。这个不可变是引用不可变,对象内部可以修改。

        public static void main(String[] args) {
            final Person p = new Person();
            p.setName("123");
            p.setId(1L);
            System.out.println(p);
        }
  2. final修饰方法,不可以修饰构造方法。修饰普通方法,不可以被子类重写

  3. final修饰类,那么类不能被继承。典型的String类

  4. final修饰String,若直接赋值字符串,会直接放入常量池.

            String s1 = "aaa";
            final String s2 = "aa";
            System.out.println(s1 == s2+"a");//true
  5. final赋值时机

    (1)直接赋值
    (2)static{}代码块
    (3)构造方法

     

你可能感兴趣的:(java)