Contenido de certificación
Buscar
Social
Ofertas laborales ES

Entries in ocjp (28)

domingo
jun112017

Sobreescribiendo métodos.

¿Compilaría y ejecutaría el siguiente código? Si no compila, ¿por qué razón? Si ejecuta, ¿cuál sería la salida?

package pruebas.ocp;

import java.io.FileNotFoundException;
import java.io.IOException;

public class Padre {
	protected void hola() throws IOException {
		System.out.println("Hola, soy el Padre");
	};
}

class Hijo extends Padre {

	public void hola() throws FileNotFoundException {
		System.out.println("Hola, soy el Hijo");
	};

	public static void main(String args[]) {
		Padre padre = new Padre();
		try {
			padre.hola();
		} catch (IOException e) {
			System.out.println("Exception " + e.getMessage());
		}

		Hijo hijo = new Hijo();

		try {
			hijo.hola();
		} catch (FileNotFoundException e) {
			System.out.println("Exception " + e.getMessage());
		}

		Padre mixto = new Hijo();

		try {
			mixto.hola();
		} catch (IOException e) {
			System.out.println("Exception " + e.getMessage());
		}

	}
}

jueves
abr092015

Más ejemplos sobre constructores

¿Compilaría y ejecutaría el siguiente código? Si no compila, ¿por qué razón? Si ejecuta, ¿cuál sería la salida?

Clase constructores1.Pruebas
package constructores1;


public class Pruebas {

	private String s = "publico";
	
	protected Pruebas() {
		this.s = "protected";  
    }

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Pruebas [s=" + s + "]";
	}
	

}

Clase constructores2.Pruebas
package constructores2;


public class Pruebas {

	private String s = "publico";
	
	protected Pruebas() {
		this.s = "protected";  
    }

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Pruebas4 [s=" + s + "]";
	}
	

}
Clase Principal

package constructores;

public class Principal {

	public static void main(String args[]){
		constructores1.Pruebas pruebas1 = new constructores1.Pruebas();
		System.out.println(pruebas1.toString());
		
		constructores1.Pruebas pruebas2 = new constructores2.Pruebas();
		System.out.println(pruebas2.toString());
		
	}
}
jueves
abr092015

Ejemplos sobre constructores

¿Compilarían los siguientes ejemplos?

Ejemplo 1
package constructores;

public class Pruebas1 {

	public Pruebas1(){
		
	};
	
	private Pruebas1(){
		
	};
	
	
}
Ejemplo 2
package constructores;

public class Pruebas2 {

	private Pruebas2(){
		
	};
	
	
}
lunes
jul142014

Duda sobre ArrayList y Vector.

Duda sobre ArrayList y Vector.

Buenos dís. Pensaba que tanto Vector como ArrayList se diferenciaban en que sus métodos eran (o no eran) thread-safe. Salió el debate en mi trabajo, y quise comprobarlo por mi mismo. Desarrollé el siguiente código. ¿Alguien puede indicarme la salida del mismo e intentar explicar la diferencia real, en un ejemplo práctico, entre Vector y ArrayList? Muchas gracias

import java.util.ArrayList;
import java.util.List;

public class Principal implements Runnable {

	private List lista = new ArrayList();
	private static List hilos = new ArrayList();

	private int i = 0;

	private final int MAX_VAL = 1000;
	private final static int MAX_VAL_STATIC = 1000;
	private final static int MAX_HILOS = 1000;
	private final static int TIEMPO_ESPERA_MS = 1000;

	public Principal(List lista) {
		this.lista = lista;

	}

	public static void main(String[] args) throws InterruptedException {

		Long inicio = System.currentTimeMillis();
		
		List lista = new ArrayList();

		System.out.println("Iniciando hilos....");
		for (int i = 0; i < MAX_HILOS; i++) {
			Principal p = new Principal(lista);
			hilos.add(p);
		}

		System.out.println("OK");

		System.out.println("Ejecutando hilos....");
		for (Principal hilo : hilos) {
			hilo.run();
		}
		System.out.println("OK");

		System.out.println("Esperando finalización");

		boolean finalizado = true;
		do {
			Thread.sleep(TIEMPO_ESPERA_MS);

			for (Principal hilo : hilos) {
				if (hilo.i < MAX_VAL_STATIC) {
					finalizado = false;
				}
			}

		} while (!finalizado);

		System.out.println("OK");

		System.out.println("EL TAMAÑO DE LA LISTA ES: " + lista.size());
		Long total = System.currentTimeMillis() - inicio;
	}

	public int getI() {
		return i;
	}

