Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


TALLER DE PROGRAMACION NUMERO 3, Apuntes de Programación Java

TALLER DE PROGRAMACION NUMERO 3

Tipo: Apuntes

2021/2022

Subido el 28/11/2022

liliana-antuane
liliana-antuane 🇵🇪

5

(1)

5 documentos

1 / 11

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
Facultad de Ingeniería
Ingeniería de Sistemas e Informática
TAREA ACADÉMICA 3
Alumno:
Código: U20231233
Ciclo: 4to
Curso: Taller de programación
Profesor: Lizardo Silva Ubaldo
2022
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga TALLER DE PROGRAMACION NUMERO 3 y más Apuntes en PDF de Programación Java solo en Docsity!

Facultad de Ingeniería

Ingeniería de Sistemas e Informática

TAREA ACADÉMICA 3

Alumno:

Código: U

Ciclo: 4to

Curso: Taller de programación

Profesor: Lizardo Silva Ubaldo

INDICE DE CONTENIDO

TEMA 1: JShell: conceptos, testing...................................................................................... 2

TEMA 2: JShell en consola y EN IDE.................................................................................. 2

TEMA 3: Funcionamiento del JVM..................................................................................... 2

TEMA 4: Ejemplo de un Formulario con dos componentes visuales (no vistos en clases)

CONCLUSIONES.................................................................................................................. 2

BIBLIOGRAFÍAS.................................................................................................................. 2

TEMA 1: JShell: conceptos, testing...................................................................................... 3

TEMA 2: JShell en consola y EN IDE.................................................................................. 5

TEMA 3: Funcionamiento del JVM..................................................................................... 8

TEMA 4: Ejemplo de un Formulario con dos componentes visuales.............................. 10

CONCLUSIONES................................................................................................................ 11

BIBLIOGRAFÍAS................................................................................................................ 11

TEMA 1: JSHELL: CONCEPTOS, TESTING

TEMA 2: JSHELL EN CONSOLA Y EN IDE

TEMA 3: FUNCIONAMIENTO DEL JVM

TEMA 4: EJEMPLO DE UN FORMULARIO CON DOS COMPONENTES

VISUALES (NO VISTOS EN CLASES)

CONCLUSIONES

BIBLIOGRAFÍAS

Observaciones:

Presentar en Word

Debe tener el formato de la caratula y del índice

Mínimo 2 paginas por tema

Mínimo 3 conclusiones

En el tema 4, es un ejemplo en java de uso de dos componentes visuales no vistos en clase.

Adjuntar el software

Una vez escrito pulsamos intro y el código se ejecutará de forma directa. Esto en principio nos puede parecer poco útil pero la realidad es que a veces nos puede ayudar a ejecutar pequeños bloques de código y probarlos de una forma muy directa. Si queremos mostrar en una consola el concepto de una compra y el importe de esta. Quizás no nos acordamos de cómo se hacía esta operación con el método printf de Java en System.out. ¿Cómo nos puede ayudar la consola a recordarlo y ejecutar un ejemplo sencillo? Bueno en principio sería suficiente con declarar las variables. Se han declarado las variables correctamente. Usamos el comando /vars y nos muestra las variables existentes a nivel de jshell en estos momentos. Es momento de imprimir esos datos por la consola en un texto formateado. ¿Cómo se llamaba el método de System.out? No hay problema podemos escribir System.out y pulsar tabulador y Java 9 JShell nos mostrará una ayuda con los métodos existentes. Podemos ver cómo nos muestra la lista de métodos que empiezan por print. El que nosotros necesitamos es printf. Pues nada rellenamos el método y las variables se imprimirán sus valores. JShell también nos puede ayudar a mostrar por ejemplo los valores de las variables de entorno algo muchas veces muy útil. Java 9 JShell puede ser una herramienta muy útil en muchas situaciones aportándonos la posibilidad de generar código “sobre la marcha” y ver que es lo que este devuelve.

