SORU
16 Mayıs 2012, ÇARŞAMBA


Statik bir nesne oluşturma

Herkes Java bu kodu nasıl çalıştırdığını açıklayabilir mi? Her deyimi yürütme sırasını yani.

public class Foo
{
    boolean flag = sFlag;
    static Foo foo = new Foo();
    static boolean sFlag = true;

    public static void main(String[] args)
    {
        System.out.println(foo.flag);
    }
}

ÇIKIŞ:

false

CEVAP
16 Mayıs 2012, ÇARŞAMBA


  • Sınıf başlatma başlar. Başlangıçta, foo boş ve sFlag false
  • İlk statik değişken başlatıcı (foo) çalışır:
    • Foo yeni bir örneği oluşturulur
    • flag örneğin değişken başlatıcı flag değeri false yani şu anda sFlag yanlış, yürütür
  • İkinci bir statik değişken başlatıcı (sFlag), true değerini ayarlama yürütür
  • Sınıf başlatma işlemini tamamlar
  • main yanlış olan foo.flag Basım çalışır

sFlag final olarak ilan edildi gibi bir tedavi olacağını unutmayınderleme zamanı sabiti, tüm başvuruları temelde true, foo.flag böylece inlined olurdu gerçek olur en fazla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010