Java的String#intern()方法是如何实现的? [英] How is Java's String#intern() method implemented?
问题描述
我试着查看Java的 String #intern()
方法,但它是 public native String intern();
I tried to look at Java's String#intern()
method, but it's public native String intern();
一般情况下,如何实施实习?在String的情况下?
In general, how is interning implemented? In String's case?
推荐答案
对于Sun Java,从 JVM_InternString
开始,在线<~href =http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/prims/jvm.cpp#l36393639rel =nofollow noreferrer> jvm.cpp
。从技术上讲,实际的String方法是在 java / lang / String.c
,但它会立即调用 JVM_InternString
。您可以继续 StringTable :: intern
symbolTable.cpp
。
For Sun Java, start with JVM_InternString
, on line ~3639 of jvm.cpp
. Technically, the actual String method is in java/lang/String.c
, but it immediately calls JVM_InternString
. You can continue to StringTable::intern
in symbolTable.cpp
.
从更抽象的意义上讲,实习的目的是将等效字符串映射到单个规范字符串。
In a more abstract sense, the purpose of interning is to map equivalent strings to a single canonical one.
这篇关于Java的String#intern()方法是如何实现的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!