Está en la página 1de 15

Ejemplos de

Preguntas
Muestra de Preguntas de Selección Múltiple
acerca del tema trabajado con sus
correspondientes respuestas y
explicaciones.

Ejemplos de Preguntas ii
Ejemplos de Preguntas ii
Reinaldo José Carrillo Roldán
Jaime Leandro Martínez Sánchez
Certificación de Nivel Técnico, 4 Semestre
Tutora Ingrid Rocío Baquero Villamil
Lunes 7 de Diciembre de 2015.

Ejemplos de Preguntas
Muestra de Preguntas de Selección Múltiple acerca del tema trabajado
con sus correspondientes respuestas y explicaciones.

Introducción
De acuerdo a lo solicitado en el proyecto de Aula, este documento constituye el
documento del literal ‘c’ correspondiente a los ejemplos de preguntas (Mínimo 5),
basadas en la sintáxis del Lenguaje Java que sirvan como herramienta de
preparación para el examen de certificación “Java Estandar Edition” y que en nuestro
caso es la prueba:

Exam Number: 1Z0-804

Exam Name Java SE 7 Programmer II

Associated Certifications: Oracle Certified Professional, Java SE 7


Programmer

A Continuación, se detallan las preguntas, con sus correspondientes respuestas


y una breve explicación de cada una de ellas, que permita comprender un poco
mejor el concepto trabajado . Cabe aclarar que las preguntas están basadas en el
ejercicio práctico llamado “Certificación” que acompaña este documento.

Preguntas

Ejemplos de Preguntas 1
Pregunta 1
De acuerdo al siguiente código responda:

private Conexion (){


try {
Class.forName("com.mysql.jdbc.Driver");
enlace = DriverManager.getConnection("jdbc:mysql://localhost:3306/
Certificacion?zeroDateTimeBehavior=convertToNull","root", "");
} catch (ClassNotFoundException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null,
ex);
} catch (SQLException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null,
ex);
}
}

En el espacio dentro del recuadro debemos agregar la siguiente pieza de


código que permita agregar la excepción.

a. ClassNotFoundException ex
b. NullPointerException ex
c. IncompatibleClassChangeException ex
d. ClassCastException ex

Respuesta
La respuesta correcta es

a. ClassNotFoundException ex

Explicación
Se genera la excepción cuando la clase no se ha encontrado, recordemos que
el Driver es una clase a la cual se accede por medio de la sentencia que está incluida
dentro del parentesis. Las otras excepciones están referidas a b) cuando se intenta
acceder a una variable o a un método antes de que este sea definido. c) El intento de
cambiar una clase afectada por referencias en otros objetos, en especial cuando

Ejemplos de Preguntas 2
estos aun no han sido recompilados. Y d) cuando se intenta convertir un objeto a otra
clase que no es valida.

Ejemplos de Preguntas 3
Pregunta 2
De acuerdo al siguiente código responda:

public class Conexion {


public static Conexion instancia;
private Conexion (){
try {
Class.forName("com.mysql.jdbc.Driver");
enlace = DriverManager.getConnection("jdbc:mysql://localhost:3306/Certifica
cion?zeroDateTimeBehavior=convertToNull","root", "");
} catch (ClassNotFoundException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null,
ex);
} catch (SQLException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null,
ex);} }}

a. No hay ningún problema para instanciar objetos de esta clase con este
constructor.
b. Debemos recurrir a un método público que en su interior cree una
instancia de esta clase, llamando al constructor. Este método debe
estar en la misma clase Conexión.
c. Debemos recurrir a un método que en su interior cree una instancia de
esta clase, llamando al constructor sin importar que este contenido en
otra clase
d. Debemos sobrescribir este constructor en las diferentes clases donde
debamos crear una instancia de la misma.

Podemos acceder a instanciar objetos de la clase Conexión si:

Respuesta

b. Debemos recurrir a un método público que en su interior cree una


instancia de esta clase, llamando al constructor. Este método debe
estar en la misma clase Conexión.

Explicación
Ya que el constructor de la clase es privado, debemos crear un método que
permita instanciar (crear objetos) de esta clase. Este método deberá ser público y

Ejemplos de Preguntas 4
deberá estar contenido en la misma clase donde se formula. Esto para poder aplicar
el Patrón de Diseño Singleton, cuyo método debe además ser Synchronized. En
nuestro caso, el método es estaConectado, que verifica si hay una instancia de la
clase, si ya la hay no hace nada, pero en caso contrario, crea una única instancia de
la clase.

