SlideShare una empresa de Scribd logo
1 de 47
Actividad 1: Introducción 
UD – Lenguajes y Herramientas de 
Desarrollo de Software
Introducción 
 El contenido de la siguiente presentación es íntegramente el 
contenido del curso Java Programming Language, Java SE 6 de 
Oracle, con algunos agregados propios de Iberotec. 
 Se utiliza el material oficial de Oracle, por ser Iberotec 
miembro del Oracle Academy.
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Qué es la tecnología Java 
 La tecnología Java es: 
o Un lenguaje de programación. 
o Un entorno de desarrollo. 
o Un entorno de aplicaciones. 
o Un entorno de implantación.
Qué es la tecnología Java 
 La tecnología Java es: 
o Un lenguaje de programación 
La sintaxis del lenguaje Java es similar a la de C++. Es posible 
utilizar Java para crear cualquier tipo de aplicación que pudiera 
crearse con otro lenguaje. 
o Un entorno de desarrollo 
Como entorno de desarrollo, la tecnología Java proporciona 
una amplia variedad de herramientas: un compilador, un 
intérprete, un generador de documentos, una herramienta 
para empaquetar archivos de clases y muchas más.
Qué es la tecnología Java 
 La tecnología Java es: 
o Un entorno de aplicaciones 
 El lenguaje Java suele mencionarse en el contexto de las 
aplicaciones World Wide Web (web) y los navegadores que son 
capaces de ejecutar programas llamados applets 
(miniaplicaciones). Los applets son programas escritos en 
lenguaje Java que residen en los servidores web y que se 
ejecutan a través de un navegador que los descarga en un 
sistema cliente. Suelen ser de pequeño tamaño para reducir el 
tiempo de descarga y la llamada para ejecutarlos se realiza 
desde una página web HTML (Hypertext Markup Language). 
 Las aplicaciones Java son programas autónomos que no 
requieren la presencia de un navegador de web para 
ejecutarse. Normalmente son programas genéricos que se 
ejecutan en cualquier máquina donde se encuentre instalado 
el entorno de ejecución de Java (JRE).
Qué es la tecnología Java 
 La tecnología Java es: 
o Un entorno de implementación 
Existen dos grandes entornos de implementación. 
 El primero es el JRE suministrado a través del kit de 
desarrollo de software (SDK) Java 2, que contiene el juego 
completo de archivos de clases para todos los paquetes Java, 
lo que incluye las clases básicas del lenguaje, las clases de 
componentes de la interfaz gráfica (GUI) y un API avanzado 
de colecciones (Collections) entre otros. 
 El otro entorno de implementación fundamental es el propio 
navegador del usuario. La mayoría de los navegadores 
comercializados proporcionan un intérprete y un entorno de 
ejecución de Java.
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Objetivos fundamentales de la tecnología Java 
 Objetivos fundamentales de la tecnología Java 
o Java proporciona lo siguiente: 
Un lenguaje en el que resulta fácil programar porque: 
Resuelve carencias de otros lenguajes como las relativas a la 
aritmética de punteros y la gestión de la memoria, que afectan a 
la solidez y fiabilidad del código. 
Es orientado a objetos para ayudar a visualizar el programa de 
una forma más cercana a la realidad. 
Permite simplificar el código 
Un lenguaje interpretado (genera código directamente en 
bytes), lo que proporciona las siguientes ventajas: 
Rapidez de desarrollo: reduce el ciclo compilación-enlace-carga-prueba. 
Portabilidad del código: permite escribir código que puede 
ejecutarse en numerosos sistemas operativos sobre cualquier 
JVM certificada.
Objetivos fundamentales de la tecnología Java 
 Objetivos fundamentales de la tecnología Java 
o Java proporciona lo siguiente: 
Una forma de que los programas ejecuten múltiples procesos 
de forma simultánea. 
Una manera de cambiar los programas de forma dinámica 
durante el tiempo de ejecución permitiéndoles descargar 
módulos de código. 
Una forma de garantizar la seguridad mediante la 
comprobación de los módulos de código cargados.
Objetivos fundamentales de la tecnología Java 
 Objetivos fundamentales de la tecnología Java 
o La arquitectura de Java utiliza los siguientes elementos para 
cumplir los objetivos enumerados: 
La JVM (Java Virtual Machine) 
 El reciclaje de memoria 
 El JRE (Java Runtime Environment) 
JVM Tool Interface: interfaz de herramientas de JVM
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Objetivos fundamentales de la tecnología Java 
 Máquina Virtual de Java 
o El documento The Java Virtual Machine Specification define la 
máquina virtual de Java como: 
Una máquina imaginaria que se implementa como una emulación de 
software sobre una máquina real y actúa como puente entre el código 
binario de Java y la plataforma (Sistema Operativo + Procesador). El 
código de la JVM se guarda en archivos .class, cada uno de los cuales 
contiene código de una clase pública como máximo. 
o La especificación de la JVM incluye las especificaciones de las 
plataformas de hardware para las que se compila todo el código de 
Java. Esta especificación es la que permite que el software de Java 
pueda ser independiente de la plataforma, porque la compilación 
se realiza para una máquina genérica conocida como la JVM. Es 
posible emular esta máquina genérica en software para que se 
ejecute en diferentes sistemas informáticos del mercado o 
implementarla en hardware.
Objetivos fundamentales de la tecnología Java 
 Máquina Virtual de Java 
o El compilador lee el código fuente de la aplicación Java y genera 
bytecodes o código de byte. El código de byte son instrucciones de 
código en formato máquina para JVM. Cada intérprete de Java, 
independientemente de que sea una herramienta de desarrollo de 
aplicaciones Java o un navegador de web, tiene una 
implementación de la JVM. 
o La especificación de JVM proporciona definiciones concretas para 
la implementación de los siguientes elementos: un juego de 
instrucciones (equivalente al de una CPU o unidad de 
procesamiento central), un juego de registros, el formato de 
archivo de clases, una pila de tiempo de ejecución, un área de 
almacenamiento y reciclaje de la memoria dinámica, una zona de 
memoria, un mecanismo de comunicación de errores graves y 
funciones de temporización de alta precisión.
Objetivos fundamentales de la tecnología Java 
 Máquina Virtual de Java 
