Sadece merak ediyorum.
Sanırım bir while/for döngüsü içindeki bir referansı tanımlarım.JAVA: bir döngü içinde tanımlanan referans
JVM bu referansı her yinelemeyi tanımlar mı yoksa yalnızca bir kez tanımlamak için optimize edilmiş mi?
Sadece merak ediyorum.
Sanırım bir while/for döngüsü içindeki bir referansı tanımlarım.JAVA: bir döngü içinde tanımlanan referans
JVM bu referansı her yinelemeyi tanımlar mı yoksa yalnızca bir kez tanımlamak için optimize edilmiş mi?
Her zaman tanımlar ve yalnızca döngü yinelemesi için kapsam belirlenir.
Döngü yineleme işlemi biter bitmez, GC için uygundur.
Louis Wasserman'ın belirttiği gibi, değişken her seferinde yeniden başlatılacak, ancak bellek alanı muhtemelen yeniden kullanılacak.
Teşekkür ederim. iyi bilmek – socksocket
rica ederim. – kosa
GC için uygun olmayacaktır. Yığın yuvası, yöntem çıkana kadar, varsa, döngüden sonra bildirilen bir sonraki değişken tarafından yeniden kullanılıncaya kadar var olmaya devam edecektir. Döngünün kapanış ayrağına karşılık gelen bir JVM talimatı yoktur, bu nedenle JVM'nin slotun artık kullanılmadığını bilmesinin bir yolu yoktur. – EJP
Her zaman tanımlıdır. Bunun için optimizasyon yoktur (bilgime göre).
- her döngü dolaşır referans tanımlar, ancak referans kapsamı sadece bu iterasyon bağlanmıştır.
- Eğer döngü dışında bir başvuru beyan olduğunu düşünün, ama atama nesne kendisine içine döngü, ardından referans aynı kalır, ama her yer bu tür yeni nesne başvurusu yineleme.
Referans her yinelemede tanımlanmıştır. Kod yerel koda göre optimize edildikten sonra, döngü dışında hareket ettirilebilir, böylece bir performans etkisine sahip olmaz. Bu başvuruyu her seferinde bir new
nesnesine ayarlarsanız, bu nesne oluşturma işlemi de optimize edilmedikçe her yineleme için yeni bir nesne oluşturabilir.
Ne demek "tanımla"? Gerçekten ne demek istediğine bağlı. Değişken her seferinde yeniden başlatılır, ancak bellek alanı muhtemelen yeniden kullanılır. –
"Referans tanımlamak" ile ne demek istiyorsun? Kesin olarak, referans, bir nesnenin tahsis edilmesinden çok uzak olan değişkenin değeridir. Bu iki yorum çok farklı cevaplara sahip. –