logo

Java Programının Çıktısı | 9'u ayarla

Zorluk seviyesi : Orta seviye

Aşağıdaki Java Programlarının çıktısını tahmin edin:

Program 1:

Java
class Gfg {  // constructor  Gfg()  {  System.out.println('Geeksforgeeks');  }    static Gfg a = new Gfg(); //line 8  public static void main(String args[])  {  Gfg b; //line 12  b = new Gfg();  } } 

Çıkış:



Geeksforgeeks  
Geeksforgeeks

Açıklama:

Bir sınıf yüklendiğinde statik değişkenlerin çağrıldığını ve statik değişkenlerin yalnızca bir kez çağrıldığını biliyoruz. Şimdi 13. satır, yapıcıyı çağıran nesnenin yaratılmasıyla sonuçlanır ve 'Geeksforgeeks' ikinci kez yazdırılır. Eğer 8. satırda statik değişken kullanılmamış olsaydı, nesne yinelemeli olarak sonsuza kadar çağrılacaktı ve bu da StackOverFlow hatasına yol açacaktı.

linux'ta script çalıştırma

Program 2:

Java
class Gfg {  static int num;  static String mystr;  // constructor  Gfg()  {  num = 100;  mystr = 'Constructor';  }  // First Static block  static  {  System.out.println('Static Block 1');  num = 68;  mystr = 'Block1';  }  // Second static block  static  {  System.out.println('Static Block 2');  num = 98;  mystr = 'Block2';  }  public static void main(String args[])  {  Gfg a = new Gfg();  System.out.println('Value of num = ' + a.num);  System.out.println('Value of mystr = ' + a.mystr);  } } 

Çıkış:

Static Block 1  
Static Block 2
Value of num = 100
Value of mystr = Constructor

Açıklama:

Statik blok, sınıf belleğe yüklendiğinde yürütülür. Bir sınıf, programa yazıldıkları sırayla yürütülen birden fazla Statik bloğa sahip olabilir.

Not : Statik Yöntemler, sınıfın nesnesini kullanmadan sınıf değişkenlerine erişebilir. Yeni bir örnek oluşturulduğunda yapıcı çağrıldığından, önce statik bloklar çağrılır, ardından yapıcı çağrılır. Eğer aynı programı nesneyi kullanmadan çalıştırsaydık yapıcı çağrılmazdı.  

Program 3:

Java
class superClass {  final public int calc(int a int b)  {  return 0;  } } class subClass extends superClass {  public int calc(int a int b)  {  return 1;  } } public class Gfg {  public static void main(String args[])  {  subClass get = new subClass();  System.out.println('x = ' + get.calc(0 1));  } } 

Çıkış:

Compilation fails. 

Açıklama:

superClass sınıfındaki calc() yöntemi nihaidir ve bu nedenle geçersiz kılınamaz.  

Program 4:

Java
public class Gfg {  public static void main(String[] args)  {  Integer a = 128 b = 128;  System.out.println(a == b);  Integer c = 100 d = 100;  System.out.println(c == d);  } } 

Çıkış:

false  
true

Açıklama:

ekleme pitonu

Integer nesnesinin kaynak kodunda, Integer nesnesinin aralığının IntegerCache.low(-128) ile IntegerCache.high(127) arasında olduğunu görebildiğimiz 'valueOf' yöntemini bulacağız. Bu nedenle 127'nin üzerindeki sayılar beklenen çıktıyı vermeyecektir. IntegerCache aralığı, IntegerCache sınıfının kaynak kodundan gözlemlenebilir.