o El formato del código de la máquina virtual consta de códigos de 
byte pequeños y eficientes. Los programas que presenten este 
código deben atenerse a la disciplina de tipos de datos adecuada. 
La mayor parte de la comprobación de tipos se realiza durante la 
compilación. 
o Cualquier intérprete de Java compatible debe ser capaz de ejecutar 
cualquier archivo de clases que cumpla los requisitos de formato 
especificados en el documento The Java Virtual Machine 
Specification para este tipo de archivos. 
o El diseño de JVM permite crear implementaciones para numerosos 
entornos operativos. Por ejemplo, Sun Microsystems proporciona 
implementaciones de JVM para Solaris, Linux y Microsoft 
Windows.
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Objetivos fundamentales de la tecnología Java 
 Reciclaje de memoria dinámica 
o Muchos lenguajes de programación permiten asignar la memoria 
de forma dinámica durante el tiempo de ejecución. El proceso de 
asignación de la memoria varía en función de la sintaxis del 
lenguaje, pero siempre implica devolver un puntero a la dirección 
de inicio de un bloque de memoria. 
o Cuando la memoria asignada deja de ser necesaria (el puntero que 
hace referencia a ella ha abandonado su referente), el programa o 
el entorno de ejecución debería liberarla. 
o En C, C++ y otros lenguajes, el programador es el responsable de 
liberar la memoria. Esto puede ser una tarea complicada en 
ocasiones, porque no siempre se sabe con antelación cuándo debe 
quedar libre. Los programas que no liberan la memoria pueden 
bloquearse en un momento dado porque ya no queda memoria en 
el sistema para asignar. Cuando esto ocurre, se dice que el 
programa pierde memoria.
Objetivos fundamentales de la tecnología Java 
 Reciclaje de memoria dinámica 
o El lenguaje Java descarga al programador de la responsabilidad de 
liberar la memoria. Proporciona un hilo en el nivel del sistema que 
hace el seguimiento de cada asignación de memoria. Durante los 
ciclos de inactividad de la JVM, el mecanismo de reciclaje busca la 
memoria en desuso y la libera. 
o Esta operación se realiza de forma automática mientras dura el 
programa Java, lo que elimina la necesidad de liberar la memoria y, 
con ello, el riesgo de “pérdidas”. No obstante, los modelos de 
reciclaje de la memoria pueden variar considerablemente en cada 
implementación de JVM.
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Objetivos fundamentales de la tecnología Java 
 Entorno de Ejecución de Java 
o En la Figura se ilustra el entorno de ejecución de Java (JRE) y la 
forma en que maneja la seguridad del código.
Objetivos fundamentales de la tecnología Java 
 Entorno de Ejecución de Java 
o Los archivos de código fuente de Java se compilan en el sentido de 
que se convierten en un conjunto de códigos de un byte a partir 
del formato de texto en el que se escriben. Los códigos de byte se 
guardan en archivos .class. 
o Durante el tiempo de ejecución, los códigos de byte que componen 
un programa Java se cargan, comprueban y ejecutan a través de un 
intérprete. En el caso de los applets, es posible descargar los 
códigos de byte para luego interpretarlos a través de la JVM 
integrada en el navegador. El intérprete tiene dos funciones: 
ejecuta dichos códigos y efectúa las llamadas apropiadas al 
hardware de la plataforma.
Objetivos fundamentales de la tecnología Java 
 Entorno de Ejecución de Java 
o En algunos entornos de ejecución de Java, una parte del código de 
byte verificado se compila adaptándolo al código máquina nativo y 
se ejecuta directamente en la plataforma de hardware. Esto 
permite al código del programa Java ejecutarse a velocidades 
próximas a las del lenguaje C o C++ con una pequeña demora en el 
tiempo de carga para permitir que el código se compile en forma 
de código máquina.
Objetivos fundamentales de la tecnología Java 
 Entorno de Ejecución de Java 
Nota: Sun Microsystems ha mejorado la JVM agregando tecnologías que 
aumentan el rendimiento. Una de ellas es la llamada máquina virtual Java 
HotSpot™, con la que es posible conseguir que el lenguaje Java se ejecute a 
la misma velocidad que el código C++ compilado.
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Objetivos fundamentales de la tecnología Java 
 Tareas de JVM 
o En esta sección se examinan en mayor profundidad las tres tareas 
fundamentales de la máquina virtual de Java: 
 Cargar el código: a través del cargador de clases. 
 Verificar el código: a través del verificador de códigos de byte. 
 Ejecutar el código: a través del intérprete de tiempo de ejecución.
Objetivos fundamentales de la tecnología Java 
 Cargador de clases 
o El cargador de clases obtiene todas las clases necesarias para la 
ejecución de un programa. Para mayor seguridad, lo hace 
separando los espacios de nombres de las clases del sistema de 
archivos local y los espacios de nombres procedentes de la red. 
Esto reduce la posibilidad de entrada de troyanos, porque las 
clases locales se cargan primero. 
o Una vez cargadas todas las clases, se determina la distribución de 
la memoria del archivo ejecutable. En este momento, se asignan 
las direcciones concretas de memoria a las referencias simbólicas y 
se crea la tabla de búsqueda. Dado que la distribución de la 
memoria se produce en el momento de la ejecución, el intérprete 
de Java introduce un mecanismo de protección contra accesos no 
autorizados a zonas restringidas del código.
Objetivos fundamentales de la tecnología Java 
 Verificador de los códigos de byte 
o El código del software Java se somete a distintas comprobaciones 
antes de ejecutarse en una máquina. La JVM lo hace pasar a través 
de un verificador de códigos de byte que busca posibles 
fragmentos de código ilícito, es decir, código que falsea punteros, 
infringe los derechos de acceso a los objetos o intenta cambiar los 
tipos de los objetos. 
Nota: Todos los archivos de clases importados desde la red pasan 
por el verificador de códigos.
Objetivos fundamentales de la tecnología Java 
 Proceso de verificación 
