文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary
String类
在Java中String类的使用的频率可谓相当高。它是Java语言中的核心类,在java.lang包下,主要用于字符串的比较、查找、拼接等等操作。如果要深入理解一个类,最好的方法就是看看源码:
1 | public final class String implements java.io.Serializable, Comparable<String>, CharSequence { |
从源码中,可以看出以下几点:
- String类被final关键字修饰,表示String类不能被继承,并且它的成员方法都默认为final方法。
- String类实现了Serializable、CharSequence、 Comparable接口。
- String类的值是通过char数组存储的,并且char数组被private和final修饰,字符串一旦创建就不能再修改。
下面通过几个问题不断加深对String类的理解。
问题一
上面说字符串一旦创建就不能再修改,String类提供的replace()方法不就可以替换修改字符串的内容吗?
实际上replace()方法并没有对原字符串进行修改,而是创建了一个新的字符串返回,看看源码就知道了。
1 | public String replace(char oldChar, char newChar) { |