Detalle de las ventajas de Java.
1° Orientado a Objetos
- Una de las principales de las características de java es la de crear "Objetos", fragmento de código autónomo que puede cominucarse con otros objetos para resolver un problema.
- De hecho, a excepción de los tipos primitivos de datos, todo lo demás son objetos.
- La Programación orientada a objetos se diferencia de la programación lineal por que esta última sigue una secuencia de pasos para resolver un problema mientras que la POO se centra en la creacion de objetos que interactua para resolver el problema
- Una ventaja de la creación de objetos nace al programar, por ejemplo "una pizza", al intentar hacer una segunda pizza o más sería necesario volver a repetir las características de la misma, en cambio en la POO al crear una "Clase pizza" solo se necesitaría crear el 1° objeto y luego un 2°, y así sucesivamente.
package com.blogspot.dar10comyr; public class Pizza { private String sabor; public Pizza(String sabor) { this.setSabor(sabor); } public String getSabor() { return this.sabor; } public void setSabor(String sabor) { this.sabor = sabor; } public void preparacion() { System.out.println("La pizza " + getSabor() + " se ha cocinado"); } public static void main(String[] args) { Pizza casera = new Pizza("Napolitana"); casera.preparacion(); Pizza casera2 = new Pizza("Jamón y queso"); casera2.Preparacion(); } }
- Para crear una segunda pizza en la Programación lineal de ante mano doblamos las proporciones, pero si solo hicieramos una y terminar de comerla nos quedamos con hambre habría que repetir los mismo pasos tantas veces como pizzas queramos
- En la POO para crear una segunda pizza bastara con:
Pizza casera2 = new Pizza("Salchipapas"); casera2.Preparacion();
2° Distribuido
Java es un lenguaje distribuido por que de lugar a trabajar con tecnologías de redes distribuidas:
URL
(Universal Resource Locator) - Localizador de Recursos Uniforme Buscar URL en googleFTP
(File Transfer Protocol) - Protocolo de Transferencia de Archivos Buscar FTP en googleHTTP
(Hypertext Transfer Protocol) - Protocolo de transferencia de hipertexto Buscar HTTP en googleUDP
(User Datagram Protocol) - Protocolo de datagrama de usuario Buscar UDP en googleCORBA
(Common Object Request Broker Architecture) - Corredor Arquitectura de Solicitud de Objeto Común Buscar CORBA en googleRMI
(Remote Method Invocation) - Método de Invocación Remota Buscar RMI en google
3° Simple
- Se dice que es "simple" de aprender porque fue diseñado basado en lenguajes como C o C++ pero suprimiendo las construcciones más difíciles que generalmente son mal utilizadas o provocaban errores de manera reiterada.
- No se permite utilizar directamente los punteros de memoria
- Además utiliza una función denominada "recoletor de basura"(Garbage collector) que elimina los objetos que ya no se usan.
- Las variables lógicas(boolean) sólo pueden tener el valor True/False cosa que otros lenguajes además admiten valores 0 y 1
4° Multihilo
La capacidad multithilo (multithreading en inglés) puede ejecutar eficientemente múltiples hilos de ejecución. Un hilo es
simplemente una tarea que realiza una aplicación
y que puede ser ejecutada al mismo tiempo con otra tarea. A diferencia de los procesos que llevan bastante información de
estados, e interactúan sólo a través de mecanismos de
comunicación dados por el sistema, los hilos generalmente comparten otros recursos de forma directa.
Ademas Java soporta de modo nativo los threads, sin necesidad del uso de de librerías específicas (como es el caso de C++).
Esto le permite además que cada Thread de una aplicación java pueda correr en una CPU distinta
5° Seguro
Los programas java son seguros porque se le implementaron un serie de medidas para garantizar su seguridad permitiendo NO realizar cualquier acción que pudiera dañar la máquina o violar la intimidad del usuario. Estas medidas son:
- Prohibir la maipulación de punteros de memoria
- Impedir que las applicaciones puedan hacer por si mismas operaciones de lectura y escritura del disco duro
- Verificar que el código sea un código válido
- Facilitar el uso de "Firmas Digitales" para verificar la legitimidad del mismo
6° Independiente de la Plataforma
A diferencia de los programas dependientes de la plataforma que obliga a los programadores a escribir código específico para una sóla plataforma y necesita numerosas modificaciones para poder ejecutarse en distintas terminales.
Tal es así que al escribir "1" código fuente en C++ necesitamos "n" números de compiladores que usan "n" número de intérpretes y vinculadores para crear "n" número ejecutables para "n" número de terminales.
Los Programas Java son independientes porque "1" código fuente necesita "1" solo compilador Java que da "1" solo código que es ejecutado por un intérprete (para cada plataforma es diferente) llamado "Máquina Virtual Java"(JVM)
Además un programa java necesita una serie de bibliotecas de clase éstandar específica para cada plataforma. Esta combinación de bibliotecas con la JMV se conoce como "Entorno en Tiempo de Ejecución Java"(JRE)(Java Runtime Environment)
Desventajas de usar java
- Java es lento y tiene un peor desempeño comparado con lenguajes nativos como C o C++
- Consume grandes cantidades de memoria
- No provee un diseño de interfaces de usuarios atractivas.
- El código se dice que es 'verboso', hay que escribir varias lineas, donde otros lenguajes lo resuelven en solo una instrucción
No hay comentarios:
Publicar un comentario