logo

Java programmas izvade | 9. komplekts

Grūtības pakāpe : Vidēja līmeņa

Paredziet šādu Java programmu izvadi:

1. programma:

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();  } } 

Izvade:



Geeksforgeeks  
Geeksforgeeks

Paskaidrojums:

Mēs zinām, ka statiskie mainīgie tiek izsaukti, kad klase noslogojas, un statiskie mainīgie tiek izsaukti tikai vienu reizi. Tagad 13. rindas rezultāti objekta izveidei, kas inturn izsauc konstruktoru un 'Geeksforgeeks' tiek izdrukāts otro reizi. Ja 8. rindā statiskais mainīgais nebūtu izmantots, objekts būtu rekursīvi bezgalīgi izsaukts, radot StackOverFlow kļūdu.

pārvērst virkni interger

2. programma:

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);  } } 

Izvade:

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

Paskaidrojums:

Statiskais bloks tiek izpildīts, kad klase tiek ielādēta atmiņā. Klasei var būt vairāki statiski bloki, kas tiek izpildīti tādā pašā secībā, kādā tie ir ierakstīti programmā.

Piezīme : Statiskās metodes var piekļūt klases mainīgajiem, neizmantojot klases objektu. Tā kā konstruktors tiek izsaukts, kad tiek izveidots jauns gadījums, tad vispirms tiek izsaukti statiskie bloki un pēc tam tiek izsaukts konstruktors. Ja mēs būtu palaiduši to pašu programmu, neizmantojot objektu, konstruktors nebūtu izsaukts.  

3. programma:

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));  } } 

Izvade:

Lieldienu olas Android ierīcē
Compilation fails. 

Paskaidrojums:

Metode calc() klasē superClass ir galīga, un tāpēc to nevar ignorēt.  

4. programma:

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);  } } 

Izvade:

false  
true

Paskaidrojums:

Integer objekta avota kodā mēs atradīsim metodi 'valueOf', kurā mēs varam redzēt, ka Integer objekta diapazons ir no IntegerCache.low(-128) līdz IntegerCache.high(127). Tāpēc skaitļi virs 127 nedos gaidīto rezultātu. IntegerCache diapazonu var novērot no IntegerCache klases pirmkoda.