TEMA 2: JSHELL EN CONSOLA Y EN IDE Consola JShell JShell es una herramienta REPL de Java introducida en JDK 9 (para obtener más información, consulte JEP 222 ). Le permite evaluar de forma interactiva expresiones Java sin la sobrecarga de crear una clase ejecutable, compilar su código, etc. IntelliJ IDEA incluye una consola básica para trabajar con JShell desde dentro del IDE, similar a Groovy Console. Puede usar JShell Console para probar fragmentos de código, que incluso pueden hacer referencia a las clases definidas en su proyecto. Abra la consola JShell. En el menú principal, seleccione Herramientas | Consola JShell. Esto abre la pestaña JShell Console en el editor, donde puede escribir código Java, por ejemplo: String name = "John”; System.out.println ("Hello " + name); Presione Ctrl+Enter para ejecutar este código en JShell. Debería ver el siguiente resultado en la ventana de la herramienta Ejecutar: Defined field String name = "John"System.out.println ("Hello " + name) Hello John Para utilizar JShell Console, debe tener Java 9 o posterior disponible. Puede ejecutar IntelliJ IDEA en un tiempo de ejecución anterior y su proyecto puede usar un JDK anterior, pero debe seleccionar una versión de Java compatible de la lista JRE en la parte superior de la pestaña Consola JShell. O haga clic para especificar la ruta a una versión valida de Java. De forma predeterminada, todas las bibliotecas de las que depende su proyecto están disponibles para JShell Console. Puede utilizar la lista Usar classpath de para seleccionar un módulo específico. ¿Para qué sirve la consola JShell de Java9? Para experimentar con el código principalmente. No tiene como objetivo crear un nuevo lenguaje de programación interpretado: solamente ejecutará código Java (del Java Language Specification – JLS) expresado en «Snippets», que son los comandos que se escriben en el prompt. El objetivo primordial es eliminar el ciclo: crear una clase con el método public static void main -> escribir algo que imprima a consola con System.out.println -> compilar -> ejecutar para ver el resultado. ¿Qué es una consola REPL? Una consola es un programa que se ejecuta en la shell del sistema (modo texto) y que tiene un prompt en el cual escribimos comandos que se encarga de ejecutar. En este caso concreto, jShell, se trata de una consola que sigue el sistema REPL: Read-Eval-Print- Loop. Es decir:  Read: lee lo que introducimos en el prompt de la consola.  Eval: evalúa o ejecuta lo que hemos escrito.  Print: muestra una salida por pantalla como consecuencia de lo evaluado, bien porque el comando implica de forma explícita sacar algo por pantalla o porque la propia consola nos ayuda con más información.  Loop: vuelve al primer estado, a la espera de que el usuario introduzca más comandos para ser leídos, evaluados y mostradas las consecuencias en la pantalla.

Tipos de IDE conocidos Hay varios casos prácticos comerciales y técnicos diferentes para los IDE, lo cual también significa que hay muchas opciones propietarias y open source de estos entornos en el mercado. En general, hay una serie de características importantes que diferencian a los IDE:

 Cantidad de lenguajes compatibles: algunos IDE son compatibles con un solo lenguaje,

así que son mejores para un modelo de programación específico. Por ejemplo, IntelliJ es conocido principalmente como un IDE de Java. Otros IDE admiten una gran variedad de lenguajes de manera conjunta, como el IDE de Eclipse, que es compatible con Java, XML, Python, entre otros.

 Sistemas operativos compatibles: el sistema operativo de un desarrollador determinará

