精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-30
昨天自已复习了一下JAVA基础,本来想将昨天回顾过的JAVA基础都写出来的,但想着又太基础了,于是, 现在将一些值得注意的要点写一下。 1. 首先我们来看一下JAVA中的常量定义--关键字:final 1.1变量定义: 在JAVA中,使用关键字final来表示常量,而C++使用const来定义常量,在JAVA中,const是 保留关键字。关键字final表示只能对变量赋一次值,其值一是设定,便不能更改。一般来说,常量名都使用 大写,如:final double CM_PER_INCH = 2.54; 在JAVA中,常常希望一个常量在某个类的多个方法中都是 可用的,这种常量通常称作类常量,使用关键字static final可设定类常量。 1.2类与方法使用关键字final定义: 类:使用final修钸类,表示该类不能被继承,在JDK API库中,String类就是一个final类 方法:使用final修钸方法,表示该方法不能裤override,可overload. 2:equals()方法与 == 之间的区别 equals 方法判断两个字符串是否想等,其背的含义是判断两个字符串的值是否相等,如果需要判断两个对象 是否相等,判断的是两个相同类型的对象的域数据相等则这两个类对象相等,一般情况下建议对toString()方法 进行override. == 操作符来检测两个字符串是否相等,一般情况下,不建议使用==操作符来判断两个字符串是否相等,== 操作符只能判定两串是否存储在同一个内存区间位置。当然字符串在同一个内存位置,哪么它们必然相等。但 是也完全有可能把串的多个拷贝存在不同的内存空间。 String s = "hello"; if(s=="hello")//这是对的, if(s.subString(0,4)=="hell")//可能错的 在JAVA 虚拟机中,只有字符常量会被共享,而+或subString等操作产生的结果串并不共享,因此,不要使用 ==操作符来比较字符串。 3:String 与StringBuffer的区别 String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独 字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可 以把字符串设为共享的。 StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用 StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得 多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大 的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使 用StringBuffer类就避免了这个问题. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2146 次