Tarea Académica 03
Tarea Académica 03
Tarea Académica 03
TAREA ACADÉMICA 3
2023
ÍNDICE
TEMA 1: JShell: conceptos, testing...............................................................................................3
TEMA 2: JSHELL EN CONSOLA Y EN IDE........................................................................................5
TEMA 3: FUNCIONAMIENTO DEL JVM..........................................................................................7
TEMA 4: EJEMPLO DE UN FORMULARIO CON DOS COMPONENTES VISUALES (NO VISTOS EN
CLASES)........................................................................................................................................9
CONCLUSIONES:.....................................................................................................................12
BIBLIOGRAFÍAS.......................................................................................................................13
TEMA 1: JShell: conceptos, testing
Fragmentos de código: Puedes ingresar fragmentos de código en JShell línea por línea, en lugar
de escribir un programa completo. Esto permite probar y experimentar con código de forma
interactiva.
Evaluación inmediata: JShell evalúa y ejecuta cada línea de código a medida que se ingresa.
Esto te permite ver los resultados de inmediato y explorar cómo funcionan diferentes
expresiones y declaraciones.
Variables y expresiones: Puedes declarar variables y utilizar expresiones en JShell. Las variables
se almacenan y están disponibles para su uso en fragmentos posteriores. Esto facilita el
seguimiento y la reutilización de valores durante una sesión de JShell.
Autocompletado: JShell admite autocompletado, lo que te ayuda a escribir código más rápido
y evita errores tipográficos. Puedes presionar la tecla Tab para ver las opciones de
autocompletado disponibles.
Puedes usar el marco de pruebas JUnit en NetBeans para escribir y ejecutar pruebas unitarias.
JUnit es una biblioteca popular para escribir pruebas en Java y se integra bien con NetBeans.
Puedes crear casos de prueba, establecer condiciones de prueba y verificar los resultados
esperados utilizando aserciones de JUnit.
Acceso a JShell: Para acceder a JShell en la consola de comandos, debes asegurarte de tener
Java 9 o una versión posterior instalada en tu sistema. Luego, ejecutas el comando "jshell" en
la consola y se iniciará el entorno interactivo de JShell.
JSHELL en NetBeans:
Interfaz gráfica: Al utilizar JShell en NetBeans, tendrás una interfaz gráfica más avanzada que
te permite ver tanto el código ingresado como los resultados de manera más organizada.
También puedes interactuar con JShell a través de la ventana de salida y la ventana de entrada
de comandos.
Autocompletado y sugerencias: NetBeans proporciona características adicionales, como
autocompletado y sugerencias de código, mientras escribes en la ventana de JShell. Esto
facilita la escritura de código y te ayuda a recordar los nombres de los métodos y las variables.
Integración con el proyecto: JShell en NetBeans está integrado con tu proyecto Java actual.
Puedes acceder a las clases y bibliotecas definidas en tu proyecto desde JShell, lo que te
permite realizar pruebas y experimentar con el código de tu aplicación.
Compilación: El código fuente de Java se compila utilizando el compilador de Java (javac) para
generar bytecode. El bytecode es un código intermedio que no se ejecuta directamente en la
máquina física, sino en el JVM.
Verificación: Antes de ejecutar el bytecode, el JVM realiza una verificación de seguridad para
garantizar que el código cumple con ciertas restricciones y no puede acceder a recursos no
autorizados. Esta verificación incluye comprobar la integridad del bytecode, la validación de
tipos y la detección de errores potenciales.
Interpretación y compilación en tiempo real (JIT): El JVM interpreta el bytecode línea por línea
y lo traduce a instrucciones de la máquina física en tiempo real. El intérprete ejecuta el
bytecode de manera rápida pero menos eficiente. Sin embargo, el JVM también utiliza una
técnica llamada compilación en tiempo real (JIT compilation) para mejorar el rendimiento. El
JIT identifica fragmentos de código que se ejecutan con frecuencia y los compila en código
nativo optimizado para la máquina subyacente, lo que acelera su ejecución.
Administración de memoria: El JVM se encarga de la gestión automática de la memoria en
tiempo de ejecución. Utiliza el recolector de basura (garbage collector) para liberar
automáticamente la memoria de los objetos no utilizados, lo que evita problemas de
fragmentación y fugas de memoria.
El JVM es altamente portátil, lo que significa que las aplicaciones Java se pueden ejecutar en
cualquier plataforma que tenga una implementación compatible del JVM. Esto se debe a que
el JVM proporciona una capa de abstracción sobre el sistema operativo subyacente,
permitiendo que el código Java sea independiente de la plataforma.
package formulario_1;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
/**
* @author hbelleza
*/
public Formulario_1() {
initComponents();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("formulario");
button.setText("Mostrar");
button.addActionListener(new java.awt.event.ActionListener() {
buttonActionPerformed(evt);
});
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(textField)
.addComponent(button, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(100, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(textField, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(button)
.addContainerGap(50, Short.MAX_VALUE))
);
pack();
java.awt.EventQueue.invokeLater(new Runnable() {
new Formulario_1().setVisible(true);
});
}
CONCLUSIONES:
- JShell es una herramienta poderosa y flexible que mejora la productividad y la agilidad en el
desarrollo de aplicaciones Java. Su integración con NetBeans ofrece un entorno de desarrollo
completo y funcionalidades adicionales, lo que hace que la experiencia de programar en Java
sea más eficiente y efectiva.
https://www.arquitecturajava.com/java-9-jshell-y-su-uso/
https://sites.google.com/a/espe.edu.ec/programacion-ii/home/interfaces-visuales-
componentes-swing?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F