	public void setI(int i) {
		this.i = i;
	}

	@Override
	public void run() {
		while (i < MAX_VAL) {
			lista.add("" + i);
			i++;
		}
	}

}

lunes
abr072014

Más sobre GregorianCalendar....

¿Cuál es la siguiente salida y por qué?

Aclaraciones: se dispone de un equipo bastante potente a la hora de ejecución, y el día de ejecución es: 7 de Abril de 2014

NOTA: no vale hacer uso de IDE.
package es.orange.gateway.tools;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Pruebas {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		GregorianCalendar gc1 = new GregorianCalendar();

		gc1.set(Calendar.MONTH, 4);

		try {
			Thread.sleep(10);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		GregorianCalendar gc2 = new GregorianCalendar();

		gc2.set(Calendar.MONTH, 4);

		System.out.println(gc2.compareTo(gc1));
		
		GregorianCalendar gc3 = new GregorianCalendar();

		gc3.set(Calendar.MONTH, 4);
		
		GregorianCalendar gc4 = new GregorianCalendar();

		gc4.set(Calendar.MONTH, 4);

		System.out.println(gc4.compareTo(gc3));
		
		GregorianCalendar gc5 = new GregorianCalendar();

		gc3.set(Calendar.MONTH, 4);
		
		GregorianCalendar gc6 = new GregorianCalendar();

		gc6.set(Calendar.MONTH, 16);

		System.out.println(gc5.compareTo(gc6));

		System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(gc6.getTime()));

	}

}


jueves
mar272014

Preguntas sobre fechas

Buenos días.

Se plantean las siguientes preguntas, acerca gestión de fechas en Java.

1) Primera pregunta teórica, ¿qué diferencia existe entre las fechas de Java 6 y las últimas versiones de Java?

2) Pregunta práctica: ¿cómo determinar si una cadena, pasada como parámetro, se corresponde a una fecha correcta?

3) Segunda pregunta práctica: ¿cómo poder obtener el último día de un mes determinado?

Un saludo,

 

jueves
may302013

¿Cuál es la salida del siguiente programa y por qué?

 

public class Pruebas {
/**
* @param args
*/
public static void main(String[] args) {
  boolean a = true;
  boolean b = true;
  __main:
{
  if (a == true) {
  System.out.println("dentro del main: a es verdadero");
  System.out.println("ejecutamos break __main");
  break __main;
  } else {
  System.out.println("dentro del main: a es falso");
  }
  if (b == true) {
System.out.println("dentro del main: b es verdadero");
} else {
System.out.println("dentro del main: b es falso");
}
}
System.out.println("fuera del bloque __main");
} // end main
}

 

 

lunes
may062013

Pregunta sobre excepciones

Tenemos dos códigos: se pide en cada uno de ellos, decir si compila, y en tal caso, comentar la salida en tiempo de ejecución (lo más detallada posible).
CÓDIGO 1
package scjp;
public class Pregunta {
private int a = 0;
private int b = 10;
private int c = b / a;
public Pregunta() {
System.out.println("Hola JavaHispaneros "+c);
}
public static void main(String args[]) {
Pregunta p = new Pregunta();
}
}

package scjp;
public class Pregunta {
private int a = 0; private int b = 10; private int c = b / a;
public Pregunta() { System.out.println("Hola JavaHispaneros "+c); }
public static void main(String args[]) { Pregunta p = new Pregunta();
}}

 

CÓDIGO 2

package scjp;

 

public class Pregunta {

 

private D d = new D();

 

public Pregunta() {

System.out.println("Por aquí estamos otra vez " + d);

}

 

public static void main(String args[]) {

Pregunta p = new Pregunta();

 

}

 

class D {

 

D() throws PersonalException {

throw new PersonalException();

}

 

}

 

class PersonalException extends Exception {

 

}

}

 

lunes
abr152013

Más sobre Java 7

A continuación, comentamos las modificaciones principales que presenta Java 7 con respecto a Java 6. Un saludo, Jaime.

Click to read more ...

martes
abr092013

Pregunta sobre switch

Hola a todos,

¿Podéis argumentar cuál sería la salida en consola después de ejecutar el siguiente programa?

 

package javahispano;

public class EjemplosSwitch {

    public static void main(String args[]) {
        String jugador = "Cristiano Ronaldo";

        switch (jugador) {
        case "Cristiano Ronaldo":
            System.out.println("Real Madrid CF");
        case "Leo Messi":
            System.out.println("FC Barcelona");
        }
    }
}

Un saludo,

    Jaime.