option
Cuestiones
ayuda
daypo
buscar.php

preguntas examen programacion ud 5,6,7 y 8

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
preguntas examen programacion ud 5,6,7 y 8

Descripción:
preguntas examen

Fecha de Creación: 2026/06/04

Categoría: Otros

Número Preguntas: 40

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Analiza el siguiente fragmento de código Java para leer un fichero de texto: FileReader fr = new FileReader("datos.txt"); int c = fr.read(); while (c != -1) { System.out.print((char)c); c = fr.read(); } // Falta cerrar el flujo Si olvidamos invocar al método fr.close(); al finalizar la lectura, ¿qué consecuencia inmediata tiene en el sistema?. A) Provoca obligatoriamente un error de compilación inmediato (Compiler Error). B) El fichero se bloquea en el sistema operativo y se produce una fuga de recursos (resource leak), impidiendo que otros procesos o el propio programa lo modifiquen o eliminen correctamente. C) Los caracteres leídos se borran automáticamente del disco duro interno.

Dispones de un fichero de texto muy grande y necesitas optimizar su rendimiento leyendo líneas completas en lugar de caracteres individuales. ¿Qué combinación de clases de la librería java.io es la adecuada?. A) FileReader envuelto (decorado) dentro de un BufferedReader. B) FileInputStream combinado directamente con un DataInputStream. C) RandomAccessFile configurado en modo únicamente de escritura "w".

Observa el siguiente código Java que intenta escribir datos en un archivo binario: FileOutputStream fos = new FileOutputStream("salida.dat"); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(25); dos.writeDouble(10.5); dos.close(); ¿Qué ocurrirá si intentamos abrir el archivo resultante "salida.dat" con un editor de texto plano como el Bloc de Notas?. A) Veremos el texto perfectamente formateado como "25" y "10.5". B) El Bloc de Notas mostrará caracteres extraños, ilegibles o corruptos (giberish), ya que los datos se han guardado en formato binario puro según la representación en memoria de Java. C) El sistema operativo lanzará una excepción de tipo FileNotFoundException al intentar abrirlo.

¿Qué ocurre de forma predeterminada si instanciamos un objeto con FileWriter fw = new FileWriter("notas.txt"); cuando el archivo "notas.txt" ya existía previamente en el disco duro y contenía información?. A) El constructor lanza una excepción controlada de tipo IOException por seguridad. B) El archivo antiguo se mantiene intacto y los nuevos datos se añaden al final del texto existente de forma automática. C) El contenido anterior del archivo se destruye por completo (se sobrescribe), quedando el fichero en blanco listo para la nueva escritura.

Observa este método que manipula archivos de acceso aleatorio: RandomAccessFile raf = new RandomAccessFile("datos.bin", "rw"); raf.writeInt(100); // Escribe 4 bytes raf.seek(0); int resultado = raf.readInt(); ¿Qué valor terminará almacenado en la variable resultado tras la ejecución completa del bloque?. A) Dará un error de compilación porque seek(0) solo acepta variables de tipo String. B) Almacenará el valor 100, porque seek(0) reposiciona el puntero del archivo justo al principio del mismo (posición 0), permitiendo volver a leer lo escrito. C) Lanzará una excepción de tipo EOFException en tiempo de ejecución.

En el desarrollo de interfaces gráficas modernas con la tecnología JavaFX (estudiada en la Unidad 5), ¿qué papel fundamental juega el uso de archivos con extensión .fxml combinados con la herramienta Scene Builder?. A) Almacenar los registros y tablas de la base de datos de manera relacional. B) Definir la estructura visual y el diseño de la interfaz de usuario mediante un lenguaje de marcado XML, separando el diseño del código lógico de Java (Controlador). C) Compilar el código fuente de Java para convertirlo en bytecode multiplataforma.

¿Cuál es el bloque o estructura recomendada a partir de Java 7 para asegurar que cualquier flujo (Stream) o fichero se cierre automáticamente sin importar si ocurren excepciones durante su ejecución?. A) El bloque try-catch clásico sin sección finally. B) El bloque try-with-resources, declarando la apertura del flujo dentro de los paréntesis del try. C) El uso del modificador volatile en la cabecera del método.

