2 y651529614 y651529614 于 2016.02.29 23:38 提问

新人初学 JAVA final引用问题

书上说JAVA引用加了final后不能变更,这个为什么就可以变更了呢?
图片说明

5个回答

qq_27564553
qq_27564553   2016.03.01 08:41
已采纳

看到以为是我上次问的问题,兴兴地跑过来,结果竟然是楼主定义了一个Final类来逗我呢,final是java保留关键字,而Final不是。final一旦初始化就是最终形态即不能修改的意思,这里是你自己定义的一个类而已

y651529614
y651529614 回复Young卡卡: 好吧,我把final漏掉了,然后又看错了,我自刎谢罪。
2 年多之前 回复
qq_16558621
qq_16558621 哈哈,我也笑了···
2 年多之前 回复
qq_33962041
qq_33962041   2016.03.01 07:28

原因楼上都说明了,还有一点稍微注意一下,方法名称不要首字母大写,会和类名称搞混,这是个好习惯

qq_33962041
qq_33962041 看错了,看错了,sorry(⊙﹏⊙)
2 年多之前 回复
qq_33962041
qq_33962041 构造方法,也是方法啊,首字母大写是类名称的标志,全大写是常量,第一个字母小写,其他单词首字母大写是方法,构造方法和变量
2 年多之前 回复
sinat_31535993
sinat_31535993 你确定那个是方法而不是构造器?
2 年多之前 回复
u013596119
u013596119   Rxr 2016.02.29 23:40

你没有用到final,你是自己定义了一个Final类,而书中说的final是个关键字,就像private,public一样

weixin_34018377
weixin_34018377   2016.02.29 23:46

什么跟什么啊,你那个只是定义了一个名字单词为Final类而已,跟java中的final关键字无关~

liyongyi_HL
liyongyi_HL   2016.02.29 23:49

代码中的Final是你自己定义的一个类,并不是final关键字

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java中的 final 关键字 修饰引用时的问题
final使得被修饰的变量”不变”,但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。 引用本身的不变: final StringBuffer a=new StringBuffer("immutable"); final StringBuffer b=new StringBuffer("not immutable"); a=b;//编译期错误
java final总结
遵守两个重排序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 2.初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。写final域的重排序规则 写final域的重排序规则禁止把final域的写重排序到构造函数之外。这个规则的实现包含下面2个方面: JMM禁止编译器把fi
Java中final修饰对象引用
http://ogres.iteye.com/blog/431577
java当修改final对象、常量值时要重新编译类
一、第一篇转载的文章 当编译final变量时,java编译器通过直接将他们拷贝到使用它们的类中的方式作了优化。这提高了Java应用的速度,但是假如你修改并且重新编译了原始的类,而没有重新编译使用它的类,那么新的值就没有被拷贝过去。 例如,对于两个类ClassA和ClassB: public class ClassA { static public final int P
final 和static final 变量的引用不变
public class FinalReferenceTest { public static final StringBuffer sb = new StringBuffer(); public static void main(String[] args){ sb.append("hello"); } } 问题1:上面的程序能否编译
Java中的Final关键字,区分基本数据类型与引用类型,值传递与引用传递
Final可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了。对于基本数据类型声明为Final后其值无法再次改变,对于引用类型,可以改变改引用的内容,但是无法改变这个引用,即不能再次指向新的引用地址,也就是重新赋值,new一个新的对象。首先我们来看看基本数据类型与引用类型的区别: 如上如所述; 对于基本类型,变量中保存的是其值。对于引用类型,变量中保存的
深入JAVA002_对象的发布和逃逸 --this解惑
最近研读java并发编程,其中作者在提到对象的发布和逃逸的时候,讲到两种可能会发生this发布和逃逸的用法,但是单凭文章不能很好理解,所以,查阅相关资料做了相关实验,做一下记录,以作备忘。 首先说明一下什么是this逃逸:this逃逸就是说,在构造函数返回之前,其他线程就已经取得了该对象的引用,由于构造函数还没有完成,所以,对象也可能是残缺的,所以,取得对象引用的线程使用残缺的对象极有可能发生错
final修饰基本类型和引用类型变量的区别
当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。但对于引用类型的变量而言,它保存的仅仅是一个引用,final只保证这个引用所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以发生改变。 final int[] iArr={6,8,9,10} //对数组进行排序,合法 Arrays.sort(iArr); System.out.p
Java 匿名内部类中的外部引用为什么必须是 final 的?
匿名内部类内的外部引用为什么必须是 final 的?
匿名内部类引用外部对象要加final修饰符的原因
为什么在匿名内部类中引用外部对象要加final修饰符呢,因为,在匿名内部类中引用的外部对象受到外部线程的作用域的制约有其特定的生命周期,以线程为例,当外部的变量生命周期已经完结之后,内部的线程还在运行,怎么样解决这个外部生命周期已经结束而在内部却需要继续使用呢,这个时候就需要在外部变量中添加final修饰符,其实内部匿名类使用的这个变量就是外部变量的一个“复制品”,即使外部变量生命周期已经结束,内