aşağıdaki koduSabit olduğunda Dizeler oluşturuldu/yok edildi mi? Bu Strings oluşturulduğunda
public static void method(String[] srgs){
try{
}catch(){
System.out.println("Hello World" + "one");}
catch(..){
System.out.println("Hello World" + "two");}
catch(..){
System.out.println(getString());}
}
düşünün? Çalışma zamanında bir Özel Durum oluştuğunda Dizelerin oluşturulacağını farz ediyorum. Dize çalışma zamanında oluşturulur ve görüntülenir. Bir eşim bana bunların sabit dizeler olduğundan, sınıf yükler yüklenmez yaratılacağını söylüyor. Bu doğru mu?
Dizeler çöpe ne zaman toplanır? Çöp toplanmış mı? Aynı yöntemin programlarda defalarca çağrılabileceğini varsayarsak, bunları sadece önbelleğe almak anlamlı olmaz mı?
Teşekkürler Joachim, SOP'u ("Hello World" + getstr()) düşünün, bu durumda hala oluşturulmuş sabit bir String var mı? Bu satır yürütüldüğünde 2. String oluşturuldu mu? 2. String Çöp Toplanıyor mu? Lütfen bana 1. noktayı cevapladığınız yerden bir kaynak verebilir misiniz? – Geek
JLS'nin ilgili bölümünü bağladım. “HelloWorld” + getstr() '** **' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' dır. Satır her yürütüldüğünde yeni bir 'String' nesnesi üretilir ve bu nesne normal olarak toplanan çöptür. –
@JoachimSauer "HelloWorld" durumu + getstr() 1.Sınıf yüklendiğinde hala "HelloWorld" oluşturulacak mı? 2. Eğer toplanan çöpün dizgisini durdurmak istemezsek, yeni String ("HelloWorld") yardımcı olur mu? – Jaskey