它只是一个字符数组?Java字符串中的底层容器是什么?
6
A
回答
10
是的,加上一些元数据,如开始和结束索引(因为可以跨字符串共享字符数组,例如,当您创建子字符串时)。
纵观源java.lang.String
,你看到下面的实例字段:
/** The value is used for character storage. */
private final char value[];
/** The offset is the first index of the storage that is used. */
private final int offset;
/** The count is the number of characters in the String. */
private final int count;
/** Cache the hash code for the string */
private int hash; // Default to 0
+0
和一些方法和算法...作为'字符串'是一个对象,而不是一个原始'数据类型' – 2010-09-15 05:19:00
+1
@Garis是的,但这不是容器,这是顶部的糖 – 2010-09-15 06:53:32
相关问题
- 1. 实体框架连接字符串的底层是什么?
- 2. 比较字符串时的底层逻辑是什么?
- 3. Java,什么是底层文档
- 4. 什么是Java中的字符串池?
- 5. Scala中的“底层类型”是什么?
- 6. .NET中字符串解析的适当层是什么?
- 7. std :: map的底层结构是什么?
- 8. `mkvirtualenv`命令的底层是什么?
- 9. graphql的底层后端是什么?
- 10. 什么是Java中的容器
- 11. Zend中底层控制器的下侧是什么?
- 12. java服务器端到底是什么?
- 13. C#的@字符串文字在Java中对应的是什么?
- 14. 使用字符串流操作底层字符串对象
- 15. 什么是Java字符串compareTo方法和什么是Java字典序
- 16. 为什么字符串存储在Java中的字符串池?
- 17. Java字符串中负字节值的意义是什么?
- 18. 什么是ZeroMQ底层设计架构
- 19. 什么是空字符串?
- 20. 什么是unicode字符串?
- 21. 什么是Uri字符串?
- 22. 什么是C#字符串
- 23. CSS中的`〜`代字符串是什么?
- 24. {}中的字符串是什么意思?
- 25. 什么是.NET中的字符串?
- 26. 什么是Perl中的“字符串化”?
- 27. Go中的字符串是什么?
- 28. C#中字符串前的@是什么?
- 29. 什么是Java 8中的字符串键的替代散列?
- 30. 为什么java中的字符串是不可变的?
可能是一个int [] – irreputable 2010-09-15 05:13:37
+1你的好奇心...查看:http://www.docjar.com /html/api/java/lang/String.java.html – 2010-09-15 05:19:27
@irreputable ...但事实并非如此。 – 2010-09-15 06:33:56