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

  • bunliu

    bunliu

    2 Mayıs 2007
  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008