logo

Salida del programa Java | Conjunto 9

Nivel de dificultad : Intermedio

Prediga el resultado de los siguientes programas Java:

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

Producción:



Geeksforgeeks  
Geeksforgeeks

Explicación:

Sabemos que las variables estáticas se llaman cuando se carga una clase y las variables estáticas se llaman solo una vez. Ahora la línea 13 da como resultado la creación del objeto que a su vez llama al constructor y 'Geeksforgeeks' se imprime por segunda vez. Si en la línea 8 no se hubiera utilizado la variable estática, el objeto se habría llamado de forma recursiva infinitamente, lo que provocaría un error de StackOverFlow.

3d en autocad

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

Producción:

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

Explicación:

El bloque estático se ejecuta cuando la clase se carga en la memoria. Una clase puede tener varios bloques estáticos que se ejecutan en la misma secuencia en la que se escribieron en el programa.

Nota : Los métodos estáticos pueden acceder a variables de clase sin utilizar el objeto de la clase. Dado que se llama al constructor cuando se crea una nueva instancia, primero se llaman los bloques estáticos y luego se llama al constructor. Si hubiéramos ejecutado el mismo programa sin usar el objeto, no se habría llamado al constructor.  

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

Producción:

convertir cadena en fecha
Compilation fails. 

Explicación:

El método calc() en la clase superClass es final y por lo tanto no se puede anular.  

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

Producción:

false  
true

Explicación:

En el código fuente del objeto Integer encontraremos un método 'valueOf' en el que podemos ver que el rango del objeto Integer va desde IntegerCache.low(-128) hasta IntegerCache.high(127). Por lo tanto, los números superiores a 127 no darán el resultado esperado. El rango de IntegerCache se puede observar en el código fuente de la clase IntegerCache.