Java usa (con la excepción de variables de tipos simples) exclusivamente objetos. Un tal objeto se define como una clase (class), y se puede crear varias instancias de objetos de tal clase. Es decir, la clase define el tipo del objeto, y la instancia es una variable que representa un objeto.
Una clase contiene como mucho tres tipos de miembros:
No existen variables globales y el programa principal no es nada más que un método de una clase.
Los objetos en Java siempre tienen valores conocidos, es decir, los objetos (y también las variables de tipos simples) siempre están inicializados. Si el programa no da una inicialización explícita, Java asigna el valor cero, es decir, 0, 0.0, \u0000, false o null dependiendo del tipo de la variable.
Java es muy parecido a C++ o C# (por ejemplo, en su síntaxis y gran parte de sus metodologías), aunque también existen grandes diferencias (por ejemplo, en su no-uso o uso de punteros y la gestión de memoria).
class Hello {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
El programa principal se llama main() y tiene que ser declarado público y estático. No devuelve ningún valor (por eso se declara como void). Los parámetros de la línea de comando se pasan como un arreglo de cadenas de letras (String).
Java exige una disciplina estricta con sus tipos, es decir, el compilador controla siempre que puede si las operaciones usadas están permitidas con los tipos involucrados. Si la comprobación no se puede realizar durante el tiempo de compilación, se pospone hasta el tiempo de ejecución, es decir, se pueden provocar excepciones que pueden provocar fallos durante la ejecución.