Java: introducció ràpida

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Introducció

Java és un llenguatge compilat que corre sobre una màquina virtual, JVM o Java Virtual Machine amb la intenció de que sigui multiplataforma. És fortament orientat a objectes i s'inspira en C++.

El va desenvolupar Sun Microsystems (els mateixos que VirtualBox i OpenOffice) sota llicència Open Source. El 2011 Sun va ser absorbida per Oracle, companyia que no impulsa les llicències obertes com ho feia Sun, pel que aquests projectes s'han vist ralentits o aturats.

La seva principal fortalesa és que és un llenguatge mols estès, en particular en BBDD i programació web. També es poden desenvolupar aplicacions amb GUI tipus desktop, però al córrer sobre una màquina virtual solen ser més lentes que amb codi natiu.

Amb l'adveniment d'Android també s'ha impulsat més encara a l'utilitzar el SDK com a base per a desenvolupament d'aplicaions mòbils d'aquest SO.


Instal·lació

Distingim:

  • JRE: Java Runtime Environment. Conté la JVM i permet executar codi Java però no porta el codi font.
  • JDK: Java Development Kit. Conté el JRE + el codi font (headres, etc.) que permet desenvolupar.

Per saber quina versió tenim instal·lada podem fer:

$ java --version


Compilació i execució bàsica

Arxius:

  • .java : font
  • .class : codi compilat

Podem compilar des de línia de comandes amb:

$ javac <exemple.java>

Executem amb la VM de Java (sense .class ni res):

$ java <exemple>


Tipatge estàtic

A diferència dels llenguatges de scripting com Python, Ruby o PHP, en Java els tipus de dades son estàtics, és a dir, cal declarar les variables i el seu tipus a priori per poder ser utilitzades.

Per exemple:

int a;        // declaració
a = 10;       // ús de la variable
a = "lalala"; // ERROR de COMPILACIÓ: si l'hem declarat com un integer no podem assignar-li un string o char array.
              //       (sí que podem fer-ho en llenguatges de scripting)


Primer exemple compilable

El programa més senzill de Java el podriem fer així:

class Prova1
{
    public static void main(String []args)
    {
        int nargs = args.length;
        System.out.println("num args: " + nargs);
    }
}

Pren nota d'algunes coses importants:

  • Total orientació a objectes: no hi ha funcions "sueltes". Tot ha d'anar dins d'un objecte.
  • El nom de la classe ha de coincidir amb el de l'arxiu (case sensitive).
  • La classe on iniciarem l'execució ha de tenir un mètode public static void main( String []args ).
  • A la variable args rebem els paràmetres que podem fer-li arribar a l'executable a través de la consola.
    • args és un array de Strings (oju, immutable). Li podem demanar quants elements té amb args.length .

Això ho compilariem i executariem així:

$ javac Prova1.java 
$ java Prova1 hola 3
num args: 2


Tipus bàsics

Instanciació d'objectes

Recol·lecció de basura (garbage collection)

Visibilitat de variables

Sobrecàrrega de funcions

Herència, abstracció i interfaces

Polimorfisme