o El verificador de códigos efectúa cuatro pasadas sobre el código de 
un programa. De esta forma se garantiza el cumplimiento de las 
especificaciones de la JVM y la integridad del sistema. Si después 
de las cuatro pasadas el verificador no encuentra ningún error, 
significa que: 
 Las clases son conformes con el formato de archivos de clases de la 
especificación de JVM. 
 No se han producido intentos de infringir las reglas de acceso. 
 El código no provoca desbordamiento ni falta de operandos en la pila. 
 Todos los tipos de parámetros de los códigos operativos son correctos. 
 No se han realizado conversiones de datos irregulares tales como la 
conversión de enteros en referencias a objetos.
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Aplicación Java sencilla 
o Como en el caso de cualquier otro lenguaje de 
programación, Java se utiliza para crear aplicaciones. Los 
ejemplos a continuación contienen una aplicación Java 
sencilla creada para enviar un saludo a través de la pantalla. 
// Ejemplo de aplicación de "Saludo“. Clase TestGreeting 
public class TestGreeting { 
public static void main (String[] args) { 
Greeting hello = new Greeting(); 
hello.greet(); 
} 
} 
//Clase Greeting.java 
public class Greeting { 
public void greet() { 
System.out.println("hola"); 
} 
}
Aplicación Java sencilla 
 Cuando se especifica un nombre de clase en un archivo de 
código fuente, al compilar dicho archivo se crea un archivo 
nombreclase.class. 
 Si no se especifica ningún directorio de destino que pueda usar 
el compilador, el archivo de clase se situará en el mismo 
directorio en el que se encuentre el archivo fuente. En este caso, 
el compilador crea un archivo llamado TestGreeting.class. Este 
archivo contiene el código compilado de la clase pública 
TestGreeting.
Aplicación Java sencilla 
 El método main es el punto donde empieza a ejecutarse el 
programa. El intérprete de Java debe encontrar esta sentencia 
exactamente tal y como se muestra o deniega la ejecución. 
 Otros lenguajes de programación, entre los que destacan C y 
C++, también utilizan la declaración main() como punto de 
partida de la ejecución. A continuación se describen las distintas 
partes de esta declaración. Los detalles se explican más adelante 
en este curso. 
 Si el programa recibe argumentos en su línea de comandos, 
éstos se pasan al método main() en un array de String llamado 
args. En este ejemplo no se ha utilizado ningún argumento.
Aplicación Java sencilla 
 A continuación se explica cada elemento del método main: 
o public: al método main() puede acceder cualquier componente de 
Java, incluido el intérprete. 
o static: esta palabra clave indica al compilador que el método 
main() puede utilizarse en el contexto de la clase TestGreeting. No 
se necesita ninguna instancia de la clase para ejecutar métodos 
estáticos. 
o void: esta palabra clave indica que el método main() no devuelve 
ningún valor. Esto es importante porque el lenguaje Java realiza 
una cuidadosa comprobación de tipos para asegurarse de que los 
métodos a los que se ha llamado devuelvan los tipos de datos con 
los que se han declarado.
Aplicación Java sencilla 
o String args[]: este método declara el único parámetro del 
método main, args, y utiliza como tipo un array String. 
Cuando se llama a este método, el parámetro args contiene 
los argumentos introducidos en la línea de comandos detrás 
del nombre de clase, por ejemplo: 
java TestGreeting Hola Mundo 
o La siguiente línea se muestra cómo crear un objeto al que 
hace referencia la variable hello. La sintaxis new Greeting 
indica al intérprete de Java que construya un nuevo objeto 
de la clase Greeting. 
Greeting hello = new Greeting();
Aplicación Java sencilla 
o En la siguiente línea se muestra una llamada a un método de 
un objeto. Esta llamada indica al objeto hello que envíe un 
saludo (greet). La implementación de este método puede 
verse en el archivo Greeting.java 
hello.greet(); 
o La siguiente línea se muestra cómo crear un objeto al que 
hace referencia la variable hello. La sintaxis new Greeting 
indica al intérprete de Java que construya un nuevo objeto 
de la clase Greeting. 
Greeting hello = new Greeting();
Aplicación Java sencilla 
o En las siguientes líneas se muestra la declaración de un 
método. El método se ha declarado public, lo que permite al 
programa TestGreeting acceder a él. No devuelve ningún 
valor, por lo que se utiliza void como tipo de retorno. 
public void greet() { 
System.out.println(“hola”); 
} 
o El método greet envía un mensaje en forma de cadena de 
texto a la salida stándar. El método println() se utiliza para 
escribir dicho mensaje en la salida.
Aplicación Java sencilla 
 Compilación y ejecución del programa TestGreeting 
o Después de crear el archivo de código fuente TestGreeting.java, 
compílelo mediante la línea siguiente: 
javac TestGreeting.java 
o Si el compilador no devuelve ningún mensaje, el nuevo archivo 
TestGreeting.class se almacena en el mismo directorio que el 
archivo fuente, a menos que se especifique otra cosa. El archivo 
Greeting.java se ha compilado en Greeting.class. El compilador 
realiza esta operación automáticamente porque la clase 
TestGreeting utiliza la clase Greeting.
Aplicación Java sencilla 
 Compilación y ejecución del programa TestGreeting 
o Para ejecutar la aplicación TestGreeting, utilice el intérprete de 
Java. Los archivos ejecutables de las herramientas de Java (javac, 
java, javadoc, etc.) están situados en el directorio bin. 
java TestGreeting 
o Nota: Debe definir la variable de entorno PATH de forma que 
encuentre java y javac. Asegúrese de que incluya raíz_java/bin 
(donde raíz_java representa el directorio raíz donde está instalado 
el software de la tecnología Java).
Actividad 1: Introducción 
1. Qué es la tecnología Java 
2. Objetivos fundamentales de la tecnología Java 
o Máquina virtual de Java. 
o Reciclaje de memoria dinámica. 
o Entorno de ejecución de Java. 
o Tareas de JVM™ 
3. Aplicación Java sencilla 
o Solución de errores de compilación
Aplicación Java sencilla 
 Solución de errores de compilación 
