***小问题 "aaaa".length();

zzh200411 2012-03-16 01:18:38
"aaaa".length();
谁能帮我分析下这个是怎么实现的,具体到api里面。
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
draem0507 2012-03-19
  • 打赏
  • 举报
回复


public String(String original) {
int size = original.count;
char[] originalValue = original.value;
char[] v;
if (originalValue.length > size) {
// The array representing the String is bigger than the new
// String itself. Perhaps this constructor is being called
// in order to trim the baggage, so make a copy of the array.
v = new char[size];
System.arraycopy(originalValue, original.offset, v, 0, size);
} else {
// The array representing the String is the same
// size as the String, so no point in making a copy.
v = originalValue;
}
this.offset = 0;
this.count = size;
this.value = v;
}
孤独人生 2012-03-18
  • 打赏
  • 举报
回复
自己要具体到源码,而JAVA都是开源的为什么不自己去看源码呢????
  • 打赏
  • 举报
回复
String 是final 的, 其实就是char 的数据。。。。 数组的长度是固定的。。固定 。。。定 。。的
zzh200411 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ticmy 的回复:]

Java code
public int length() {
return count;
}
[/Quote]
就是count前面是怎么赋值进去的?
龙四 2012-03-17
  • 打赏
  • 举报
回复
public int length() {
return count;
}
TommyWu01 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 abstruct 的回复:]

String内部维护的是一个数组如下:
private final char value[];
其length()方法返回的private final int count;这个东西。
每当生成一个String的时候这两个参数都是一定的。

String a = "a";
a = a + "a";
其实大家都知道是新产生了一个String,而a的引用指向这个String而已。
所以……
[/Quote]
  • 打赏
  • 举报
回复
我只知道String是用char[]实现的。。
dylan_dai 2012-03-16
  • 打赏
  • 举报
回复
"aaaa".length();

你知道C++的指针吧 *p

把*p指向这个字符串的首地址,然后移动指针 p++

当指针为NULL,就不能移动了。这是长度也就出来了。
安特矮油 2012-03-16
  • 打赏
  • 举报
回复
String内部维护的是一个数组如下:
private final char value[];
其length()方法返回的private final int count;这个东西。
每当生成一个String的时候这两个参数都是一定的。

String a = "a";
a = a + "a";
其实大家都知道是新产生了一个String,而a的引用指向这个String而已。
所以a可以获取他的count为1,而"a"的count也为1,产生的char value[] = {'a','a'}; count=2;
所以length就为2了
visiongo 2012-03-16
  • 打赏
  • 举报
回复
看看源代码吧

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