|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。优化
JDK1.4,1.5的StringClass代码以下
<br>以下内容为程序代码
publicfinalclassString
implementsjava.io.Serializable,Comparable<String>,CharSequence
{
/**Thevalueisusedforcharacterstorage.*/
privatefinalcharvalue[];
/**Theoffsetisthefirstindexofthestoragethatisused.*/
privatefinalintoffset;
/**ThecountisthenumberofcharactersintheString.*/
privatefinalintcount;
<br>以下内容为程序代码
/**
*Initializesanewlycreated<code>String</code>objectsothatit
*representsthesamesequenceofcharactersastheargument;inother
*words,thenewlycreatedstringisacopyoftheargumentstring.Unless
*anexplicitcopyof<code>original</code>isneeded,useofthis
*constructorisunnecessarysinceStringsareimmutable.
*
*@paramoriginala<code>String</code>.
*/
publicString(Stringoriginal){
intsize=original.count;
char[]originalValue=original.value;
char[]v;
if(originalValue.length>size){
//ThearrayrepresentingtheStringisbiggerthanthenew
//Stringitself.Perhapsthisconstructorisbeingcalled
//inordertotrimthebaggage,somakeacopyofthearray.
v=newchar[size];
System.arraycopy(originalValue,original.offset,v,0,size);
}else{
//ThearrayrepresentingtheStringisthesame
//sizeastheString,sonopointinmakingacopy.
v=originalValue;
}
this.offset=0;
this.count=size;
this.value=v;
}
从这段机关函数中,我们能够看出,分歧Reference的String之间有大概共享不异的char[]。
<br>以下内容为程序代码
/**
*Comparesthisstringtothespecifiedobject.
*Theresultis<code>true</code>ifandonlyiftheargumentisnot
*<code>null</code>andisa<code>String</code>objectthatrepresents
*thesamesequenceofcharactersasthisobject.
*
*@paramanObjecttheobjecttocomparethis<code>String</code>
*against.
*@return<code>true</code>ifthe<code>String</code>areequal;
*<code>false</code>otherwise.
*@seejava.lang.String#compareTo(java.lang.String)
*@seejava.lang.String#equalsIgnoreCase(java.lang.String)
*/
publicbooleanequals(ObjectanObject){
if(this==anObject){
returntrue;
}
if(anObjectinstanceofString){
StringanotherString=(String)anObject;
intn=count;
if(n==anotherString.count){
charv1[]=value;
charv2[]=anotherString.value;
inti=offset;
intj=anotherString.offset;
while(n--!=0){
if(v1[i++]!=v2[j++])
returnfalse;
}
returntrue;
}
}
returnfalse;
}
可是,equals办法仿佛疏忽了这个大概。没有间接对二者的char[]的reference举行对照。
依照我的设法,应当到场这么一段。
<br>以下内容为程序代码
if(anObjectinstanceofString){
StringanotherString=(String)anObject;
intn=count;
if(n==anotherString.count){
charv1[]=value;
charv2[]=anotherString.value;
inti=offset;
intj=anotherString.offset;
////{{
if(i==j&&v1==v2)returntrue;//NOTE:thislineisaddedbyme
////}}
while(n--!=0){
if(v1[i++]!=v2[j++])
returnfalse;
}
如许就可以够对应共享char[]的情形,可以加速对照速率。
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。 |
|