Es un lenguaje interpretado, es decir no es el SO el que ejecuta los programas Java sino una máquina virtual conocida como JVM (Java Virtual Machine).
Desarrollado por Sun Microsystems
2 Arquitectura de Java Hardware Sistema Operacional API Java Extensiones Programas Java Java Virtual Machine (JVM) Tomado de las clases de Simena Dinas
3 ¿ Cómo comienza la vida de un programa Java ? Código Fuente (Archivo.java) Archivo compilado Bytecode (Archivo.class) Compilador (javac) JVM (java) Programa en ejecución
4 ¿ Qué es el bytecode ? Es el tipo equivalente a un archivo .o en C++
Cuando el javac compila un archivo de código fuente “Numeros.java” genera un archivo bytecode “Números.class” que corresponde a una versión del archivo .java que la JVM puede entender
La utilidad de este proceso (en vez de la generación de un ejecutable) radica en la portabilidad del bytecode, ya que este archivo puede ejecutarse en cualquier SO que tenga una implementación de la JVM
5 Ventajas y Desventajas Retira parte de la responsabilidad sobre punteros (ventajas? desventajas?)
Multiplataforma gracias a que es interpretado por la JVM (ventajas? desventajas?)
Facilidad de uso
Velocidad y uso de recursos (principales desventajas)
Paso por parámetro, por valor ?
Java API
6 Punteros en C++ y Java En C++ el usuario puede crear punteros a objetos u objetos, en Java, solo lo primero es posible (se les denomina referencias)
En C++ la responsabilidad de liberar un puntero es del usuario, mientras en Java la JVM se encarga de esto a través de un proceso llamado “Garbage Collection”
7 Ventajas y desventajas de los lenguajes Interpretados Java, PHP, Scheme, Perl, entre otros, son lenguajes interpretados, es decir, no es el SO quien ejecuta el programa sino una máquina virtual (otro programa) que está siendo ejecutado por el SO
Problemas de desempeño (gran problema)
Mayor posibilidad de robo de código
Multiplataforma (mayor ventaja), aunque esto depende solo aplica para las plataformas que tienen una implementación de la JVM (gran ventaja)
8 Facilidad De Uso De Java Gracias a que en Java un programador puede concentrarse más en lo que debe hacer su programa, y no tanto en el manejo de punteros y otros asuntos de bajo nivel (Java API)
Una extensa librería de clases que permiten hacer casi todo lo que se puede en C++ (Java API)
El código fuente queda menos plagado de pormenores que en C++
9 Ventajas De Java Sobre C++ Gracias al API de Java los programadores reescriben menos código, los programas son más estandarizados en cuanto a métodos que utilizan
El Garbage Collector despreocupa al programador sobre el desperdicio de memoria (en parte)
Independiente de la plataforma
10 Desventajas de Java contra C++ Los programas en C++ se ejecutan más rápidamente
Mayor eficiencia en consumo de recursos
La capacidad de crear objetos reales en C++ es útil cuando se requiere velocidad extra.
Incapacidad de pasar objetos por valor (imitado por métodos de clonación)
Carencia de herencia múltiple, imitado por la herencia múltiple de interfases en Java, aunque no totalmente.
Página siguiente |