Estructura de un programa en Java

La clase principal y el método main.

Un programa puede construirse empleando varias clases. En su estructura más simple tendríamos una clase principal que contendría el programa, rutina o método principal: main() en el cual se incluirían las sentencias del programa principal. De esta manera la estructura de un programa simple en Java seria el siguiente:
public class ClasePrincipal {
        public static void main(String[] args) {
                sentencia_1;
                sentencia_2;
                //...
                sentencia_N;
        }
}

Comentarios

Una parte importante de los programas son sus comentarios ya que estos nos permiten saber cuál se supone que tienen que ser el funcionamiento de una sentencia en concreto. Los comentarios no son almacenados a la hora de compilar de manera que el compilador los detecta y los ignora, haciendo que el código sea más ligero.
En Java disponemos de tres tipos de comentarios, entre los cuales podemos encontrar los comentarios clásicos de C y C++ tales como // y /* … */. De esta manera el compilador de Java ignorara todo lo que escribamos desde // hasta el final de la línea:
System.gc(); // Esta parte será ignorada, pero realizara el Garbage collection.
Con el tipo de comentario /* … */ tendremos un comentario multilinea, en este caso solo tendremos que marcar el inicio”/*” y el final “*/”  para que todo lo que se encuentre en su interior sea ignorado por el compilador.
public class suma {
        public static void main(String[] args) {
                int numero = 1;
                numero++;
                int multiplicador = 2;
                numero *= multiplicador;
                System.out.println("salida 1: " + numero);
                numero++;
                numero *= multiplicador;
                System.out.println("salida 2: " + numero);
        }
}
c:\>javac suma.java

c:\>java suma
salida 1: 4
salida 2: 10
public class suma {
        public static void main(String[] args) {
                int numero = 1;
                numero++;
                int multiplicador = 2;
                numero *= multiplicador;
                System.out.println("salida 1: " + numero);/*
                numero++;
                numero *= multiplicador;
                */System.out.println("salida 2: " + numero);
        }
}
c:\>javac suma.java

c:\>java suma
salida 1: 4
salida 2: 4

Por ultimo tenemos el tipo de comentario que se usa para el documentador de Java, este se caracteriza por que comienza con “/**”  y termina con “*/” si nos fijamos en la diferencia con el comentario anterior este contiene dos * al inicio, en lugar de uno solo.
Este tipo de comentarios suele encontrarse al inicio de los métodos y nos indica varios parámetros del mismo así como una breve descripción.
/**
* Método que permite convertir una lista en un array
* @param list
* @return Array
*/

Hay muchos y muy variados tags para este API de JavaDocs, de manera que ya lo miraremos más adelante.

Tokens

                Un token es el elemento más pequeño que se interpretara en nuestro código por el compilador. En Java los tokens se pueden dividir en 4 grupos.

  • Identificadores o nombres que se asignarían a las variables, constantes, clases, paquetes y métodos. Dentro de los identificadores se encuentran las palabras claves que son identificadores reservados por Java para cumplir con un objetivo específico en el código.
  • Constantes literales: representan valores predefinidos que puede tomar una.
  • Operadores: representan una operación que se aplica a un objeto o un dato, sobre una variable o constante (operando).
  •  Separadores: Son empleados para indicarle al compilador de Java donde se ubican los elementos de código. Por ejemplo: { } , : ;
Los identificadores tienen que seguir una serie de normas a la hora de declararse.
  • Los identificadores han de comenzar por una letra, o por un carácter de subrayado “_” o con el carácter de dólar “$”. Aunque se desaconseja utilizar el carácter dólar ya que el compilador lo utiliza de manera interna.
  • A partir del segundo carácter se podrán usar además números u otros digitos. Estarian prohibidos los espacios en blanco, el signo de interrogación “?” y el signo del tanto por ciento “%”.
  •  No hay límite de caracteres.
  • El identificador es case sensitive, lo que viene a significar, que los identificadores “casa”, “CASA” y “Casa” serian diferentes
  • Se pueden incluir caracteres Unicode, con lo que se pueden emplear secuencias de escape \uxxxx para representar estos caracteres
  • No puede emplearse el identificador de una variable o cualquier otro elemento del código fuente del programa para otro ya existente en el mismo bloque. Excepción: variable miembro y local con el mismo identificador.
  • Las palabras reservadas no pueden emplearse como identificadores.

Aunque la elección de cómo escribir los identificadores en Java no se encuentra normalizado, sí que tenemos una serie de convenciones en la que nos podemos basar a la hora de construir nuestros nombres.
  • Los identificadores tienen que ser auto explicativos, de tal manera que cualquier persona que venga, sepa a la perfección que es lo que va a hacer el método. Por ejemplo, si ponemos un método denominado “Integer getmes(Usuario usuario)” lo que cualquiera esperara es que el método me devuelva el numero del mes usuario, pero aquí comienza el problema, el mes de alta, de baja, de nacimiento… como se puede ver un déficit de información en el identificador nos puede llevar a errores en el futuro. Si se hubiera puesto “Integer getmesaltasistema(Usuario usuario)” no habría dudas, devuelve el mes en el que se dio de alta.
  •  Si el identificador contiene más de una palabra se utilizaría la convención ‘Lower Camel Case’ o lo que es lo mismo, la primera letra de la primera palabra en minúscula y el resto de palabras con la primera letra en mayúsculas. Por ejemplo, si nos fijamos en el apartado A) se hace realmente difícil de leer, cuando solamente era “getmes” era sencillo, pero si lo pasamos por el convenio quedaría de la siguiente manera “getMes”, la cosa se complica cuando se incluyen más palabras “getmesaltasistema”, amén de que juntar algunas palabras puede tener un sentido que no queremos dar, de manera que separaremos la palabra según el convenio “getMesAltaSistema”, ahora es mucho más intuitivo de separar.
  • El uso del subrayado ‘_’ está permitido en todo tipo de identificador, pero es aconsejable usarlo únicamente como separador de palabras en las constantes, por ejemplo

public static final int NUMERO_MAXIMO_CARACTERES = 255;

Existen muchas más convenciones, si estás interesado en ellas, no dudes en leerte las convenciones publicadas por Oracle, serán del 1999 pero ya que son convenciones que no varían casi nunca siguen siendo igual de validas; tenéis toda la información aquí