黑马程序员技术交流社区

标题: 饿汉式变量为什么要加final 有什么作用么? [打印本页]

作者: 任献东    时间: 2014-10-16 16:53
标题: 饿汉式变量为什么要加final 有什么作用么?
  1. class single{
  2.         private static final single s = new single();
  3.         private single(){}
  4.         public static single getinstance(){
  5.                 return s;
  6.         }
  7. }
复制代码


饿汉式已经能保证对象唯一了  为什么还要加final呢
作者: 森屿北巷    时间: 2014-10-16 16:57
保证引用指向的地址不能改变。s不能再指向其他的对象
作者: 任献东    时间: 2014-10-16 17:17
森屿北巷 发表于 2014-10-16 16:57
保证引用指向的地址不能改变。s不能再指向其他的对象

那懒汉式为什么不加final呢
作者: 森屿北巷    时间: 2014-10-16 17:24
任献东 发表于 2014-10-16 17:17
那懒汉式为什么不加final呢

饿汉式也可以不加吧,加了就是确保引用指向不变
作者: 奋斗的小孩    时间: 2014-10-16 21:04
应该是为了保证只能被赋值一次或储存的数据被改变吧
作者: mingtianrsm    时间: 2014-10-16 22:27
任献东 发表于 2014-10-16 17:17
那懒汉式为什么不加final呢

话说,懒汉式是要在方法里进行初始化的,你加了final还怎么初始化???
作者: 任献东    时间: 2014-10-16 22:49
mingtianrsm 发表于 2014-10-16 22:27
话说,懒汉式是要在方法里进行初始化的,你加了final还怎么初始化???

明白了 谢谢
作者: 小漠    时间: 2014-10-17 08:56
我看视频的时候怎么没有final
作者: 私有的    时间: 2014-10-17 09:09
加了final也是可以初始化的  final只能初始化一次
作者: 私有的    时间: 2014-10-17 09:23
mingtianrsm 发表于 2014-10-16 22:27
话说,懒汉式是要在方法里进行初始化的,你加了final还怎么初始化???


加了final也是可以初始化的  final只能初始化一次
作者: mingtianrsm    时间: 2014-10-17 09:34
私有的 发表于 2014-10-17 09:23
加了final也是可以初始化的  final只能初始化一次

哦?那就不知道了,没试过,不过感觉的是没法了~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2