Observa detalladamente el siguiente fragmento de código Java: int[] numeros = new int[5]; numeros[5] = 10; ¿Qué sucederá exactamente al intentar compilar y ejecutar estas líneas?. A) Compila perfectamente, pero al ejecutarse lanza la excepción ArrayIndexOutOfBoundsException. B) Da un error de compilación en la segunda línea porque los arrays no aceptan asignaciones directas. C) El array cambia su tamaño dinámicamente y pasa a tener una longitud de 6 elementos de forma transparente.

Tienes el siguiente código que manipula cadenas de texto (clase String): String s1 = "hola"; s1.toUpperCase(); System.out.println(s1); ¿Qué se mostrará impreso en la consola de comandos tras ejecutar el código?. A) HOLA. B) hola. C) Dará un error de compilación porque los métodos de String no devuelven datos.

Analiza este método que procesa un archivo XML en Java: // Código que carga un documento XML usando el enfoque DOM DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("config.xml")); ¿Cuál es la principal característica del analizador DOM (Document Object Model) respecto al uso de la memoria RAM del servidor?. A) Es extremadamente ligero porque lee el archivo XML secuencialmente mediante eventos sin almacenar nada. B) Carga el documento XML completo en la memoria RAM construyendo una estructura de árbol de nodos, lo que permite navegar libremente pero consume mucha memoria si el archivo es gigantesco. C) Transforma el archivo XML en una base de datos relacional de tipo MySQL automáticamente.

¿Cuál es el resultado de intentar añadir un elemento duplicado dentro de una colección que implementa la interfaz Set (como por ejemplo, un HashSet) en Java? Set<String> nombres = new HashSet<>(); nombres.add("Ana"); boolean r = nombres.add("Ana"); ¿Qué ocurrirá con la colección y qué valor guardará la variable booleana r?. A) Se produce una excepción de tipo IllegalArgumentException en la segunda inserción. B) El elemento se duplica y la colección pasa a tener dos elementos iguales; r vale true. C) La colección ignora el duplicado y mantiene una única copia de "Ana"; el método add devuelve false indicando que no se pudo añadir.

Analiza el siguiente fragmento de código que utiliza mapas (estructura clave-valor): Map<String, Integer> inventario = new HashMap<>(); inventario.put("Manzanas", 50); inventario.put("Manzanas", 80); System.out.println(inventario.get("Manzanas")); ¿Qué valor se imprimirá en la pantalla al ejecutar el código?. A) 50. B) 80. C) Lanzará una excepción en tiempo de ejecución porque las claves no se pueden repetir.

Tienes una lista dinámica declarada de la siguiente forma: List<Integer> lista = new ArrayList<>(); lista.add(10); lista.add(20); lista.remove(0); System.out.println(lista.get(0)); ¿Qué valor se mostrará en la consola tras borrar la posición 0?. A) 20. B) 10. C) Lanzará una excepción de tipo NullPointerException.

Observa la siguiente expresión regular en Java: String patron = "\\d{3}"; ¿Con cuál de las siguientes cadenas de texto producirá una coincidencia exacta (match) al evaluar dicho patrón?. A) "abc". B) "12". C) "458".

Analiza el siguiente diseño de clases en Java: public class Padre { public final void mostrarMensaje() { System.out.println("Hola desde el padre"); } } public class Hijo extends Padre { public void mostrarMensaje() { System.out.println("Hola desde el hijo"); } } ¿Qué sucederá cuando intentemos compilar la clase Hijo?. A) El código compila correctamente y el método del Hijo anula al del Padre. B) Se produce un error de compilación porque un método declarado como final en la superclase no puede ser sobrescrito (overridden) por ninguna subclase. C) El compilador obliga a cambiar el nombre de la clase Hijo.

Observa el siguiente código que involucra una clase abstracta: public abstract class Animal { public abstract void hacerSonido(); } // En otra parte del código: Animal miAnimal = new Animal(); ¿Qué ocurrirá al intentar compilar la línea donde se crea el objeto miAnimal?. A) Compila perfectamente y se crea un animal genérico en memoria. B) Se genera un error de compilación porque las clases abstractas actúan como plantillas incompletas y está totalmente prohibido instanciarlas directamente usando el operador new. C) El programa compila pero se detiene con una excepción de tipo AbstractMethodError.