o En las próximas secciones se describen los errores que pueden 
aparecer al compilar el código de los programas. 
o Errores producidos durante la compilación 
A continuación se citan algunos errores que suelen producirse 
durante la compilación, junto con ejemplos de los mensajes 
presentados por el compilador o por el programa en ejecución. 
Los mensajes pueden variar en función de la versión de Java 2 
SDK que esté utilizando.
Aplicación Java sencilla 
 Solución de errores de compilación 
javac: Command not found 
o La variable PATH no se ha configurado adecuadamente para 
incluir el compilador javac. El compilador javac está situado 
en el directorio bin, debajo del directorio donde se 
encuentra instalado el software del JDK™ (Java Development 
Kit).
Aplicación Java sencilla 
 Solución de errores de compilación 
Greeting.java:4:cannot resolve symbol 
symbol : method printl (java.lang.String) 
location: class java.io.PrintStream 
System.out.printl("hola"); 
^ 
o El nombre del método println se ha escrito de forma 
incorrecta.
Aplicación Java sencilla 
 Solución de errores de compilación 
Nombres de clases y archivos 
o Si el archivo .java contiene una clase pública, el nombre del 
archivo debe ser igual que el nombre de la clase. Por 
ejemplo, la definición de la clase en el ejemplo anterior es: 
public class TestGreeting 
o Por tanto, el nombre del archivo fuente debe ser 
TestGreeting.java. Si ha denominado al archivo 
TestGreet.java, recibirá el siguiente mensaje de error: 
TestGreet.java:4: Public class TestGreeting must be 
defined in a file called "TestGreeting.java".
Aplicación Java sencilla 
 Solución de errores de compilación 
Cantidad de clases utilizadas 
o Sólo debe declarar una clase no estática de nivel superior en cada 
archivo fuente y el nombre de la clase debe ser idéntico al del 
archivo. Si declara varias clases públicas, aparecerá el mismo 
mensaje que en el punto anterior por cada clase pública cuyo 
nombre no sea idéntico al del archivo.
Aplicación Java sencilla 
 Errores producidos durante la ejecución 
Can't find class TestGreeting 
o Normalmente esto significa que el nombre especificado para la 
clase en la línea de comandos difiere del nombre del archivo 
nombrearchivo.class . En el lenguaje Java, existe diferencia entre 
mayúsculas y minúsculas. 
Por ejemplo: 
public class TestGreet { 
crea una clase TestGreet.class, que no tiene el nombre esperado por el 
compilador (TestGreeting.class).
Aplicación Java sencilla 
 Errores producidos durante la ejecución 
Exception in thread "main" java.lang.NoSuchMethodError: main 
o . 
o Esto significa que la clase que se ha pedido al intérprete que 
ejecute no tiene ningún método main estático. Puede que haya un 
método main, pero es posible que no se haya declarado con la 
clave estática o puede que se haya declarado con parámetros 
inadecuados, por ejemplo: 
o En este ejemplo, args no es un array de cadenas, sino una sola 
cadena. 
o En este ejemplo, el programador ha olvidado incluir una lista de 
parámetros. 
public static void main(String args) { 
public static void main() {
Aplicación Java sencilla 
 Errores producidos durante la ejecución 
o En la Figura puede verse el proceso de compilación de Java y 
su posterior ejecución en la JVM. Existen muchas 
implementaciones de la JVM según las distintas plataformas 
de hardware y sistemas operativos.

Más contenido relacionado

La actualidad más candente

Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Valerii Kravchuk
 
API Platform: A Framework for API-driven Projects
API Platform: A Framework for API-driven ProjectsAPI Platform: A Framework for API-driven Projects
API Platform: A Framework for API-driven ProjectsLes-Tilleuls.coop
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorZabbix BR
 
Crud tutorial en
Crud tutorial enCrud tutorial en
Crud tutorial enforkgrown
 
Domain driven design
Domain driven designDomain driven design
Domain driven designtatyaso
 
Spring Framework Petclinic sample application
Spring Framework Petclinic sample applicationSpring Framework Petclinic sample application
Spring Framework Petclinic sample applicationAntoine Rey
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
java,conceptos basicos
java,conceptos basicosjava,conceptos basicos
java,conceptos basicosMariano Galvez
 
Collections - Maps
Collections - Maps Collections - Maps
Collections - Maps Hitesh-Java
 
Microservices Security
Microservices SecurityMicroservices Security
Microservices SecurityAditi Anand
 
SQL Server效能調校
SQL Server效能調校SQL Server效能調校
SQL Server效能調校國昭 張
 

La actualidad más candente (20)

Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)
 
Java NIO.2
Java NIO.2Java NIO.2
Java NIO.2
 
Spring boot
Spring bootSpring boot
Spring boot
 
API Platform: A Framework for API-driven Projects
API Platform: A Framework for API-driven ProjectsAPI Platform: A Framework for API-driven Projects
API Platform: A Framework for API-driven Projects
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 
OOP java
OOP javaOOP java
OOP java
 
Java Class Loader
Java Class LoaderJava Class Loader
Java Class Loader
 
Crud tutorial en
Crud tutorial enCrud tutorial en
Crud tutorial en
 
Arrays in Java
Arrays in Java Arrays in Java
Arrays in Java
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Spring Framework Petclinic sample application
Spring Framework Petclinic sample applicationSpring Framework Petclinic sample application
Spring Framework Petclinic sample application
 
JDK,JRE,JVM
JDK,JRE,JVMJDK,JRE,JVM
JDK,JRE,JVM
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
java,conceptos basicos
java,conceptos basicosjava,conceptos basicos
java,conceptos basicos
 
Collections - Maps
Collections - Maps Collections - Maps
Collections - Maps
 
Microservices Security
Microservices SecurityMicroservices Security
Microservices Security
 
SQL Server效能調校
SQL Server效能調校SQL Server效能調校
SQL Server效能調校
 

Destacado (20)

Introducción a la economía
Introducción a la economíaIntroducción a la economía
Introducción a la economía
 
Tecnologias Emergentes
Tecnologias EmergentesTecnologias Emergentes
Tecnologias Emergentes
 
El mercado]
El mercado]El mercado]
El mercado]
 
