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

  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • MusicDeluxeTV

    MusicDeluxeT

    14 Mayıs 2010
  • picster

    picster

    20 NİSAN 2006