`
- 浏览:
82685 次
- 性别:
- 来自:
宁波
-
当我们想让变量不变时,都会习惯地加上一个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
day11_03_final关键字用于修饰成员方法
final关键字可用于修饰符,变量和方法,用于表示它修饰的类,方法和方法不可改变。 final 最终的最后的 final修饰变量时,表示该变量一旦获得了初始值之后就不可被改变,final既可修饰成员变量(包括类变量和实例...
用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。 注:类的private方法会隐式地被指定为final方法。 public class ...
day11_02_final关键字用于修饰类
day11_04_final关键字用于修饰局部变量
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。 1.修饰类 当用final修饰一个类时,表明这个类不能被继承。也就是说,...
final修饰符(关键字)的作用及应用场景
在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: 如果使用final来...
final关键字正如其字面意思一样,意味着最后,比如被final修饰后类不能集成、变量不能被再赋值等,以下我们就来深入解析Java编程中final关键字的作用:
Java中的final关键字可以被用来修饰变量、方法和类等,意味着终结、不可改变,下面我们就来举例讲解Java中final关键字的用法:
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
在Java中,final可以别用来修饰类、修饰方法、修饰变量和修饰参数等,这里就来简单作一个Java中final关键字的用法总结:
通常每个类中成员变量可以分为 类变量(static修饰的变量) 以及 实例变量 针对这两种类型的变量赋初始值的时机是不同的。 类变量可以再声明变量的时候直接赋初始值或者在静态代码块中给类变量赋初始值;而实例...
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量),下面通过本篇文章给大家介绍java中的final关键字,对java fina关键字相关知识感兴趣的朋友一起看看吧
主要介绍了JAVA中的final关键字用法,结合实例形式较为详细的分析了Java中的final关键字用于修饰数据,方法及类的具体使用技巧,需要的朋友可以参考下
final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承;(2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: 如果使用final来...
final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作。下面通过实例代码给大家介绍swift用final关键字来防止重写
关于final关键字的基础运用 首先明确final的含义:最终,不可改变的 final的四种基本用法 1.修饰一个类 格式: 权限修饰符 final 类名{ //*** } 此时final的含义是声明:当前这个类不能有任何的子类,也就是说该...