qué tipos de IDE son viables (salvo que el IDE esté en la nube). Además, si la aplicación en desarrollo está destinada a un usuario final con un sistema operativo específico (como Android o iOS), esto condicionará aún más el IDE que se utilizará. Características de la automatización: si bien la mayoría de los IDE incluye tres funciones esenciales (el editor de texto, la automatización de las compilaciones y el depurador), muchos admiten funciones adicionales, como la reestructuración de las aplicaciones, la búsqueda de código y las herramientas de integración e implementación continuas (CI/CD). Impacto en el rendimiento del sistema: si el desarrollador desea ejecutar al mismo tiempo varias aplicaciones que consumen mucha memoria, deberá considerar cuánta requiere el IDE.

 Plugins y extensiones: algunos IDE permiten personalizar los flujos de trabajo, de manera

que se adapten a las necesidades y preferencias del desarrollador. IDE para el desarrollo de aplicaciones móviles La creciente popularidad de las aplicaciones diseñadas para teléfonos inteligentes y tabletas influye en casi todos los sectores, así que muchas empresas deben desarrollar aplicaciones móviles, además de las aplicaciones web tradicionales. Uno de los factores clave en el desarrollo de aplicaciones móviles es la selección de la plataforma. Por ejemplo, si diseña una aplicación nueva para utilizarla en iOS, Android y una página web, será mejor comenzar con un IDE que sea compatible con varias plataformas en diversos sistemas operativos. IDE de nube Los IDE que se ofrecen como software como servicio (SaaS) en la nube brindan varios beneficios exclusivos, en comparación con los entornos de desarrollo locales. Por un lado, al igual que con cualquier oferta de SaaS, no es necesario descargar el sistema de software y configurar dependencias y entornos locales, lo cual permite que los desarrolladores comiencen a contribuir con los proyectos rápidamente. Esto también brinda estandarización en todos los entornos de los miembros del equipo, que permite solucionar el problema típico de que un elemento funcione bien en una computadora y no en otras. Por otro lado, como el entorno de desarrollo se gestiona de forma centralizada, ningún código se aloja en la computadora de un desarrollador en particular, por lo cual se eliminan los problemas relacionados con la seguridad y la propiedad intelectual. El impacto de los procesos en los equipos locales también es diferente. Los procesos como la ejecución de compilaciones y las pruebas de conjunto de aplicaciones suelen consumir muchos recursos informáticos. Por eso es probable que los desarrolladores no puedan

seguir utilizando las estaciones de trabajo mientras se ejecuta un proceso. Un IDE de SaaS puede distribuir las tareas de larga duración sin monopolizar los recursos informáticos de un equipo local. Por lo general, los IDE de nube no dependen de ninguna plataforma, lo cual posibilita su conexión con los diferentes proveedores de nube.

TEMA 3: FUNCIONAMIENTO DEL JVM

Interpretación El método tradicional de implementación de Java es por medio de un intérprete que corresponde a la máquina virtual de Java. Un compilador permite traducir el código fuente en archivos "class" que contienen instrucciones en bytecode (independientes de la máquina). Estos archivos "class" son rcuperados e interpretados por la máquina virtual. Los servicios comunes son ofrecidos en forma de bibliotecas de clases o "so" archivos de bibliotecas compartidos. Las bibliotecas de clases proveen servicios a la JVM y a los programas en byecode, en particular el coporte de lenguaje básico y las funcionalidades extendidas. Una biblioteca de tiempo de ejecución provee el elemento de bajo nivel llamado "Recolección de Desperdicios", el soporte de "hilos" y ejecuta directamente en el hardware de la máquina. La Máquina virtual de Java La Máquina virtual de Java es una máquina de pila. Las instrucciones interpretadas por la máquina virtual manipulan datos almacenados en lo que se llama "slots" de pila. El contenido ejecutable de un archivo de bytecodes contiene un vector de instrucciones bytecode para cada método. Los bytecode son instrucciones para la máquina virtual,las cuales tienen algunos registros de variables locales y una pila usada para evaluación de expresiones. Las primeras variables locales son inicializadas con los parámetros actuales. Cada variable local o "slot de la pila es una palabra que corresponde a un entero de 32 bits, a un punto flotante o a una referencia a objeto (puntero). Para puntos flotantes dobles y enteros largos se utilizan dos slots. Los slots no están relacionados a un tipo, es decir, en algún punto un slot podría contener un valor entero y en otro, el mismo slot podría contener una referencia a objeto. Sin embargo, no se puede almacenar un entero en un slot y luego recuperar esos bts reinterpretándolos como una referencia a objeto. Aún más, en cualquier punto del programa, cada slot tiene un único tipo que puede ser determinado usando un flujo estático de datos. El tipo podría ser "no asignado", con lo cual no se permite leer el valor del slot. Estas restricciones son parte del modelo de seguridad de Java y se ven reforzadas por el verificador de bytecodes. El intérprete lee el flujo de bytecodes y realiza la operación especificada. Lo más simple de la máquina virtual es conocer el intérprete de bytecode. El código interpretado es, generalmente, más lento que un programa escrito en un lenguaje compilado, y Java no es distinto en este aspecto.

