![]() |
1
22
哪种语言? 字符串通常是不可变的,这意味着对数据的任何更改都会导致创建字符串的新副本。这可能会对大型字符串的性能产生影响。 然而,这是一个重要的特性,因为它允许优化,比如实习。通过将相同的字符串指向相同的数据副本,Interning减少了文本数据的大小。 如果您关心字符串的性能,请使用StringBuilder(在C#和Java中提供)或其他可用于可变文本数据的构造。 如果您正在处理大量文本数据,并且需要一个功能强大的字符串解决方案,同时仍然可以节省空间, look into using ropes . |
![]() |
2
2
字符串的问题在于它们不是基元类型。它们是数组。 因此,它们与阵列面临相同的速度和内存问题(可能需要进行一些优化)。 现在,“便宜”的实现需要很多东西:连接、索引等等。 可以 |
![]() |
3
2
由于每次在java中都会创建对象的新副本,因此建议使用StringBuffer
|
![]() |
4
2
i、 e.串联=>获取字符串1的长度,获取字符串2的长度,分配内存,复制字符串1,复制字符串2。在字符串库中使用DMA控制器可以执行类似的操作,但是为小字符串设置DMA控制器的开销将超过其好处。 皮特 |
![]() |
5
1
这完全取决于你想用它做什么。大多数情况下,它通常需要至少1个新的数组分配,除非它在直接搜索中替换单个字符。在最简单的级别上,字符串是字符数组。所以,您想要做的任何事情都包括迭代、删除或向数组中插入新内容。 |
![]() |
7
0
如果您想要一个通用字符串在任何情况下都能工作,那么在某些情况下您必须牺牲效率。这是在快速完成一件事和另一件事之间的一个经典权衡。所以要么使用正常工作的“标准”字符串(但不是以最佳方式),要么使用在某些情况下非常快而在另一些情况下非常麻烦的字符串实现。 有时您需要不变性,有时需要随机访问,有时需要快速插入/删除。。。 |
![]() |
8
0
字符串的更改和复制往往涉及内存管理。 内存管理不利于性能,因为它往往需要某种全局互斥,这会使代码很难扩展到多个核心。 |
![]() |
9
0
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |