第27行加final跟不加final有啥区别吗?新手,希望讲个易懂点的。。谢谢

解决方案 »

  1.   

    引用类型的变量被final修饰后,你不能再让它指向另一个变量,比如你在后面再用s = new Single()这种是不行的
      

  2.   

    区别不大,私有字段,没有提供getset方法,外界一般无法访问除了反射之类可以修改其引用,如果加上final表示其指向的对象不能修改反射也修改不了
      

  3.   

    加final会对阅读的语义效果上更加明确,因为是饿汉式,只需一次性初始化,也隐含有避免后续任何可能的手误
      

  4.   

    final 关键字 说明:修饰类:表明该类不可继承;
    修饰方法:继承或实现的时候,该方法不可更改,其中类的private方法默认为final修饰;
    修饰基本数据类型:其值不可改;
    修饰引用数据类型:地址不变,内容可改。final   和 static 区别: 
    1. final 修饰的变量,初始可不同,后不可改; 
    2. static 修饰的变量,初始相同,后可改