public boolean contentEquals(CharSequence cs) {
if (value.length != cs.length())
return false;
// Argument is a StringBuffer, StringBuilder
if (cs instanceof AbstractStringBuilder) {
char v1[] = value;
char v2[] = ((AbstractStringBuilder) cs).getValue();
int i = 0;
int n = value.length;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
// Argument is a String
if (cs.equals(this))
return true;
// Argument is a generic CharSequence
char v1[] = value;
int i = 0;
int n = value.length;
while (n-- != 0) {
if (v1[i] != cs.charAt(i))
return false;
i++;
}
return true;
}
charAt(i)和value[i]的区别:下标访问非常快,而charAt()也是根据下标,额外多了个if判断,效率区别在于charAt()会进出栈+if,单个String效率差别并不大,我试了下,1w长度的字符串,这两种方法仅差3 milliseconds左右, 但要知道jvm里的大部分对象都是String,积沙成塔,这里额外的一点点高效也是非常乐观的。
ArrayList 实现RandomAccess,而LinkedList没有,在get()和subList()的时候这2个方法是不同的。
Integer.valueOf() 如果值是在-128~127,直接取的缓存。
分享到:
相关推荐
Code Reading The Open Source PerspectiveCode Reading The Open Source Perspective
Code Reading, The Open Source Perspective - By Diomidis Spinellis
CODE系列——代码阅读方法与实践
source code source code source code source code source code
孙卫琴精通hibernate source code第二部分。
source code of vs source code of vs
Source Code 2018-3-27 SYD8821 Source Code 2018-3-27 SYD8821 Source Code 2018-3-27 SYD8821 Source Code 2018-3-27 SYD8821 Source Code 2018-3-27 SYD8821
FreeRTOSV8.1.2 source code
很经典, 不过, 这是英文版的, 希望对大家有帮助. 本书作者列举了600多个来自现实世界中的例子来向我们展示如何鉴别好的(或坪的)代码:如何去阅读它,从中去找寻什么,以及如何利用这种技巧来提升我们自身编写的...
main Page table of content copyright effective software
aes cbc encrypt and decrypt source code from openssl source code.
android launcher source code
3000个JavaScript Source Code
source code of vs 01
Cisco Ios source code
Source Code 2018-4-9 SYD8821 Source Code 2018-4-9 SYD8821 Source Code 2018-4-9 SYD8821 Source Code 2018-4-9 SYD8821 Source Code 2018-4-9 SYD8821
flash 源代码-flash source code flash 源代码-flash source code flash 源代码-flash source code