Pregunta 3
De acuerdo al siguiente código responda:

private void btnDefinitivaActionPerformed(java.awt.event.ActionEvent evt) {


txtDefinitiva.setText("0");
int valor = notas.getRowCount();
double temp = 0.0; double temp1 = 0.0;
double resultado = 0.0;
for(int i=0;i<=valor; i++){
temp = Double.parseDouble(String.valueOf(notas.getValueAt(i,3)));
temp1 += temp; }
resultado = temp1 / notas.getRowCount();
txtDefinitiva.setText(String.valueOf(resultado));
}

a. Calcula la definitiva promediando los valores obtenidos en la columna 4


de la tabla.
b. Calcula la definitiva promediando los valores obtenidos en la columna 3
de la tabla.
c. Lanza un error de compilación por cuanto la sintaxis no es la adecuada
ya que se cambiaron de posición las variables utilizadas.
d. Lanza una excepción ArrayIndexOutOfBoundsException que no fue capturada
con un bloque try catch o una clausula Throws

El resultado que obtenemos al ejecutar la acción sobre el botón btnDefinitiva


es:

Respuesta

Ejemplos de Preguntas 5
d. Lanza una excepción ArrayIndexOutOfBoundsException que no fue
capturada con un bloque try catch o una clausula Throws

Explicación
En el ciclo ‘for’ encontramos que para i = 0 y mientras i sea menor o igual que
valor debe ejecutar las acciones del ciclo, en el momento que i se iguala con valor,
ya se ha salido del contador de filas asignado a valor, por lo cual lanza la excepción
(adrede obviamos el bloque Try Catch que captura la excepción para poder
ejemplificar mejor esta pieza de código) ArrayIndexOutOfBoundsException. Es por eso
que deben darse dos posibles soluciones. La primera es que i sólo sea menor que
valor ó que sea escrito que i sea menor o igual que valor menos uno (1). Haciendo
esta corrección, este método del btnDefinitiva, suma los valores de la columna 4 de
la tabla (recordemos que los indices de los arreglos inician en 0 y no en 1) y luego
divide este valor por el número de filas que esta tenga.

Ejemplos de Preguntas 6
Pregunta 4
Para la siguiente Interface y de acuerdo al uso de “Generics” responda

public interface ObtenerABMC <Entidadlibre> {


public boolean darDeAlta(Entidadlibre e);
public boolean darDeBaja(Object pk);
public boolean hacerModificacion(Entidadlibre e);
public Entidadlibre consultar(Object pk);
public List <Entidadlibre> consultarTodo();
}

a. No es necesario Importar ningún paquete de otra clase para poder


construir esta interface ya que para eso hemos incluido un tipo
genérico.
b. Debemos Incluir el paquete que contiene la clase “EntidadLibre” si esta
no se encuentra en el mismo paquete en que esta contenida la interfaz.
c. Debemos Incluir el paquete que contiene la clase “EntidadLibre” de
cualquier manera, ya que las interfaces que utilizan Generics, requieren
siempre de la importación de la clase que referencia.
d. Debemos incluir el paquete java.util.List como única importación, ya que
los “Generics” definen el tipo de elemento a utilizar y cada clase que
implementa define su propio tipo de elemento. No hay relación.

que paquete debemos importar para poder construir esta interface:

Respuesta

Explicación
Como podemos ver, en el método abstracto consultarTodo el valor de retorno
es una “List” de tipo “EntidadLibre” por lo que, tanto la interfaz como la clase que
implemente la interfaz, deberán importar del paquete java.util. la interfaz List, que
nos define el comportamiento de una lista de elementos. “Esta lista normalmente
admite elementos duplicados o iguales y son principalmente accedidos por su
posición o por su secuencia, de acuerdo a las caracteristicas”(Oracle). Ya, el paquete
java.util incluye clases (como LinkedList) que implementan esta interfaz, pero en

d. Debemos incluir el paquete java.util.List como única importación, ya


que los “Generics” definen el tipo de elemento a utilizar y cada clase
que implementa define su propio tipo de elemento. No hay relación.

Ejemplos de Preguntas 7
este caso hemos dado una Lista Genérica (que en el caso de List es <E>). Será la
unica relación con Genericos, porque el Genérico de este ejemplo <EntidadLibre> es
sólo la definición de tipo para esta interfaz, que está relacionada con cualquier cosa
que queramos trabajar. Ya cada Clase que haga una implementación de esta
interfaz, define el tipo según el nombre de la clase de lo que quiere devolver al hacer
la implementación.

