String类是否在内部表示并用作链接列表实现?我想知道班级的方法和一切是什么。有没有人有一个显示整个String类的链接或文件?
我正在攻读考试,但想深入了解这门课程的运作方式。
答案 0 :(得分:4)
String的当前JDK 8源代码在这里:
http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/jdk8-b119/src/share/classes/java/lang/String.java
我相信Java源代码是String的完整实现,尽管Hotspot JVM中有一些特殊情况,其中优先于Java代码调用手动调优的代码。例如,这似乎发生在compareTo(),indexOf()和equals()上。
更新。不,它不会在内部使用LinkedList。
答案 1 :(得分:2)
以下是OpenJDK版本的来源:
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java
答案 2 :(得分:2)
来自jdk的源代码:
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
....
}
字符串由char数组备份。在java中,字符串是常量,它们的值在创建后无法更改