Analiza el comportamiento del modificador estático (static) en este fragmento: public class Contador { public static int cuenta = 0; public Contador() { cuenta++; } } // Ejecución: Contador c1 = new Contador(); Contador c2 = new Contador(); System.out.println(Contador.cuenta); ¿Qué número se mostrará impreso en la consola tras crear los dos objetos?. A) 1. B) 2. C) 0.

Examina el siguiente caso práctico de Polimorfismo: public class Vehiculo { public void arrancar() { System.out.println("Vehículo arrancando"); } } public class Moto extends Vehiculo { @Override public void arrancar() { System.out.println("Moto arrancando"); } public void hacerCaballito() { System.out.println("Haciendo caballito"); } } // En el método main: Vehiculo v = new Moto(); v.arrancar(); ¿Qué texto se mostrará en la pantalla al ejecutar v.arrancar();?. A) Vehículo arrancando. B) Moto arrancando. C) Dará un error de compilación porque la variable es de tipo Vehiculo.

public class Vehiculo { public void arrancar() { System.out.println("Vehículo arrancando"); } } public class Moto extends Vehiculo { @Override public void arrancar() { System.out.println("Moto arrancando"); } public void hacerCaballito() { System.out.println("Haciendo caballito"); } } // En el método main: Vehiculo v = new Moto(); v.arrancar(); Basándonos en el código anterior, ¿qué sucederá si intentamos compilar e invocar la siguiente línea en el main? v.hacerCaballito(); ¿Cómo reaccionaria el compilador de Java?. A) Se produce un error de compilación porque el método hacerCaballito() no existe en la clase de la referencia, que es Vehiculo. B) Compila bien y ejecuta el método de la moto de forma transparente. C) Lanza un NullPointerException al ejecutarse.

Analiza el uso de la palabra clave super dentro del constructor de una subclase: public class Persona { public Persona(String nombre) { System.out.println("Persona: " + nombre); } } public class Empleado extends Persona { public Empleado() { // No hay código explícito aquí System.out.println("Empleado creado"); } } ¿Qué ocurrirá al intentar compilar la clase Empleado?. A) Compila perfectamente y llama al constructor padre de forma automática pasándole un valor nulo. B) Se produce un error de compilación porque el compilador de Java intenta insertar la llamada automática super(); sin parámetros, pero la clase Persona no tiene un constructor vacío por defecto. C) Compila bien pero da un error de ejecución de desbordamiento de pila.

¿Qué modificador de acceso debes aplicar a un atributo de una superclase para que sea completamente inaccesible para cualquier clase externa, pero que pueda ser heredado y accedido directamente por sus subclases?. A) private. B) protected. C) public.

¿Qué ocurre si declaramos una clase completa con el modificador final, como por ejemplo public final class Configuracion { ... }?. A) Todos los métodos y atributos de esa clase se vuelven estáticos de forma automática. B) Ninguna otra clase del programa podrá heredar o extender de ella (Configuracion no puede tener clases hijas). C) No se podrán modificar los valores de sus variables internas bajo ningún concepto.

Observa el siguiente código típico de conexión a bases de datos mediante JDBC: String url = "jdbc:mysql://localhost:3306/tienda"; Connection cn = DriverManager.getConnection(url, "root", "1234"); Statement st = cn.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM productos"); ¿Cuál es la función exacta que realiza el objeto almacenado en la variable rs (clase ResultSet)?. A) Almacena la conexión física y el canal de red abierto con el servidor de base de datos. B) Actúa como un contenedor que guarda el conjunto de filas y resultados devueltos por la consulta SQL, proporcionando un cursor para recorrerlos. C) Ejecuta comandos de actualización como INSERT o DELETE de forma asíncrona.

