En sí, las principales características que caracterizan (valga la redundancia) al lenguaje Java, no son muchas, sin embargo, son suficientes para definir la esencia de éste, y así empezar a entender cómo funciona:
- Simple
- Orientado a Objetos
- Independencia de Plataforma
- Seguro
- Robusto
- Arquitectura Neutra
- Portable
- Dinámico
- Interpretado
- Alto rendimiento (High Performance)
- Multi-hilos (Multithreaded)
- Distribuido
A continuación veremos en qué consisten cada una de estas características:
1. Simple
Según Sun MicroSystems, (ahora propiedad de Oracle), Java es un lenguaje sencillo porque su sintaxis es basada en C++ (lo cual lo hace un lenguaje fácil de aprender para aquellos programadores que han trabajado antes con C++), eliminando muchas características confusas y/o un poco extrañas para algunos usuarios como por ejemplo el uso explícito de punteros, sobre-carga de operadores, entre otras.
Además, no es necesario eliminar los Objetos de la memoria, ya que el Recolector de Basura de Java se encarga de esta tarea.
2. Orientado a Objetos
Al programar con un lenguaje Orientado a Objetos, significa que podemos organizar nuestro Software como una combinación de diferentes tipos de objetos en los que se incorporan tanto sus atributos o características, como su comportamiento.
La programación orientada a objetos (POO) es una metodología que simplifican el desarrollo y el mantenimiento de software, proporcionando algunas reglas para ello. Los conceptos básicos de la Programación Orientada a Objetos son los siguientes:
- Objeto
- Clase
- Herencia
- Polimorfismo
- Abstracción
- Encapsulamiento
Para entender un poco más sobre cómo funciona la Programación Orientada a Objetos, puedes leer el siguiente artículo: Paradigmas de Programación IV: Programación Orientada a Objetos.
3. Independencia de Plataforma
Podemos considerar en este punto una plataforma como el entorno de hardware o software en el que se ejecuta un programa. Hay entonces dos tipos de plataformas: las basadas en hardware, y las basadas en software, y Java proporciona una plataforma basada en software.
La plataforma sobre la cual se ejecuta Java difiere de la mayoría de otras plataformas en el sentido de que es una plataforma basada en software que se ejecuta sobre otra plataforma basada en hardware. La plataforma Java se compone de dos componentes principales:
- El Entorno de Ejecución (Java Runtime Enviroment)
- API (Interfaz de Programación de Aplicaciones)
El código Java puede ejecutarse en múltiples plataformas o Sistemas Operativos como Windows, Linux, Mac OS,entre otros. El código escrito en Java es compilado por el compilador y convertido a bytecode. Este bytecode es independiente de la plataforma, ya que no se ejecuta propiamente sobre el Sistema Operativo, sino sobre la Máquina Virtual de Java, haciendo alusión así a la promesa de James Gosling: Write Once Run Anywhere (Escribe una vez, Ejecuta donde quieras).
4. Seguro
Java es seguro porque:
- No hace uso de punteros explícitos, lo cual indica que no se trabaja directamente sobre la memoria del computador.
- Los programas escritos en Java se ejecutan sobre la Máquina Virtual de Java, la cual se encarga de gestionar la seguridad.
- Classloader: Añade seguridad al separar el paquete para las clases del sistema de archivos local, de los que se importan a través de fuentes de red.
- Verificador de Bytecode: Comprueba los fragmentos de código para evitar que código malicioso pueda violar el debido acceso de los objetos a la memoria.
- Security Manager: Determina qué recursos de una clase pueden acceder con permisos tanto de lectura y escritura al disco local.
Estos son los aspectos en seguridad proporcionados por la plataforma de Java. Algunas características de seguridad también puede ser proporcionadas por los mismos desarrolladores para sus aplicaciones como puede ser SSL, JAAS, criptografía, etc.
5. Robusto
Robusto simplemente significa fuerte. Java utiliza una sólida gestión de la memoria. Además, al no haber punteros se evitan problemas de seguridad. La recolección de basura en Java es automática. Tiene manejo de excepciones y un mecanismo de verificación de tipos. Todos estos puntos, hacen de Java un lenguaje bastante robusto.
6. Arquitectura Neutra
Un lenguaje o tecnología se dice que es de arquitectura neutra cuando puede ejecutarse en cualquier procesador disponible en el mundo real, sin tener en cuenta a la arquitectura y el proveedor en el proceso de desarrollo y compilación, y Java cumple con estas características.
6. Arquitectura Neutra
Un lenguaje o tecnología se dice que es de arquitectura neutra cuando puede ejecutarse en cualquier procesador disponible en el mundo real, sin tener en cuenta a la arquitectura y el proveedor en el proceso de desarrollo y compilación, y Java cumple con estas características.
7. Portable
El bytecode de Java puede ser ejecutado en cualquier plataforma.
8. Dinámico
El proceso de asignación del espacio de memoria al entrar a un programa en tiempo de ejecución se conoce como asignación de memoria dinámica; cuando programamos en Java, para asignar un espacio de memoria dinámicamente a un nuevo objeto, usamos la palabra reservada del lenguaje "new", algo que veremos en más detalle en próximos tutoriales.
8. Dinámico
El proceso de asignación del espacio de memoria al entrar a un programa en tiempo de ejecución se conoce como asignación de memoria dinámica; cuando programamos en Java, para asignar un espacio de memoria dinámicamente a un nuevo objeto, usamos la palabra reservada del lenguaje "new", algo que veremos en más detalle en próximos tutoriales.
9. Alto rendimiento (High Performance)
Java es más rápido que los lenguajes interpretados tradicionales, ya que el bytecode es muy cercano al código nativo siendo sólo un poco más lento que un lenguaje compilado como C++.
10. Distribuido
Podemos crear aplicaciones distribuidas en Java. Los RMI y EJB se utilizan para la creación de aplicaciones distribuidas. Así, podemos acceder a los archivos haciendo llamadas a los diversos métodos desde cualquier máquina en Internet.
11. Multi-hilos (Multithreaded)
Un hilo o thread es como un programa separado ejecutándose al mismo tiempo que el programa principal. Podemos escribir programas en Java que se ocupan de muchas tareas a la vez mediante la definición de múltiples hilos. La principal ventaja del multi-threading es que se comparte la misma memoria del proceso principal del programa. Los hilos son importantes para multimedia, aplicaciones web, etc.
No hay comentarios.:
Publicar un comentario