java基本编程要点之final、equals和==、String 与StringBuffer的区别

昨天自已复习了一下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类就避免了这个问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值