Pregunta 5
En el siguiente código deseamos crear Profesores e ingresarlos a la Base de
Datos,; sin embargo, hace falta una pieza de código que nos permita ejecutar la

public class ProfesorDAO implements ObtenerABMC<DTOProfesor>{

private static final String SQL_CREAR = "INSERT INTO Profesor


(documento, password, nombres, apellidos, privilegio) VALUES
(?, ?, ?, ?, ?)";
private static final Conexion CONEXION = Conexion.estaConectado();

@Override
public boolean darDeAlta(DTOProfesor e) {
PreparedStatement ps;
try {
ps = CONEXION.getEnlace().prepareStatement(SQL_CREAR);
ps.setString(1, e.getDocumento());
ps.setString(2, e.getPassword());
ps.setString(3, e.getNombres());
ps.setString(4, e.getApellidos());
ps.setBoolean(5, e.isPrivilegio());
if (ps.executeUpdate() > 0){
return true; }
} catch (SQLException ex) {
Logger.getLogger(EstudianteDAO.class.getName()).log(Level.SEVERE, null,
ex); } finally{
CONEXION.cerrarConexion();
}
return false;
}}

query en el método darDeAlta.

Ejemplos de Preguntas 8
Que pieza de código debemos incluir en el recuadro de tal modo que podamos
completar la operación deseada:

a. Statement ps;
b. ResultSet ps;
c. PreparedStatement ps;
d. PreparedStatement ps = new Statement(DTOProfesor e);
e. Statement ps = new PreparedStatement(DTOProfesor e);
f. PrepredStatement ps = new PreparedStatement(DTOProfesor e);

Respuesta

c. PreparedStatement ps:

Explicación
En este caso debemos crear una variable local (la que de acuerdo al código
debe llamarse ps, aunque no necesariamente tenga que tener este nombre – ese es
el nomre seleccionado para este ejemplo-). esta “Variable Local” debe ser un
Statement, pero como la query no esta incluida a nivel local, sino se ha definido
como una variable de clase (que además tiene los modificadores “Static” y “Final”
por lo que se comporta como una constante) con el String que representa la Query,
entonces creamos un atributo de tipo PreparedStatement, adecuado para trabajar
los Statements que se han definido por fuera del método.
El metodo de PreparedStatement (prepareStatement) recibe como parámetro
un String, que en este caso coincide con la Query ( SQL_CREAR). Por tanto, la variable
PreparedStatement ps, se inicializa con la sentencia
CONEXION.getEnlace().prepareStatement(SQL_CREAR) por lo que no se crean nuevos
objetos. Además, porque la sintaxis dadas a los literales d, e y f son erróneos
(“DTOProfesor e” es el parámetro que recibe el método y no guarda relación con el
Statement pues este se utiliza para ejecutar la query en la base de datos y por tanto
“ps” es un objeto que la ejecuta, por lo que se enlaza y aplica la sentencia
representada en el String predefinido).

Ejemplos de Preguntas 9
Pregunta 6
Observe el siguiente código y luego responda.

package Controlador;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.*;
public class RelojCTL extends JLabel implements Runnable {
private String dia, mes, año, hora, minutos, segundos;
private final Calendar calendario = new GregorianCalendar();
Thread hilo;
public static RelojCTL instancia;
public RelojCTL (int x, int y, int p, int p1) { //Constructor
setBounds(x, y, p, p1);
hilo = new Thread(this);
hilo.start();}
private RelojCTL (){
RelojCTL reloj = new RelojCTL (0, 0, 0, 0);
reloj.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
reloj.setFont(new java.awt.Font("Arial", 1, 32));
JFrame VtnReloj = new JFrame();
VtnReloj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
VtnReloj.setBounds(0, 0, 250, 150);
VtnReloj.getContentPane().add(reloj);
VtnReloj.setVisible(true);
VtnReloj.setTitle("La hora y el día de hoy es:"); }
public void actualizar() {
Date fechaHoraActual = new Date();
calendario.setTime(fechaHoraActual);
hora = String.valueOf(calendario.get(Calendar.HOUR_OF_DAY));
minutos = calendario.get(Calendar.MINUTE) > 9 ? "" +
calendario.get(Calendar.MINUTE) : "0" + calendario.get(Calendar.MINUTE);
segundos = calendario.get(Calendar.SECOND) > 9 ? "" +
calendario.get(Calendar.SECOND) : "0" + calendario.get(Calendar.SECOND);
dia = calendario.get(Calendar.DATE) > 9 ? "" +
calendario.get(Calendar.DATE) : "0" + calendario.get(Calendar.DATE);
mes = calendario.get(Calendar.MONTH) > 9 ? "" +
calendario.get(Calendar.MONTH) : "0" + calendario.get(Calendar.MONTH);
año = calendario.get(Calendar.YEAR) > 9 ? "" +
calendario.get(Calendar.YEAR) : "0" + calendario.get(Calendar.YEAR);}

Ejemplos de Preguntas 10
@Override
public void run() {
Thread ct = Thread.currentThread();
while (ct == hilo) {
try {
actualizar(); int mesE;
mesE = Integer.valueOf(mes) + 1;
setText("<html><center>" + dia + " / " + mesE + " / " + año +
"<br>" + hora + ":" + minutos + ":" + segundos);
Thread.sleep(1000);
} catch (InterruptedException ex) {
JOptionPane.showMessageDialog(null, "Reloj interrumpido");}}}
public synchronized static RelojCTL creaFrame() {
if (instancia == null){
instancia = new RelojCTL();
}
return instancia; }}

