Influenciado por C++
Soporta clases, encapsulación, herencia simple, polimorfismo, interfaces, garbage collection
Copilar un programa Java
Genera código maquina
bytecode
Clase
Interfaz
Case-sensitive
Todas las sentencias terminan con un punto-coma (;)
Los espacios blancos (incluyendo tabs y fines de línea) se ignoran, excepto al interior de strings.
Primitivos
Boolean, char, byte, short, int ,long, float, dobuble
Clase
Interfaz
Arreglo
La declaración puede aparecer en cualquier punto del código fuente de un método
La variable existe mientras se ejecuta el bloque que contiene la declaración
Variables locales
Parámetros de métodos
Variables de clase y de instancia
Independiente de la plataforma
Seguro
Simple
Robusto
Orientado a Objetos
Distribuido
Multi-threaded
Aplicaciones stand-alone
Aplicaciones Web (servlets, JSP, applets)
Componentes (JavaBeans, Enterprise JavaBeans
Web Services
//comentario=> Para una linea
/*comentario*/ => para varias lineas
/**comentario**// => ignora documentación javdoc
Nombre dado a una variable, clase, o método
Comienza con una letra Unicode (incluyendo _ y $), a la que pueden seguir letras y dígitos
Puede tener cualquier tamaño
Una variable es un espacio de almacenamiento de datos, con un nombre y un tipo de datos asociado
Cualquier número de sentencias agrupadas entre un par de llaves {
Puede ser usado en cualquier lugar donde se acepta una sentencia simple
El bloque define el ámbito (scope) de las variables
El bloque provee contornos para el control de flujo del procesamiento
Una vez inicializadas, no pueden ser modificadas
Se utiliza la palabra reservada final para definir una constante
Típicamente las constantes se definen como static, para no instanciarlas con cada objeto