Herramientas tecnológicas
Herramientas tecnológicasHerramientas tecnológicas
Herramientas tecnológicas
 
Tema 5
Tema 5Tema 5
Tema 5
 
Energia eolica 1
Energia eolica 1Energia eolica 1
Energia eolica 1
 
Plantas de energía eólica
Plantas de energía eólicaPlantas de energía eólica
Plantas de energía eólica
 
AREAS NATURALES Y RECURSO NATURALES- LA LIBERTAD
AREAS NATURALES Y RECURSO NATURALES- LA LIBERTAD AREAS NATURALES Y RECURSO NATURALES- LA LIBERTAD
AREAS NATURALES Y RECURSO NATURALES- LA LIBERTAD
 
Fiscalizacion ambiental - sector hidrocarburos - 2
Fiscalizacion ambiental - sector hidrocarburos - 2Fiscalizacion ambiental - sector hidrocarburos - 2
Fiscalizacion ambiental - sector hidrocarburos - 2
 
Energia
EnergiaEnergia
Energia
 
Culturas preincaicas del peru
Culturas preincaicas del peruCulturas preincaicas del peru
Culturas preincaicas del peru
 
PRINCIPIO DEL BIEN COMUN
PRINCIPIO DEL BIEN COMUNPRINCIPIO DEL BIEN COMUN
PRINCIPIO DEL BIEN COMUN
 
Cultura chancay
Cultura chancayCultura chancay
Cultura chancay
 
Cultura chancay
Cultura chancayCultura chancay
Cultura chancay
 
Exposición cultura moche
Exposición cultura  mocheExposición cultura  moche
Exposición cultura moche
 
Civilizaciones (mesoamericanas y andinas) ce cy!!!
Civilizaciones (mesoamericanas y andinas) ce cy!!!Civilizaciones (mesoamericanas y andinas) ce cy!!!
Civilizaciones (mesoamericanas y andinas) ce cy!!!
 
El bien comun
El bien comunEl bien comun
El bien comun
 
ppt Energía Eólica
ppt Energía Eólicappt Energía Eólica
ppt Energía Eólica
 
Culturas pre incas
Culturas pre incasCulturas pre incas
Culturas pre incas
 
Culturas Preincas Peruanas
Culturas Preincas PeruanasCulturas Preincas Peruanas
Culturas Preincas Peruanas
 

Similar a Introduccion Java (20)

Ut
UtUt
Ut
 
Instituto Cristiano Encuentro
Instituto Cristiano EncuentroInstituto Cristiano Encuentro
Instituto Cristiano Encuentro
 
JAVA
JAVAJAVA
JAVA
 
Aprendiendo Java SCF
Aprendiendo Java SCFAprendiendo Java SCF
Aprendiendo Java SCF
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Clase2
Clase2Clase2
Clase2
 
JAVA
JAVAJAVA
JAVA
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Java basico
Java basicoJava basico
Java basico
 
Java basico
Java basicoJava basico
Java basico
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Trabajo de java
Trabajo de javaTrabajo de java
Trabajo de java
 
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Java
JavaJava
Java
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 

Último

Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 

Último (20)

Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 

