Lenguaje Familiar:
Java no es del todo un lenguaje nuevo, tiene mucho parecido con C++, lo que haria mucho mas facil el cambio de lenguaje C++ a java o el familiarizarse con el.
Para que este lenguaje sea considerado orientado a objeto, tiene que cumplir por lo minimo las siguientes caracteristicas de:
- herencia.
- polimorfismo.
- enlace dinámico.
- Lenguaje robusto:
Uno de los problemas mas comunes de los lenguajes es el que puedan escribir programas que lleguen a bloquear el sistema. Avaces en forma inmediata o puede llegar a aparecer inesperadamente, por ejemplo, la aplicación accede a zonas de memoria que no estaban siendo ocupadas por otros programas hasta ese momento. Un ejemplo claro de lenguaje no robusto es C. Al escribir código en C o C++ el programador debe hacerse cargo de la gestión de memoria de una forma explícita, solicitando la asignación de bloques a punteros y liberándolos cuando ya no son necesarios.
En Java, los punteros, la aritmética de punteros y las funciones de asignación y liberación de memoria no existen. En lugar de los punteros se emplean referencias a objetos, los cuales son identificadores simbólicos. El gestor de memoria de Java lleva una contabilidad de las referencias a los objetos. Cuando ya no existe una referencia a un objeto, éste se convierte en candidato para la recogida de basura.
Lenguaje de alto rendimiento ( Multiples Threads ):
Una de las características del lenguaje es que soporta la concurrencia a través de threads. En ocasiones puede interesarnos dividir una aplicación en varios flujos de control independientes, cada uno de los cuales lleva a cabo sus funciones de manera concurrente. Cuando los distintos flujos de control comparten un mismo espacio lógico de direcciones, se denominan threads.
Lenguaje portable:
El principal objetivo de los diseñadores de Java, fue el de desarrollar un lenguaje cuyas aplicaciones una vez compiladas pudiesen ser inmediatamente ejecutables en cualquier máquina y sobre cualquier sistema operativo. Por ejemplo, un programa desarrollado en Java en una estación de trabajo Sun que emplea el sistema operativo Solaris, debería poderse llevar a un PC que utilice sistema operativo Windows.
Lenguaje lo mas simple posible:
Los diseñadores de Java trataron de mantener las facilidades básicas del lenguaje en un mínimo y proporcionar un gran número de extras con las librerías de clases.
Lenguaje seguro:
Se pretendía construir un lenguaje de programación que fuese seguro, esto es, que no pudiera acceder a los recursos del sistema de manera incontrolada. Por este motivo se eliminó la posibilidad de manipular la memoria mediante el uso de punteros y la capacidad de transformación de números en direcciones de memoria evitando así todo acceso ilegal a la memoria. Esto se asegura porque el compilador Java efectúa una verificación sistemática de conversiones.