Está en la página 1de 5

Intercrédito de Colombia

Evaluación para cargo de Analista Desarrollador de Software


Lenguaje: Java
2020

Seleccione la respuesta correcta.

1. Cuáles de los siguientes enunciados corresponden al concepto de Herencia, en Java:

a. Es posible heredar de múltiples clases base.


b. Se heredan los métodos con acceso protected y private.
c. Se usa la palabra reservada implements para heredar de una clase.
d. No se puede llamar al constructor de la clase base.
e. Todas las anteriores.
f. Ninguna de las anteriores.

2. De las siguientes opciones, cuáles son formas válidas de sobrecarga para el siguiente método:

public int sumar(int x, int y);

a. public int sumar(int a, int b);


b. public int sumar(int x, int y, int z);
c. public double sumar(int x, int y);
d. protected int sumar(int x, int y);
e. Todas las anteriores.
f. Ninguna de las anteriores.

3. La clase abstracta que se muestra a continuación puede ser instanciada de la siguiente manera:

public abstract class Invoice {...}

a. Invoice invoice = new Invoice();


b. Invoice invoice = new abstract Invoice();
c. Invoice invoice = ServiceActivator.createInstance(TypeOf(Invoice));
d. abstract Invoice invoice = Invoice.getInstance();
e. Todas las anteriores.
f. Ninguna de las anteriores.

4. En HTTP, cuál es el verbo correcto para enviar información al servidor:

a. GET
b. FORM
c. UPLOAD
d. POST
e. DELETE
f. SEND
g. MULTIPART\FORM-DATA

1 de 5
5. Si se desea almacenar una contraseña en Base de Datos, cuál de las siguientes estrategias se considera
como la mejor práctica:

a. Almacenar la contraseña en múltiples columnas y crear una vista para su recuperación.


b. Almacenar el Hash de la contraseña, de acuerdo a un algoritmo previamente establecido.
c. Almacenar la contraseña, utilizando un algoritmo de cifrado simétrico, con el nombre de usuario
como semilla.
d. Almacenar la contraseña en texto plano, con un nombre de columna que no refleje que es una
contraseña.
e. Todas las anteriores.
f. Ninguna de las anteriores.

6. Su aplicación en Java utiliza el siguiente método que es llamado múltiples veces:

public String buildSQLQuery(String tables, String fields, String id)


{
String sqlQuery = “SELECT ”;
sqlQuery += fields;
sqlQuery += “ FROM ”;
sqlQuery += tables;
sqlQuery += “ WHERE Id = ”;
sqlQuery += id;
return sqlQuery;
}

El método anterior genera problemas en el rendimiento, debido a las múltiples concatenaciones que realiza.
¿Qué se debe hacer para mejorar el rendimiento?

a. Hacer la concatenación en una sola línea.


b. Usar una lista de cadenas.
c. Usar un objeto StringConcat.
d. Usar un objeto ArrayList.
e. Usar un objeto StringBuilder.

7. Usted ha sido elegido para implementar una aplicación que debe poder trabajar con cualquiera de los
siguientes motores de bases de datos: SQLServer, Oracle, MySQL y PostgreSQL. Seleccione la mejor
estrategia que le permite llevar a cabo esta tarea con el menor impacto posible:

a. Crear una capa de acceso a datos independiente para cada motor, con su respectiva configuración
y crear una copia de la aplicación para cada una de ellas.
b. Utilizar un controlador genérico OleDB que soporte los motores mencionados.
c. Crear sentencias switch-case para seleccionar el motor en cada operación que tenga acceso a la
base de datos.
d. Utilizar un ORM para que realice esta tarea.
e. Usar procedimientos almacenados para todas las operaciones que tengan acceso a la base de
datos.
f. Ninguna de las anteriores.

2 de 5
8. ¿Cuál es el propósito de las pruebas de unidad?

a. Verificar que la aplicación compile correctamente.