Analiza el siguiente bucle para procesar los datos recuperados de la base de datos: // rs es un ResultSet válido que contiene datos while (rs.next()) { String nombre = rs.getString("nombre_producto"); System.out.println(nombre); } ¿Qué papel fundamental cumple invocar al método rs.next() dentro de la condición del bucle while?. A) Borra la fila actual de la base de datos para liberar espacio en el disco duro. B) Desplaza el cursor del resultado a la siguiente fila disponible y devuelve true si hay una fila válida; devuelve false cuando ya no quedan más registros, finalizando el bucle. C) Reinicia la consulta SQL volviéndola a enviar al servidor MySQL.

Tienes el siguiente código en el que deseas insertar un nuevo usuario en la base de datos de manera dinámica: String query = "INSERT INTO usuarios (id, nombre) VALUES (?, ?)"; PreparedStatement ps = cn.prepareStatement(query); ps.setInt(1, 101); ps.setString(2, "Carlos"); int filasAfectadas = ps.executeUpdate(); ¿Por qué es una mejor práctica de programación usar PreparedStatement en lugar de un Statement clásico con concatenación de cadenas de texto?. A) Porque PreparedStatement compila la consulta de forma anticipada y previene de forma automática ataques informáticos de inyección SQL (SQL Injection). B) Porque PreparedStatement es el único que permite conectarse a servidores remotos. C) Porque no consume memoria RAM al ejecutar operaciones de inserción.

Observa este bloque de manipulación de datos: Statement st = cn.createStatement(); int resultado = st.executeQuery("UPDATE productos SET precio = 20 WHERE id = 1"); ¿Qué error de desarrollo grave presenta la segunda línea al intentar compilarse?. A) Las consultas de actualización UPDATE deben escribirse exclusivamente en minúsculas. B) El método executeQuery() sirve únicamente para consultas de selección (SELECT) que devuelven un ResultSet; para modificar datos (UPDATE, INSERT, DELETE) se debe usar obligatoriamente el método executeUpdate(), el cual devuelve un entero. C) El ID número 1 no puede pasarse como un valor numérico directo.

De acuerdo con la Unidad 8 de tus apuntes, ¿qué arquitectura o características definen a un Driver de Tipo 4 dentro de la clasificación de controladores JDBC?. A) Es un driver puente que traduce las llamadas de Java a funciones de bases de datos antiguas de tipo ODBC de Microsoft. B) Es un driver desarrollado íntegramente en lenguaje Java (Pure Java) que se comunica directamente con el servidor de la base de datos mediante el protocolo de red nativo del fabricante, sin necesidad de instalar software cliente intermedio. C) Es un driver de hardware físico que acelera las consultas SQL mediante la tarjeta gráfica.

Tienes dos interfaces definidas en tu sistema: public interface Volador { void volar(); } public interface Nadador { void nadar(); } // ¿Cuál de las siguientes declaraciones de clase es sintácticamente correcta en Java?. A) public class Pato implements Volador, Nadador { ... }. B) public class Pato extends Volador, Nadador { ... }. C) public class Pato implements Volador extends Nadador { ... }.

Analiza la conversión de tipos (casting) en el siguiente código: Object obj = "Hola Mundo"; Integer num = (Integer) obj; ¿Qué sucederá exactamente al ejecutar estas líneas de código?. A) El texto se convierte automáticamente a su longitud numérica y num valdrá 10. B) Lanza una excepción de tipo ClassCastException en tiempo de ejecución porque un objeto de la clase String no puede ser transformado a la clase Integer. C) El compilador detecta el problema y detiene el proceso con un error de sintaxis.

Observa este bucle clásico sobre un array: int[] datos = {4, 8, 2}; for (int i = 0; i <= datos.length; i++) { System.out.println(datos[i]); } ¿Cuál es el peligro oculto de este bucle durante su última iteración?. A) El bucle es infinito y colgará la aplicación. B) Arrojará un ArrayIndexOutOfBoundsException cuando i valga 3, debido al uso del operador menor o igual (<=) combinado con datos.length. C) Dará error de compilación porque los arrays no admiten inicializaciones directas entre llaves.

