SORU
18 Kasım 2011, Cuma


Tuhaf davranışlar parantez kullanarak Java

Aşağıdaki kodu çalıştırdığımda:

public class Test {

  Test(){
    System.out.println("1");
  }

  {
    System.out.println("2");
  }

  static {
    System.out.println("3");
  }

  public static void main(String args[]) {
    new Test();
  }
}

Bu sırada çıkış bekliyorum:

1
2
3

ama ne var ters sırada

3
2
1

Herkes tersten çıkış nedenini açıklayabilir mi?

================

Test birden fazla örnek oluşturduğumda da,:

new Test();
new Test();
new Test();
new Test();

statik blok yürütülürsadeceilk anda.

CEVAP
18 Kasım 2011, Cuma


Bu başlatma deyimleri sırasına bağlıdır. Sınavın bu düzeni olduğunu gösterir:

  1. Statik başlatma blokları
  2. Örnek başlatma blokları
  3. Kurucular

Edit

Yorum için teşekkürler, şimdi JVM şartnamede ilgili bölümü alıntı yapabilirim. Here detaylı başlatma prosedürü.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • mipd1980

    mipd1980

    25 EKİM 2006
  • Moto Journal

    Moto Journal

    28 Mayıs 2007
  • MrOctopi

    MrOctopi

    6 Aralık 2010