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

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008