Si deseas almacenar una colección de elementos garantizando que se mantenga estrictamente el orden cronológico en el que fueron insertados y permitiendo la existencia de elementos duplicados, ¿qué interfaz de java.util debes escoger?. A) Set. B) List. C) Map.

Observa el siguiente código donde se trabaja con referencias nulas: String texto = null; if (texto.equals("admin")) { System.out.println("Acceso concedido"); } ¿Qué ocurrirá al ejecutar estas líneas?. A) Se evalúa como falso y el programa continúa normalmente sin imprimir nada. B) Se produce la famosa excepción NullPointerException de forma inmediata. C) El compilador da un error porque no se permite asignar null a un String.

¿Qué método de la clase File se debe emplear si deseamos comprobar de forma fehaciente si una ruta específica del disco duro corresponde a un directorio o carpeta en lugar de a un archivo regular?. A) isFile(). B) isDirectory(). C) exists().

¿Qué ventaja fundamental aporta la Programación Genérica (Uso de Generics como <T>) al trabajar con colecciones en Java según detalla la Unidad 6?. A) Aumenta la velocidad de descarga de archivos XML del servidor. B) Proporciona seguridad en los tipos de datos (Type Safety) en tiempo de compilación, eliminando la necesidad de realizar castings manuales continuos y reduciendo errores en tiempo de ejecución. C) Convierte automáticamente los flujos de bytes en flujos de caracteres.

Analiza el siguiente fragmento de código que maneja excepciones: try { int resultado = 10 / 0; } catch (Exception e) { System.out.println("Error genérico"); } catch (ArithmeticException e) { System.out.println("Error matemático"); } ¿Qué sucederá al intentar compilar este bloque de código?. A) Compila perfectamente y muestra en pantalla "Error genérico". B) Produce un error de compilación debido a que la clase hija ArithmeticException ya ha sido capturada de forma previa por la superclase Exception, haciendo que el segundo bloque catch sea inalcanzable (unreachable code). C) El programa se salta los dos bloques catch y detiene el servidor.

En el procesamiento de documentos XML, ¿cuál es el funcionamiento básico que caracteriza al analizador SAX (Simple API for XML)?. A) Lee el documento XML completo y lo transforma en código fuente de clases Java en el disco duro. B) Analiza el documento XML de forma secuencial y está basado en eventos (como el inicio de una etiqueta o la lectura de texto), notificando al programa a medida que avanza sin consumir apenas memoria RAM. C) Requiere obligatoriamente que el servidor esté conectado a una base de datos Oracle para validar los nodos.

Analiza la sobreescritura del siguiente método de una interfaz: public interface Calculable { int calcular(int a); } public class Operacion implements Calculable { // Intento de implementar el método int calcular(int a) { return a * 2; } } ¿Por qué fallará la compilación de la clase Operacion?. A) Porque el método no incluye la etiqueta @Override de forma obligatoria. B) Porque todos los métodos definidos dentro de una interfaz son implícitamente públicos, y en Java al implementar un método no se permite reducir su visibilidad (pasar de public al nivel por defecto de paquete provoca un error). C) Porque las interfaces no pueden ser implementadas por clases normales.

Si necesitas cerrar de forma segura las conexiones y los recursos de base de datos en una aplicación que utiliza JDBC clásico, ¿en qué orden inverso a su apertura se deben cerrar los objetos para evitar errores de referencias?. A) Primero Connection, luego Statement y por último ResultSet. B) Primero ResultSet, luego Statement y por último Connection. C) Da exactamente igual el orden siempre que se invoque al método close().

¿Qué método de la clase String debemos utilizar si necesitamos dividir una cadena de texto en un array de varias subcadenas utilizando como criterio de separación un carácter específico (por ejemplo, romper un texto separado por comas)?. A) substring(). B) split(). C) concat().

Observa el uso del operador de comparación con objetos: String n1 = new String("Java"); String n2 = new String("Java"); if (n1 == n2) { System.out.println("Iguales"); } else { System.out.println("Diferentes"); } ¿Qué se mostrará impreso en la consola al ejecutar este fragmento?. A) Iguales. B) Diferentes. C) Lanza una excepción de incompatibilidad de tipos.

Denunciar Test