`
- 浏览:
84359 次
- 性别:
- 来自:
宁波
-
当我们想让变量不变时,都会习惯地加上一个final关键字,对于基本数据类型的使用毫无疑问,但是对象型变量的实质是引用,那么“不变”是引用地址的不变还是引用指向对象的不变呢?
例如:现有一个final修饰的 StringBuffer对象:
final StringBuffer sb=new StringBuffer("我是final变量的!");
如果这样做:
sb=new StringBuffer("改变一下引用地址!");显然,这是通不过编译期的。
但如果改变引用指向对象的内容呢?
sb.append("可以给对象内容加东东了!"); 这样是完全可以的。
打印出sb的结果是:我是final变量的!可以给对象内容加东东了!
可见,final只对引用的“值”有效,即它只能保证引用永远指向初始的对象,但不能保证对象的状态不变。因此,并非将变量声明为final就可以高枕无忧了,须慎防引用对象状态的改变。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
day11_05_final关键字用于修饰成员变量
final关键字的使用f
例如,在 FinalTest1.java 例子中,final关键字修饰的成员变量a是一个常量,不能被修改。 final关键字也可以修饰方法,称为最终方法。最终方法不能被重写。例如,在 FinalTest2.java 例子中,Father类的最终方法...
1. final修饰类:当使用final关键字修饰一个类时,该类不能被其他类继承。这一特性在Java标准库中有所体现,例如String类、System类、Math类和Scanner类都是用final修饰的。这样的设计通常是因为这些类已经足够通用...
day11_03_final关键字用于修饰成员方法
final关键字可用于修饰符,变量和方法,用于表示它修饰的类,方法和方法不可改变。 final 最终的最后的 final修饰变量时,表示该变量一旦获得了初始值之后就不可被改变,final既可修饰成员变量(包括类变量和实例...
此外,`final`关键字还有其他用途,如`final`修饰的匿名内部类和`final`局部变量在匿名内部类中的特殊规则,以及`final`与`static`结合时的静态常量等。理解并熟练应用`final`关键字对于编写高效、安全的Java代码至...
用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。 注:类的private方法会隐式地被指定为final方法。 public class ...
day11_02_final关键字用于修饰类
day11_04_final关键字用于修饰局部变量
1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能改变,或者类和方法不能被进一步扩展。 - 当`final`修饰类时,该类不能被继承,如`final class MyClass {}`,这意味着MyClass不能作为其他...
### Java零基础-final关键字 #### 内容概要 本文主要介绍了Java中final关键字的概念及其在实际编程中的应用。读者将能够理解final关键字的基本定义、用途及作用范围,并且掌握如何在不同的编程场景中合理使用它。...
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。 1.修饰类 当用final修饰一个类时,表明这个类不能被继承。也就是说,...
【JavaSE之final关键字与成员变量的类型】 在Java编程语言中,`final`关键字扮演着重要的角色,它表示“最终”或“不可改变”的特性。对于初学者来说,理解`final`的关键字用法是掌握JavaSE基础的重要一步。本篇...
在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来定义不可变性和唯一性。这个关键字可以应用于变量、方法和类,分别赋予它们不同的特性。以下是对`final`关键字在不同场景下使用的详细介绍: 1....
【Java并发--final关键字】 Java中的`final`关键字在编程中扮演着重要的角色,它可以用于修饰变量、方法和类,确保被修饰的内容在特定条件下不可变。以下将详细阐述`final`关键字在不同场景下的应用及其特点。 **...
### Final关键字详解 #### 一、Final的基本概念与作用 `final`关键字是Java语言中的一个重要的修饰符,它的含义非常直接——“最终”的意思。它可以在不同的上下文中发挥不同的作用,主要体现在以下三个方面: 1....
在这个主题中,我们将深入探讨多态、final关键字以及与之相关的访问控制权限、package和import的使用。 首先,多态(Polymorphism)是面向对象编程的三大特性之一,它允许我们使用一个父类类型的引用指向其子类的...
Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...