TEMA 4: EJEMPLO DE UN FORMULARIO CON DOS COMPONENTES VISUALES _package Presentacion; /**

  • @ author Chino / import java.awt.Graphics; import javax.swing.ImageIcon; public class FondoFormulario extends javax.swing.JPanel { public FondoFormulario(){ this.setSize(395, 493); } @ Override public void paintComponent(Graphics g){ ImageIcon imagenFondo = new ImageIcon(getClass().getResource("/Presentacion/Imagenes/FondoFormulario.png" ) ) ; g.drawImage(imagenFondo.getImage(),0,0,395, 493, null); setOpaque(false); super.paintComponent(g); } }_ //Fin del código import javax.swing.; public class Formulario extends JFrame{ private JLabel label1; public Formulario() { setLayout(null); label1=new JLabel("Hola Mundo."); label1.setBounds(10,20,200,30); add(label1); } public static void main(String[] ar) { Formulario formulario1=new Formulario();

formulario1.setBounds(10,10,400,300); formulario1.setVisible(true); } } CONCLUSIONES Parece que Java está acelerando la máquina para adaptarse a los nuevos tiempos y luchar contra la competencia que suponen los lenguajes de nueva generación, que se aprovechan de ventajas como el disponer de una consola REPL para trabajar. El modo en el que se trabaja con una consola REPL para ciertas tareas de aprendizaje, pruebas y prototipado parece más creativo o directo que tener que hacerlo con un lenguaje compilado y fuertemente tipado como es Java. Con la adopción de un entorno de consola REPL en Java puede que comience una nueva senda en las formas de desarrollar, enriqueciendo no sólo los métodos básicos de aprendizaje para los nuevos programadores, sino que también abre nuevas posibilidades como el uso de Java y sus librerías como sistema de scripting para tareas que hasta ahora se dejaban en mano de lenguajes menos formales. Sea como fuese, es uno de los cambios que vendrán incluidos en Java9, y que promete continuar la senda revolucionaria que comenzó con Java 8. Sólo el tiempo y los programadores dictarán sentencia sobre la utilidad de esta funcionalidad.

BIBLIOGRAFÍAS

https://sites.google.com/a/espe.edu.ec/programacion-ii/home/interfaces-visuales-componentes- swing?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showPrintDialog= https://www-jetbrains-com.translate.goog/help/idea/jshell-console.html? _x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es-419&_x_tr_pto=sc https://www.redhat.com/es/topics/middleware/what-is-ide https://www.adictosaltrabajo.com/2016/03/23/jshell-una-consola-repl-como-novedad-en-java-9/ http://www.baeza.cl/cursos/proyarq/lbastias/funcionamiento.html#jvm https://javadesdecero.es/fundamentos/como-funciona-maquina-virtual/#12_Memoria_JVM https://javadesdecero.es/fundamentos/jshell-herramienta-repl-java-9/ https://www.arquitecturajava.com/java-9-jshell-y-su-uso/