`
wuchsh2013
  • 浏览: 18304 次
  • 来自: 上海
社区版块
存档分类
最新评论

final关键字到底修饰了什么?

 
阅读更多

       final使得被修饰的变量"不变",但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。

       引用本身的不变:
       final StringBuffer a=new StringBuffer("immutable");
       final StringBuffer b=new StringBuffer("not immutable");
       a=b;//编译期错误

       引用指向的对象不变:【就目前我所知道的java语言特性来看,java好像没有实现c++中const关键字的功能,虽然在java语言中const也是一个保留字。如果读者想实现const的功能,可以自己实现上面提到的“不可变类型”,来模拟const】
       final StringBuffer a=new StringBuffer("immutable");
       a.append(" broken!"); //编译通过

       可见,final只对引用的“值”(也即它所指向的那个对象的内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。
分享到:
评论

相关推荐

    day11 05 final关键字用于修饰成员变量

    day11_05_final关键字用于修饰成员变量

    day11 03 final关键字用于修饰成员方法

    day11_03_final关键字用于修饰成员方法

    day11 02 final关键字用于修饰类

    day11_02_final关键字用于修饰类

    day11 04 final关键字用于修饰局部变量

    day11_04_final关键字用于修饰局部变量

    final关键字的使用.mp4

    final关键字的使用f

    20道JAVA面试题.docx

    3、Java中的final关键字有什么作用? 4、Java中的静态变量和实例变量有什么区别? 5、Java中的重载和重写有什么区别? 6、Java中的抽象类和接口有什么区别? 7、Java中的线程是什么? 8、Java中的synchronized关键字...

    【Java语言基础】final关键字

    final关键字可用于修饰符,变量和方法,用于表示它修饰的类,方法和方法不可改变。 final 最终的最后的 final修饰变量时,表示该变量一旦获得了初始值之后就不可被改变,final既可修饰成员变量(包括类变量和实例...

    Java中的final关键字详解及实例

    用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。 注:类的private方法会隐式地被指定为final方法。 public class ...

    Java中final关键字详解

     在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。  1.修饰类  当用final修饰一个类时,表明这个类不能被继承。也就是说,...

    final关键字详细解读

    final修饰符(关键字)的作用及应用场景

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: 如果使用final来...

    深入解析Java编程中final关键字的作用

    final关键字正如其字面意思一样,意味着最后,比如被final修饰后类不能集成、变量不能被再赋值等,以下我们就来深入解析Java编程中final关键字的作用:

    举例讲解Java中final关键字的用法

    Java中的final关键字可以被用来修饰变量、方法和类等,意味着终结、不可改变,下面我们就来举例讲解Java中final关键字的用法:

    java中final关键字和static关键字详细用法

    根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。

    java程序员滴宝典

    问题一:我声明了什么! 问题二:"=="和equals方法究竟有什么区别? 问题三:String到底变了没有? 问题四:final关键字到底修饰了什么? …..

    学习java这些你搞懂了吗

    问题一:我声明了什么! 问题二:"=="和equals方法究竟有什么区别? 问题三:String到底变了没有? 问题四:final关键字到底修饰了什么? …..

    java你必须搞懂的问题

    问题一:我声明了什么! 问题二:"=="和equals方法究竟有什么区别? 问题三:String到底变了没有? 问题四:final关键字到底修饰了什么? …..

    Java中final关键字的用法总结

    在Java中,final可以别用来修饰类、修饰方法、修饰变量和修饰参数等,这里就来简单作一个Java中final关键字的用法总结:

    JAVA中的final关键字用法实例详解

    主要介绍了JAVA中的final关键字用法,结合实例形式较为详细的分析了Java中的final关键字用于修饰数据,方法及类的具体使用技巧,需要的朋友可以参考下

    Java经典面试题.pdf

    final关键字用于修饰类、方法和变量。 修饰类:被final修饰的类无法被继承。 修饰方法:被final修饰的方法无法被子类重写。 修饰变量:被final修饰的变量为常量,不能被修改。 5.什么是Java的异常处理? 异常...

Global site tag (gtag.js) - Google Analytics