摘要: final是java的关键字,它所表示的是“这部分是无法修改的”。 编译期常量,它在类加载的过程就已经完成了初始化,所以当类加载完成后是不可更改的,编译期可以将它代入到任何用到它的计算式中,也就是说可以在编译期执行计算式。当然对于编译期常量,只能使用基本类型,而且必须要在定义时进行初始化。有些变量,我们希望它可以根据对象的不同而表现不同,但同时又不希望它被改变,这个时候我们就可以使用运行期常量。对于运行期常量,它既可是基本数据类型,也可是引用数据类型。基本数据类型不可变的是其内容,而引用数据类型不可变的是其引用,引用所指定的对象内容是可变的。父类的final方法是不能被子类所覆盖的,也就是说. 阅读全文
posted @ 2014-01-24 15:59 liutoutou 阅读(167) 评论(0) 推荐(0) 编辑
摘要: String并不是基本数据类型,而是一个对象,并且是不可变的对象。String类为final型的不可被继承,而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象。字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下””、null、new String()三者的区别。null 表示string还没有new ,也就是说对象的引用还没有创建,也没有分配内存空间给他,而””、new String()则说明了已经new了,只不过内部为空,但是它创建了对象的引用,是需要分配内存空间的。 在字符串中存在一个非常特殊的地方,那就是字符.. 阅读全文
posted @ 2014-01-24 15:41 liutoutou 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 在Java规范中,它对equals()方法的使用必须要遵循如下几个规则:equals 方法在非空对象引用上实现相等关系: 1、自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 2、对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。 3、传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。 4、一致性:对于任何非空引用值 x 和 y,多次调用 x... 阅读全文
posted @ 2014-01-24 15:24 liutoutou 阅读(150) 评论(0) 推荐(0) 编辑