Que interfaz o Clase debe ser implementada en la definición de la clase para


poder ejecutar los hilos de ejecución y cual es el patrón de diseño utilizado para la

a. La Interfaz Runnable y el Patrón de diseño MVC


b. La interfaz Runnable y el patrón de diseño DAO
c. La interfaz Runnable y el patrón de diseño SINGLETON
d. La Interfaz Thread y el Patrón de diseño MVC
e. La interfaz Thread y el patrón de diseño DAO
f. La interfaz Thread y el patrón de diseño SINGLETON
g. La Clase Thread y el Patrón de diseño MVC
h. La Clase Thread y el patrón de diseño DAO
i. La Clase Thread y el patrón de diseño SINGLETON

construcción de esta clase:

Respuesta

Explicación
La interfaz para implementar la clase Thread se denomina Runnable. La Clase
Thread no implementa sino que extiende y como ya hereda de JLabel en Java no
existe la herencia múltiple. Si podemos instanciar objetos de la clase Thread. Ahora,
para implementar la interface Runnable es necesario implementar el método “Run”,
que es a través del cual se ejecuta el hilo. Respecto al patrón de diseño, toda la
implementación se lleva a cabo en la misma clase. El hecho que al final del nombre
c. La interfaz Runnable y el patrón de diseño SINGLETON
Ejemplos de Preguntas 11
de la clase use la sigla CTL es un distractor para pensar que utiliza el patrón Modelo-
Vita-Controlador y que esta clase corresponde al controlador, pero la funcionalidad
no se ha separado. No tiene acceso a datos, por lo que no es DAO, no sirve de
modelo para crear otro relojes con variaciones por lo que no es el patrón de diseño
Factory Pattern. Sin embargo, observamos que su constructor es privado, que un
método público instancia la clase a través de un atributo de instancia, que utiliza el
modificador Synchronized: caracteristicas que se corresponden con el patrón de
diseño “Singleton”.

Ejemplos de Preguntas 12
Bibliografía
DEITEL, P.J. & DEITEL H.M.(2008) Como Programar en Java. Traducido por Alfonso
Vidal Romero. (7ª edición). Editorial Pearson Educación. México.
GIBERT, M. (2007) Bases de Datos: Desarrollo de aplicaciones en conexión con bases de
datos PHP y Java. (2ª edición) Universidad Abierta de Cataluña. UOC. Disponible
en http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-
datos/Course_listing.
JOYANES, L. (2002) Fundamentos de Programación: Algoritmos, estructuras de datos y
Objetos. (4ª edición) McGraw – Hill. España.
JOYANES, L. & ZAHONERO, I. (2008) Estructuras de datos con Java. McGraw – Hill.
España
KENDALL, S. (2009) Object Oriented Programming using Java. Ventus Publishing. Free
eBook. Disponible en https://sunsreynat.files.wordpress.com/2014/06/object-
oriented-programming-using-java.pdf.
PEARSON. Test área and Testing Centers PearsonVue. Disponible en:
http://home.pearsonvue.com/test-taker.aspx . Recuperado en 6 de noviembre de
2015.
SILBERSCHATZ, A., KORTH, H. F. & SUDARSHAN S. (2002). Database system
concepts (4th ed.). McGraw – Hill.

Como recurso de consulta, fue utilizado el sitio web oficial de Oracle (documentación,
API, Oracle University) para los diferentes contenidos de este ejercicio.

Ejemplos de Preguntas 13

También podría gustarte