|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难一.你懂得String类吗?
想要懂得一个类,最好的举措就是看这个类的完成源代码,String类的完成在
jdk1.6.0_14srcjavalangString.java文件中。
翻开这个类文件就会发明String类是被final润色的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
publicfinalclassString
implementsjava.io.Serializable,Comparable<String>,CharSequence
{
/**Thevalueisusedforcharacterstorage.*/
privatefinalcharvalue[];
/**Theoffsetisthefirstindexofthestoragethatisused.*/
privatefinalintoffset;
/**ThecountisthenumberofcharactersintheString.*/
privatefinalintcount;
/**Cachethehashcodeforthestring*/
privateinthash;//Defaultto0
/**useserialVersionUIDfromJDK1.0.2forinteroperability*/
privatestaticfinallongserialVersionUID=-6849794470754667710L;
......
}
从下面能够看出几点:
1)String类是final类,也即意味着String类不克不及被承继,而且它的成员办法都默许为final办法。在Java中,被final润色的类是不同意被承继的,而且该类中的成员办法都默许为final办法。在初期的JVM完成版本中,被final润色的办法会被转为内嵌挪用以提拔实行效力。而从JavaSE5/6入手下手,就垂垂屏弃这类体例了。因而在如今的JavaSE版本中,不必要思索用final往提拔办法挪用效力。只要在断定不想让该办法被掩盖时,才将办法设置为final。
2)下面枚举出了String类中一切的成员属性,从下面能够看出String类实际上是经由过程char数组来保留字符串的。
上面再持续看String类的一些办法完成:
<p>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
publicStringsubstring(intbeginIndex,intendIndex){
if(beginIndex<0){
thrownewStringIndexOutOfBoundsException(beginIndex);
}
if(endIndex>count){
thrownewStringIndexOutOfBoundsException(endIndex);
}
if(beginIndex>endIndex){
thrownewStringIndexOutOfBoundsException(endIndex-beginIndex);
}
return((beginIndex==0)&&(endIndex==count))?this:
newString(offset+beginIndex,endIndex-beginIndex,value);
}
publicStringconcat(Stringstr){
<p> |
|