Ejercicios
Este cuestionario aborda la comunicación de Python y Java con bibliotecas escritas en C. Evalúa conceptos de ABI, carga de bibliotecas compartidas, configuración de tipos con ctypes, fundamentos de JNI, conversión de cadenas, gestión de memoria, compatibilidad de estructuras, callbacks, hilos nativos y propagación segura de errores. Las preguntas combinan situaciones prácticas y análisis de diagramas para comprobar si puedes diseñar integraciones nativas correctas y seguras.
Responde las preguntas a continuación y revisa la explicación de cada respuesta.
0/12 respondidas
Audio automático activado: las próximas preguntas se leerán al hacer clic en Seguir.
La ABI establece cómo se representan y llaman las funciones a nivel binario. Si ambas partes respetan esa interfaz, pueden interoperar sin compartir código fuente.
ctypes.CDLL carga una biblioteca compartida y permite acceder a sus símbolos exportados. Structure modela estructuras y py_object representa referencias a objetos de Python.
argtypes y restype indican a ctypes cómo convertir los argumentos y el resultado. Sin ellos, ciertas direcciones o valores pueden interpretarse con un tamaño equivocado.
La palabra clave native indica que la implementación no está en Java. System.loadLibrary carga la biblioteca que contiene la implementación nativa accesible mediante JNI.
JNIEnv* ofrece la interfaz con la que el hilo actual crea objetos, llama métodos y manipula referencias Java. No debe tratarse como un recurso intercambiable libremente entre hilos.
JNI entrega acceso temporal mediante GetStringUTFChars. Después del uso debe llamarse a ReleaseStringUTFChars para permitir que la JVM libere o desbloquee los recursos asociados.
ctypes actúa como interfaz de función foránea: carga la biblioteca C, localiza sus símbolos y convierte valores entre los tipos de Python y los tipos nativos.
La memoria debe liberarse con el mecanismo compatible con quien la reservó. Una función C de liberación hace explícita la propiedad y evita fugas, dobles liberaciones o el uso de asignadores incompatibles.
El compilador puede insertar relleno para alinear los campos. La definición en ctypes debe reproducir tipos, orden, alineación y empaquetado de la estructura C.
El objeto callback mantiene el puente ejecutable hacia Python. Si se recolecta mientras C conserva el puntero, una llamada posterior puede acceder a una dirección inválida y provocar un fallo.
Un hilo nativo debe adjuntarse a la JVM para obtener su propio JNIEnv*. Antes de terminar debe separarse, evitando reutilizar la interfaz asociada a otro hilo.
Una frontera nativa debe usar un contrato estable, como un código de estado y parámetros de salida. La capa de enlace puede validarlo y generar una excepción propia de Python o Java sin propagar excepciones incompatibles por la ABI.

Curso GratuitoProgramación JAVA intermedio
28h35m
33 ejercicios

Curso GratuitoAprende Python desde cero
4h36m

Curso GratuitoJava desde cero
1h01m
5 ejercicios

Curso GratuitoProgramación Orientada a Objetos Java
17h12m
35 ejercicios

Curso GratuitoProgramación JAVA desde cero
14h57m
31 ejercicios

Curso GratuitoProgramación Python desde cero
7h16m
24 ejercicios

Curso GratuitoPython desde 0
20h43m
39 ejercicios

Curso GratuitoPython desde cero
57m
5 ejercicios
Miles de cursos online en vídeo, ebooks y audiolibros.
Para poner a prueba tus conocimientos durante los cursos en línea
Generado directamente desde la galería de fotos de tu celular y enviado a tu correo electrónico
Descarga nuestra aplicación a través del Código QR o los enlaces a continuación:.
+ 10 millones
estudiantes
Certificado gratuito y
válido con código QR
60 mil ejercicios
gratis
Calificación de 4.8/5
en tiendas de aplicaciones
Cursos gratuitos de
vídeo y audiolibros