b. Verificar que las dependencias de las librerías están correctas.
c. Verificar el comportamiento de cada componente con sus respectivas dependencias.
d. Verificar el comportamiento de cada componente de manera aislada.
e. Verificar el comportamiento de toda la aplicación.
f. Todas las anteriores.

9. ¿Qué es un Web Service?

a. Es una funcionalidad particular dada por Oracle y Java para facilitar el desarrollo de una aplicación.
b. Es una entidad programable que proporciona un elemento particular de funcionalidades y es
accesible a cualquier número de sistemas en plataformas diferentes.
c. Es cualquier Aplicación Java MVC a la que puede llegar cualquier otra aplicación Java.
d. Es una función exclusiva de Java.
e. Ninguna de las anteriores.
f. Todas las anteriores.

10. Los Web Services utilizan los siguientes estándares, excepto:

a. XML
b. POP
c. SOAP
d. HTTP
e. JSON
f. Ninguna de las anteriores.
g. Todas las anteriores.

11. Cuál es el resultado de la ejecución de la siguiente aplicación:

public class Program {


public static void main(String[] args) {
List<String> messages;
messages.add("Hello");
messages.add(" ");
messages.add("World!");
for (String message : messages) {
System.out.print(message);
}
}
}

a. El código no compila
b. La sentencia for con dos puntos (:) no es válida en Java
c. Se imprime en consola el texto: Hello World!
d. Se imprime tres veces en consola el texto: Hello World!
e. Ocurre una excepción de tipo VariableNotInitializeException.
f. Ninguna de las anteriores.
g. Todas las anteriores.

3 de 5
12. Un método de nuestra aplicación debe informar sobre un error ocurrido durante su ejecución. ¿Cuál es la
mejor alternativa para esto?

a. Codificar cada uno de los errores con un número y devolver ese número como valor de retorno del
método.
b. Devolver un booleano con valor false en caso de error.
c. Devolver un null y comprobar este valor en el componente que ejecuto el método.
d. Lanzar una excepción que describa el error ocurrido.
e. Ninguna de las anteriores.
f. Todas las anteriores.

13. En una sentencia try-catch-finally es correcto afirmar:

a. El código dentro del finally se ejecuta solo si se lanza una excepción.


b. El código dentro del finally se ejecuta solo si no se lanza una excepción.
c. El código dentro del finally se ejecuta siempre, sin importar si se lanza o no una excepción.
d. El código dentro del finally se utiliza solo para efectos de pruebas.
e. Ninguna de las anteriores.
f. Todas las anteriores.

14. El algoritmo de ordenamiento por mezcla se muestra a continuación (3 puntos):

public static void mergesort(int[ ] matrix, int init, int n) {


int n1;
int n2;
if (n > 1) {
n1 = n / 2;
n2 = n - n1;
mergesort(matrix, init, n1);
mergesort(matrix, init + n1, n2);
merge(matrix, init, n1, n2);
}
}

Y el siguiente es el método que nos permite mezclar los elementos de manera ordenada:

private static void merge(int[ ] matrix, int init, int n1, int n2) {
int[ ] buffer = new int[n1+n2];
int temp = 0;
int temp1 = 0;
int temp2 = 0;
int i;
while ((temp1 < n1) && (temp2 < n2))
{
if (matrix[init + temp1] < matrix[init + n1 + temp2])
buffer[temp++] = matrix[init + (temp1++)];
else
buffer[temp++] = matrix[init + n1 + (temp2++)];
}
while (temp1 < n1)
buffer[temp++] = matrix[init + (temp1++)];
while (temp2 < n2)

4 de 5
buffer[temp++] = matrix[init + n1 + (temp2++)];
for (i = 0; i < n1+n2; i++)
matrix[init + i] = buffer[i];
}

Para el siguiente array de elementos y usando el algoritmo MergeSort, complete el árbol de ejecución de
manera gráfica, dibujando los niveles que sean necesarios:

5 de 5

También podría gustarte