- CompareTo()与Equlas()之间的区别。
使用CompareTo()方法,那么这个类就要实现IComparable接口,没有实现此接口的类就无法用CompareTo()比较,返回值为int 而Equals()方法是所有类的父类Object已经有的方法,其他的类都是Object的子类,所以,子类要么重写了父类Object的Equals()方法要么直接继承使用父类的Equals()方法返回值为bool。
- Replace()与ReplaceAll()之间的区别。
replace的参数是char和CharSequence(字符串序列即字符串),即可以支持字符的替换,也支持字符串的替换。
replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\d", "")把一个字符串所有的数字字符都换成星号。
相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;
不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\d", ""),而replace则不会,replace("\d","*")就是替换"\d"的字符串,而不会解析为正则。
如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。 - stringbuffer和stringbuilder的区别
(1)在执行速度方面的比较:StringBuilder > StringBuffer
(2)StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
(3)StringBuilder:线程非安全的StringBuffer:线程安全的当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。
文章图片
day5.png