Java'da, açıkça bildirilen Dizeler, JVM tarafından içe aktarılır, böylece aynı String'in sonraki bildirimleri, iki ayrı (ancak özdeş) Dizgeden ziyade, aynı Dize örneğine iki gösterici ile sonuçlanır. ÖrneğinPython intern dizeleri var mı?
: CPython (veya başka bir Python çalışma zamanı) dizeleri için aynı şeyi yapar edilir
public String baz() {
String a = "astring";
return a;
}
public String bar() {
String b = "astring"
return b;
}
public void main() {
String a = baz()
String b = bar()
assert(a == b) // passes
}
sorum? Bazı sınıf varsa Örneğin,: Bu sınıfın 10 örneklerini oluşturmak
class example():
def __init__():
self._inst = 'instance'
Ve bunların her biri bellekte aynı dizeye atıfta bir örnek değişkeni sahip olacak, yoksa 10 ayrı dizeleri ile sona erecek ?
Buna interning denir, ve evet, Python bunu string extral'leri olarak oluşturulan daha kısa dizeler için bazılarına uzatır. [Python string interning] (http://stackoverflow.com/q/15541404) –
[Python '==' ve 'is' dizelerini karşılaştırabilmenin olası bir kopyası, 'bazen' başarısız oluyor, neden oluyor?] (Http: // stackoverflow.com/questions/1504717/python-vs-is-comparing-strings-is-fails-sometimes-why) – OptimusCrime
@MartijnPieters - teşekkürler, ama sadece "kısa" dizeleri ne kadar kısa? Bu çalışma zamanı bağımlı mı, yoksa bunun için bir standart var mı? – csvan