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

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

    Java编程中static和final关键字的陷阱.pdf

    例如,在 FinalTest1.java 例子中,final关键字修饰的成员变量a是一个常量,不能被修改。 final关键字也可以修饰方法,称为最终方法。最终方法不能被重写。例如,在 FinalTest2.java 例子中,Father类的最终方法...

    final关键字详细解读

    1. final修饰类:当使用final关键字修饰一个类时,该类不能被其他类继承。这一特性在Java标准库中有所体现,例如String类、System类、Math类和Scanner类都是用final修饰的。这样的设计通常是因为这些类已经足够通用...

    Java final关键字

    此外,`final`关键字还有其他用途,如`final`修饰的匿名内部类和`final`局部变量在匿名内部类中的特殊规则,以及`final`与`static`结合时的静态常量等。理解并熟练应用`final`关键字对于编写高效、安全的Java代码至...

    【Java语言基础】final关键字

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

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

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

    Java零基础-final关键字.md

    ### Java零基础-final关键字 #### 内容概要 本文主要介绍了Java中final关键字的概念及其在实际编程中的应用。读者将能够理解final关键字的基本定义、用途及作用范围,并且掌握如何在不同的编程场景中合理使用它。...

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

    1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能改变,或者类和方法不能被进一步扩展。 - 当`final`修饰类时,该类不能被继承,如`final class MyClass {}`,这意味着MyClass不能作为其他...

    Java中final关键字详解

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

    JavaSE之final关键字与成员变量的类型

    【JavaSE之final关键字与成员变量的类型】 在Java编程语言中,`final`关键字扮演着重要的角色,它表示“最终”或“不可改变”的特性。对于初学者来说,理解`final`的关键字用法是掌握JavaSE基础的重要一步。本篇...

    final关键字的使用

    ### Final关键字详解 #### 一、Final的基本概念与作用 `final`关键字是Java语言中的一个重要的修饰符,它的含义非常直接——“最终”的意思。它可以在不同的上下文中发挥不同的作用,主要体现在以下三个方面: 1....

    Java中的final关键字

    在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来定义不可变性和唯一性。这个关键字可以应用于变量、方法和类,分别赋予它们不同的特性。以下是对`final`关键字在不同场景下使用的详细介绍: 1....

    Java并发--final关键字.docx

    【Java并发--final关键字】 Java中的`final`关键字在编程中扮演着重要的角色,它可以用于修饰变量、方法和类,确保被修饰的内容在特定条件下不可变。以下将详细阐述`final`关键字在不同场景下的应用及其特点。 **...

    Java关键字final、static使用总结

    在 Java 编程语言中,final 和 static 是两个非常重要的关键字,它们可以用来修饰类、方法、变量等,了解它们的使用方法和限制非常重要。本文将详细总结 final 和 static 的使用方法和限制。 一、final 关键字 ...

    JavaSE基础:多态、final关键字-27

    在这个主题中,我们将深入探讨多态、final关键字以及与之相关的访问控制权限、package和import的使用。 首先,多态(Polymorphism)是面向对象编程的三大特性之一,它允许我们使用一个父类类型的引用指向其子类的...

Global site tag (gtag.js) - Google Analytics