Introduccion Java

  • 1. Actividad 1: Introducción UD – Lenguajes y Herramientas de Desarrollo de Software
  • 2. Introducción  El contenido de la siguiente presentación es íntegramente el contenido del curso Java Programming Language, Java SE 6 de Oracle, con algunos agregados propios de Iberotec.  Se utiliza el material oficial de Oracle, por ser Iberotec miembro del Oracle Academy.
  • 3. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 4. Qué es la tecnología Java  La tecnología Java es: o Un lenguaje de programación. o Un entorno de desarrollo. o Un entorno de aplicaciones. o Un entorno de implantación.
  • 5. Qué es la tecnología Java  La tecnología Java es: o Un lenguaje de programación La sintaxis del lenguaje Java es similar a la de C++. Es posible utilizar Java para crear cualquier tipo de aplicación que pudiera crearse con otro lenguaje. o Un entorno de desarrollo Como entorno de desarrollo, la tecnología Java proporciona una amplia variedad de herramientas: un compilador, un intérprete, un generador de documentos, una herramienta para empaquetar archivos de clases y muchas más.
  • 6. Qué es la tecnología Java  La tecnología Java es: o Un entorno de aplicaciones  El lenguaje Java suele mencionarse en el contexto de las aplicaciones World Wide Web (web) y los navegadores que son capaces de ejecutar programas llamados applets (miniaplicaciones). Los applets son programas escritos en lenguaje Java que residen en los servidores web y que se ejecutan a través de un navegador que los descarga en un sistema cliente. Suelen ser de pequeño tamaño para reducir el tiempo de descarga y la llamada para ejecutarlos se realiza desde una página web HTML (Hypertext Markup Language).  Las aplicaciones Java son programas autónomos que no requieren la presencia de un navegador de web para ejecutarse. Normalmente son programas genéricos que se ejecutan en cualquier máquina donde se encuentre instalado el entorno de ejecución de Java (JRE).
  • 7. Qué es la tecnología Java  La tecnología Java es: o Un entorno de implementación Existen dos grandes entornos de implementación.  El primero es el JRE suministrado a través del kit de desarrollo de software (SDK) Java 2, que contiene el juego completo de archivos de clases para todos los paquetes Java, lo que incluye las clases básicas del lenguaje, las clases de componentes de la interfaz gráfica (GUI) y un API avanzado de colecciones (Collections) entre otros.  El otro entorno de implementación fundamental es el propio navegador del usuario. La mayoría de los navegadores comercializados proporcionan un intérprete y un entorno de ejecución de Java.
  • 8. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 9. Objetivos fundamentales de la tecnología Java  Objetivos fundamentales de la tecnología Java o Java proporciona lo siguiente: Un lenguaje en el que resulta fácil programar porque: Resuelve carencias de otros lenguajes como las relativas a la aritmética de punteros y la gestión de la memoria, que afectan a la solidez y fiabilidad del código. Es orientado a objetos para ayudar a visualizar el programa de una forma más cercana a la realidad. Permite simplificar el código Un lenguaje interpretado (genera código directamente en bytes), lo que proporciona las siguientes ventajas: Rapidez de desarrollo: reduce el ciclo compilación-enlace-carga-prueba. Portabilidad del código: permite escribir código que puede ejecutarse en numerosos sistemas operativos sobre cualquier JVM certificada.
  • 10. Objetivos fundamentales de la tecnología Java  Objetivos fundamentales de la tecnología Java o Java proporciona lo siguiente: Una forma de que los programas ejecuten múltiples procesos de forma simultánea. Una manera de cambiar los programas de forma dinámica durante el tiempo de ejecución permitiéndoles descargar módulos de código. Una forma de garantizar la seguridad mediante la comprobación de los módulos de código cargados.
  • 11. Objetivos fundamentales de la tecnología Java  Objetivos fundamentales de la tecnología Java o La arquitectura de Java utiliza los siguientes elementos para cumplir los objetivos enumerados: La JVM (Java Virtual Machine)  El reciclaje de memoria  El JRE (Java Runtime Environment) JVM Tool Interface: interfaz de herramientas de JVM
  • 12. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 13. Objetivos fundamentales de la tecnología Java  Máquina Virtual de Java o El documento The Java Virtual Machine Specification define la máquina virtual de Java como: Una máquina imaginaria que se implementa como una emulación de software sobre una máquina real y actúa como puente entre el código binario de Java y la plataforma (Sistema Operativo + Procesador). El código de la JVM se guarda en archivos .class, cada uno de los cuales contiene código de una clase pública como máximo. o La especificación de la JVM incluye las especificaciones de las plataformas de hardware para las que se compila todo el código de Java. Esta especificación es la que permite que el software de Java pueda ser independiente de la plataforma, porque la compilación se realiza para una máquina genérica conocida como la JVM. Es posible emular esta máquina genérica en software para que se ejecute en diferentes sistemas informáticos del mercado o implementarla en hardware.
  • 14. Objetivos fundamentales de la tecnología Java  Máquina Virtual de Java o El compilador lee el código fuente de la aplicación Java y genera bytecodes o código de byte. El código de byte son instrucciones de código en formato máquina para JVM. Cada intérprete de Java, independientemente de que sea una herramienta de desarrollo de aplicaciones Java o un navegador de web, tiene una implementación de la JVM. o La especificación de JVM proporciona definiciones concretas para la implementación de los siguientes elementos: un juego de instrucciones (equivalente al de una CPU o unidad de procesamiento central), un juego de registros, el formato de archivo de clases, una pila de tiempo de ejecución, un área de almacenamiento y reciclaje de la memoria dinámica, una zona de memoria, un mecanismo de comunicación de errores graves y funciones de temporización de alta precisión.
  • 15. Objetivos fundamentales de la tecnología Java  Máquina Virtual de Java o El formato del código de la máquina virtual consta de códigos de byte pequeños y eficientes. Los programas que presenten este código deben atenerse a la disciplina de tipos de datos adecuada. La mayor parte de la comprobación de tipos se realiza durante la compilación. o Cualquier intérprete de Java compatible debe ser capaz de ejecutar cualquier archivo de clases que cumpla los requisitos de formato especificados en el documento The Java Virtual Machine Specification para este tipo de archivos. o El diseño de JVM permite crear implementaciones para numerosos entornos operativos. Por ejemplo, Sun Microsystems proporciona implementaciones de JVM para Solaris, Linux y Microsoft Windows.
  • 16. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 17. Objetivos fundamentales de la tecnología Java  Reciclaje de memoria dinámica o Muchos lenguajes de programación permiten asignar la memoria de forma dinámica durante el tiempo de ejecución. El proceso de asignación de la memoria varía en función de la sintaxis del lenguaje, pero siempre implica devolver un puntero a la dirección de inicio de un bloque de memoria. o Cuando la memoria asignada deja de ser necesaria (el puntero que hace referencia a ella ha abandonado su referente), el programa o el entorno de ejecución debería liberarla. o En C, C++ y otros lenguajes, el programador es el responsable de liberar la memoria. Esto puede ser una tarea complicada en ocasiones, porque no siempre se sabe con antelación cuándo debe quedar libre. Los programas que no liberan la memoria pueden bloquearse en un momento dado porque ya no queda memoria en el sistema para asignar. Cuando esto ocurre, se dice que el programa pierde memoria.
  • 18. Objetivos fundamentales de la tecnología Java  Reciclaje de memoria dinámica o El lenguaje Java descarga al programador de la responsabilidad de liberar la memoria. Proporciona un hilo en el nivel del sistema que hace el seguimiento de cada asignación de memoria. Durante los ciclos de inactividad de la JVM, el mecanismo de reciclaje busca la memoria en desuso y la libera. o Esta operación se realiza de forma automática mientras dura el programa Java, lo que elimina la necesidad de liberar la memoria y, con ello, el riesgo de “pérdidas”. No obstante, los modelos de reciclaje de la memoria pueden variar considerablemente en cada implementación de JVM.
  • 19. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 20. Objetivos fundamentales de la tecnología Java  Entorno de Ejecución de Java o En la Figura se ilustra el entorno de ejecución de Java (JRE) y la forma en que maneja la seguridad del código.
  • 21. Objetivos fundamentales de la tecnología Java  Entorno de Ejecución de Java o Los archivos de código fuente de Java se compilan en el sentido de que se convierten en un conjunto de códigos de un byte a partir del formato de texto en el que se escriben. Los códigos de byte se guardan en archivos .class. o Durante el tiempo de ejecución, los códigos de byte que componen un programa Java se cargan, comprueban y ejecutan a través de un intérprete. En el caso de los applets, es posible descargar los códigos de byte para luego interpretarlos a través de la JVM integrada en el navegador. El intérprete tiene dos funciones: ejecuta dichos códigos y efectúa las llamadas apropiadas al hardware de la plataforma.
  • 22. Objetivos fundamentales de la tecnología Java  Entorno de Ejecución de Java o En algunos entornos de ejecución de Java, una parte del código de byte verificado se compila adaptándolo al código máquina nativo y se ejecuta directamente en la plataforma de hardware. Esto permite al código del programa Java ejecutarse a velocidades próximas a las del lenguaje C o C++ con una pequeña demora en el tiempo de carga para permitir que el código se compile en forma de código máquina.
  • 23. Objetivos fundamentales de la tecnología Java  Entorno de Ejecución de Java Nota: Sun Microsystems ha mejorado la JVM agregando tecnologías que aumentan el rendimiento. Una de ellas es la llamada máquina virtual Java HotSpot™, con la que es posible conseguir que el lenguaje Java se ejecute a la misma velocidad que el código C++ compilado.
  • 24. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 25. Objetivos fundamentales de la tecnología Java  Tareas de JVM o En esta sección se examinan en mayor profundidad las tres tareas fundamentales de la máquina virtual de Java:  Cargar el código: a través del cargador de clases.  Verificar el código: a través del verificador de códigos de byte.  Ejecutar el código: a través del intérprete de tiempo de ejecución.
  • 26. Objetivos fundamentales de la tecnología Java  Cargador de clases o El cargador de clases obtiene todas las clases necesarias para la ejecución de un programa. Para mayor seguridad, lo hace separando los espacios de nombres de las clases del sistema de archivos local y los espacios de nombres procedentes de la red. Esto reduce la posibilidad de entrada de troyanos, porque las clases locales se cargan primero. o Una vez cargadas todas las clases, se determina la distribución de la memoria del archivo ejecutable. En este momento, se asignan las direcciones concretas de memoria a las referencias simbólicas y se crea la tabla de búsqueda. Dado que la distribución de la memoria se produce en el momento de la ejecución, el intérprete de Java introduce un mecanismo de protección contra accesos no autorizados a zonas restringidas del código.
  • 27. Objetivos fundamentales de la tecnología Java  Verificador de los códigos de byte o El código del software Java se somete a distintas comprobaciones antes de ejecutarse en una máquina. La JVM lo hace pasar a través de un verificador de códigos de byte que busca posibles fragmentos de código ilícito, es decir, código que falsea punteros, infringe los derechos de acceso a los objetos o intenta cambiar los tipos de los objetos. Nota: Todos los archivos de clases importados desde la red pasan por el verificador de códigos.
  • 28. Objetivos fundamentales de la tecnología Java  Proceso de verificación o El verificador de códigos efectúa cuatro pasadas sobre el código de un programa. De esta forma se garantiza el cumplimiento de las especificaciones de la JVM y la integridad del sistema. Si después de las cuatro pasadas el verificador no encuentra ningún error, significa que:  Las clases son conformes con el formato de archivos de clases de la especificación de JVM.  No se han producido intentos de infringir las reglas de acceso.  El código no provoca desbordamiento ni falta de operandos en la pila.  Todos los tipos de parámetros de los códigos operativos son correctos.  No se han realizado conversiones de datos irregulares tales como la conversión de enteros en referencias a objetos.
  • 29. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 30. Aplicación Java sencilla o Como en el caso de cualquier otro lenguaje de programación, Java se utiliza para crear aplicaciones. Los ejemplos a continuación contienen una aplicación Java sencilla creada para enviar un saludo a través de la pantalla. // Ejemplo de aplicación de "Saludo“. Clase TestGreeting public class TestGreeting { public static void main (String[] args) { Greeting hello = new Greeting(); hello.greet(); } } //Clase Greeting.java public class Greeting { public void greet() { System.out.println("hola"); } }
  • 31. Aplicación Java sencilla  Cuando se especifica un nombre de clase en un archivo de código fuente, al compilar dicho archivo se crea un archivo nombreclase.class.  Si no se especifica ningún directorio de destino que pueda usar el compilador, el archivo de clase se situará en el mismo directorio en el que se encuentre el archivo fuente. En este caso, el compilador crea un archivo llamado TestGreeting.class. Este archivo contiene el código compilado de la clase pública TestGreeting.
  • 32. Aplicación Java sencilla  El método main es el punto donde empieza a ejecutarse el programa. El intérprete de Java debe encontrar esta sentencia exactamente tal y como se muestra o deniega la ejecución.  Otros lenguajes de programación, entre los que destacan C y C++, también utilizan la declaración main() como punto de partida de la ejecución. A continuación se describen las distintas partes de esta declaración. Los detalles se explican más adelante en este curso.  Si el programa recibe argumentos en su línea de comandos, éstos se pasan al método main() en un array de String llamado args. En este ejemplo no se ha utilizado ningún argumento.
  • 33. Aplicación Java sencilla  A continuación se explica cada elemento del método main: o public: al método main() puede acceder cualquier componente de Java, incluido el intérprete. o static: esta palabra clave indica al compilador que el método main() puede utilizarse en el contexto de la clase TestGreeting. No se necesita ninguna instancia de la clase para ejecutar métodos estáticos. o void: esta palabra clave indica que el método main() no devuelve ningún valor. Esto es importante porque el lenguaje Java realiza una cuidadosa comprobación de tipos para asegurarse de que los métodos a los que se ha llamado devuelvan los tipos de datos con los que se han declarado.
  • 34. Aplicación Java sencilla o String args[]: este método declara el único parámetro del método main, args, y utiliza como tipo un array String. Cuando se llama a este método, el parámetro args contiene los argumentos introducidos en la línea de comandos detrás del nombre de clase, por ejemplo: java TestGreeting Hola Mundo o La siguiente línea se muestra cómo crear un objeto al que hace referencia la variable hello. La sintaxis new Greeting indica al intérprete de Java que construya un nuevo objeto de la clase Greeting. Greeting hello = new Greeting();
  • 35. Aplicación Java sencilla o En la siguiente línea se muestra una llamada a un método de un objeto. Esta llamada indica al objeto hello que envíe un saludo (greet). La implementación de este método puede verse en el archivo Greeting.java hello.greet(); o La siguiente línea se muestra cómo crear un objeto al que hace referencia la variable hello. La sintaxis new Greeting indica al intérprete de Java que construya un nuevo objeto de la clase Greeting. Greeting hello = new Greeting();
  • 36. Aplicación Java sencilla o En las siguientes líneas se muestra la declaración de un método. El método se ha declarado public, lo que permite al programa TestGreeting acceder a él. No devuelve ningún valor, por lo que se utiliza void como tipo de retorno. public void greet() { System.out.println(“hola”); } o El método greet envía un mensaje en forma de cadena de texto a la salida stándar. El método println() se utiliza para escribir dicho mensaje en la salida.
  • 37. Aplicación Java sencilla  Compilación y ejecución del programa TestGreeting o Después de crear el archivo de código fuente TestGreeting.java, compílelo mediante la línea siguiente: javac TestGreeting.java o Si el compilador no devuelve ningún mensaje, el nuevo archivo TestGreeting.class se almacena en el mismo directorio que el archivo fuente, a menos que se especifique otra cosa. El archivo Greeting.java se ha compilado en Greeting.class. El compilador realiza esta operación automáticamente porque la clase TestGreeting utiliza la clase Greeting.
  • 38. Aplicación Java sencilla  Compilación y ejecución del programa TestGreeting o Para ejecutar la aplicación TestGreeting, utilice el intérprete de Java. Los archivos ejecutables de las herramientas de Java (javac, java, javadoc, etc.) están situados en el directorio bin. java TestGreeting o Nota: Debe definir la variable de entorno PATH de forma que encuentre java y javac. Asegúrese de que incluya raíz_java/bin (donde raíz_java representa el directorio raíz donde está instalado el software de la tecnología Java).
  • 39. Actividad 1: Introducción 1. Qué es la tecnología Java 2. Objetivos fundamentales de la tecnología Java o Máquina virtual de Java. o Reciclaje de memoria dinámica. o Entorno de ejecución de Java. o Tareas de JVM™ 3. Aplicación Java sencilla o Solución de errores de compilación
  • 40. Aplicación Java sencilla  Solución de errores de compilación o En las próximas secciones se describen los errores que pueden aparecer al compilar el código de los programas. o Errores producidos durante la compilación A continuación se citan algunos errores que suelen producirse durante la compilación, junto con ejemplos de los mensajes presentados por el compilador o por el programa en ejecución. Los mensajes pueden variar en función de la versión de Java 2 SDK que esté utilizando.
  • 41. Aplicación Java sencilla  Solución de errores de compilación javac: Command not found o La variable PATH no se ha configurado adecuadamente para incluir el compilador javac. El compilador javac está situado en el directorio bin, debajo del directorio donde se encuentra instalado el software del JDK™ (Java Development Kit).
  • 42. Aplicación Java sencilla  Solución de errores de compilación Greeting.java:4:cannot resolve symbol symbol : method printl (java.lang.String) location: class java.io.PrintStream System.out.printl("hola"); ^ o El nombre del método println se ha escrito de forma incorrecta.
  • 43. Aplicación Java sencilla  Solución de errores de compilación Nombres de clases y archivos o Si el archivo .java contiene una clase pública, el nombre del archivo debe ser igual que el nombre de la clase. Por ejemplo, la definición de la clase en el ejemplo anterior es: public class TestGreeting o Por tanto, el nombre del archivo fuente debe ser TestGreeting.java. Si ha denominado al archivo TestGreet.java, recibirá el siguiente mensaje de error: TestGreet.java:4: Public class TestGreeting must be defined in a file called "TestGreeting.java".
  • 44. Aplicación Java sencilla  Solución de errores de compilación Cantidad de clases utilizadas o Sólo debe declarar una clase no estática de nivel superior en cada archivo fuente y el nombre de la clase debe ser idéntico al del archivo. Si declara varias clases públicas, aparecerá el mismo mensaje que en el punto anterior por cada clase pública cuyo nombre no sea idéntico al del archivo.
  • 45. Aplicación Java sencilla  Errores producidos durante la ejecución Can't find class TestGreeting o Normalmente esto significa que el nombre especificado para la clase en la línea de comandos difiere del nombre del archivo nombrearchivo.class . En el lenguaje Java, existe diferencia entre mayúsculas y minúsculas. Por ejemplo: public class TestGreet { crea una clase TestGreet.class, que no tiene el nombre esperado por el compilador (TestGreeting.class).
  • 46. Aplicación Java sencilla  Errores producidos durante la ejecución Exception in thread "main" java.lang.NoSuchMethodError: main o . o Esto significa que la clase que se ha pedido al intérprete que ejecute no tiene ningún método main estático. Puede que haya un método main, pero es posible que no se haya declarado con la clave estática o puede que se haya declarado con parámetros inadecuados, por ejemplo: o En este ejemplo, args no es un array de cadenas, sino una sola cadena. o En este ejemplo, el programador ha olvidado incluir una lista de parámetros. public static void main(String args) { public static void main() {
  • 47. Aplicación Java sencilla  Errores producidos durante la ejecución o En la Figura puede verse el proceso de compilación de Java y su posterior ejecución en la JVM. Existen muchas implementaciones de la JVM según las distintas plataformas de hardware y sistemas operativos.