• Java之final的解析


    在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。

    1. 当用final修饰一个类时,表明这个类不能被继承。
    2. 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
    3. final修饰的成员变量,必须在定义时或者构造函数中初始化赋值,而且一旦赋值则不能改变。
    4. 当一个变量被定义成final 类型时,在编译时能知道其确切的值,则被当成常量使用。

      

    final String a = "hello";
    String b = "hello";
    String c = "helloworld";
    String d = a + "world";
    String e = b + "world";
    System.out.println(c == d);
    System.out.println(c == e);

        输出结果:

          true

          false

      5.  final 修饰的对象内容可变,但是对象是不可变的。如:

        final MyClass myClass = new MyClass();

        myClass.i = myClass.i + 3;

        System.out.println(++myClass.i);

       输出结果:

        4

      但是如果重新给myClass赋值则会编译错误。

        myClass = new MyClass();

      6. 对于方法参数是final类型的

        

     public void testString(final String str){
    
          str += "333";
    
       }//编译产生错误,不可重新赋值
    
       public void testStringBuilder(final StringBuilder str){
    
          str.append("333");
    
    }//可顺利编译执行,并输出333

    总结一下。我认为final所不能改变的只是引用的,而不是引用的内容。当final修饰的变量的引用地址没有发生改变而只是值的改变则是可以的。

  • 相关阅读:
    UITableView
    xib的读取方式
    远程登录树莓派
    来体验下Linux吧
    树莓派了解Linux基本命令
    来感受Linux命令行的“真香定律”
    初尝树莓派
    从入手树莓派开始
    08-java学习笔记-集合框架中的工具类
    07-java学习笔记-map集合
  • 原文地址:https://www.cnblogs.com/woniu4/p/4641665.html
Copyright © 2020-2023  润新知