Java (llenguatge de programació)

De Viquipèdia
Dreceres ràpides: navegació, cerca
No s'ha de confondre amb JavaScript.
Duke, la mascota del Java.
Codi font d'un programa escrit amb el llenguatge de programació Java

El Java és un llenguatge de programació dissenyat el 1990 per James Gosling amb altres companys de Sun Microsystems a partir de C++. Des del seu naixement fou pensat com un llenguatge orientat a objectes. Entre el 13 de novembre de 2006 i el maig del 2007 Sun va alliberar parts de Java com a programari lliure de codi obert amb llicència GPL. És un dels llenguatges de programació més utilitzats, i s'utilitza tant per aplicacions web com per aplicacions d'escriptori.[1][2]

El Java és un llenguatge interpretat i, per tant, pot semblar lent en comparació amb altres llenguatges, però ofereix un índex de re-utilització de codi molt elevat, sent possible trobar moltes llibreries lliures de Java. És un llenguatge flexible i potent tot i la facilitat amb la qual es programa i dels resultats que ofereix. Un dels trets que el caracteritza i que el fa una eina molt valorada a l'hora de desenvolupar aplicacions distribuïdes, és el fet que és un llenguatge multi-plataforma.

Generalment els programes de Java es compilen en un bytecode (fitxer .class) que pot córrer en una Màquina Virtual Java. Sun Microsystems disposa de tres implementacions diferents de Java: J2SE per a aplicacions d'escriptori; J2EE per a aplicacions distribuïdes i J2ME per a plataformes amb recursos més reduïts com ara mòbils o PDAs. Per a cada una de les tres implementacions és possible descarregar el JRE (entorn d'execució Java) per a executar aplicacions o el SDK (Eines per al desenvolupament d'aplicacions) per a programar aplicacions en Java, aquest últim també inclou el JRE.

Un programa desenvolupat amb Java no necessita compilar-se de nou per a poder executar-se en qualsevol de les plataformes que disposi d'una versió instal·lada de JRE prou actualitzada per al programa.

Característiques de Java[modifica | modifica el codi]

  • Senzill: Java s'ha creat perquè sigui un llenguatge senzill amb una sintaxi elegant. Únicament consta de tres tipus de dades primàries, eliminant els punters i l'herència múltiple
  • Orientat a objectes: Java segueix els paradigmes de la programació orientada a objectes, ja que la programació amb Java se centralitza en la manipulació, creació i construcció d'objectes.
  • Distribuït: Java permet la construcció d'aplicacions distribuïdes per mitjà d'una col·lecció específica de classes.
  • Interpretat: Es necessita un intèrpret per executar els programes de Java, això alenteix als programes però els hi dóna flexibilitat.
  • Robust: Java és un llenguatge robust i fiable, s'ha escrit pensant a poder verificar errors i està molt tipificat.
  • Segur: Java té pocs problemes de seguretat, característica molt important en les aplicacions distribuïdes d'Internet.
  • Arquitectura neutral: Java és independent de la plataforma final on s'executarà el programa.
  • Portable: Java és un llenguatge d'alt nivell i de plataforma independent, això li dóna portabilitat.
  • Alt rendiment: Els compiladors Java han anat millorant les seves prestacions. Els nous compiladors

coneguts com a JIT permeten un rendiment molt semblant als llenguatges convencionals compilats.

  • Concurrent: Java permet l'execució de múltiples fils d'execució, o diverses tasques de forma simultània.
  • Dinàmic: En temps d'execució, l'entorn Java es pot ampliar mitjançant enllaços a classes que poden estar localitzades en servidors remots o en xarxa.

Característiques remarcables del llenguatge Java[modifica | modifica el codi]

  • Tipus de dades senzilles no orientats a objectes
  • Absència de punters
  • Classes i objectes
  • Herència
  • Classes abstractes
  • Interfícies
  • Programació genèrica
  • Encapsulació i polimorfisme
  • Interfícies gràfiques d'usuari
  • Gestió d'esdeveniments
  • Programació concurrent
  • Excepcions

Sintaxi[modifica | modifica el codi]

La sintaxi del Java deriva en gran part del C++. Però a diferència d'aquest, que combina la sintaxi per a programació genèrica, estructurada i orientada a objectes, el Java va ser dissenyat gairebé exclusivament com a llenguatge orientat a objectes. Tot el codi es troba dins d'una classe, i tot és un objecte (excepte nombres ordinals i reals, booleans i caràcters per motius de rendiment).

Utilitza mètodes per comentar similars al C++. Hi ha diferents tipus de comentari: una sola línia amb dues barres obliqües, múltiples línies començades per /* i acabades amb */, i el tipus de comentari de Javadoc que comença amb una barra obliqua i dos asteriscs i acaba amb */. L'estil Javadoc permet fer córrer l'executable de Javadoc per compilar la documentació del programa.

Exemple:

// Exemple de comentari d'una línia emprant dues barres obliqües
 
/* Exemple de comentari de múltiples línies emprant la barra
   obliqua i un asterisc. Permet emmagatzemar molta informació
   però és important tancar el comentari. */
 
/** 
 * Aquest és un exemple de comentari Javadoc; El Javadoc pot
 *  compilar la documentació a partir d'aquest text.
 */

Hola Món[modifica | modifica el codi]

Article principal: Hola món

Aplicacions autònomes[modifica | modifica el codi]

// Hola.java
import java.io.IOException;
public class Hola {
    public static void main(String[] args)throws IOException {
        System.out.println("Hola, món!"); 
    }
}

Aquest exemple necessita una petita explicació.

  • Tot a Java està dins d'una classe, fins i tot, programes autònoms.
  • El codi font es guarda en arxius amb el mateix nom que la classe que contenen i amb extensió “.java”. Una classe (class) declarada pública (public) deu seguir aquest conveni. En l'exemple anterior, la classe és Hola, pel que el codi font deu guardar-se en el fitxer “Hola.java”
  • El compilador genera un arxiu de classe (amb extensió “.class”) per cada una de les classes definides en l'arxiu font. Una classe anònima es tracta com si el seu nom fos la concatenació del nom de la classe que la tanca, el símbol “$”, i un número sencer.
  • Els programes que s'executen de forma independent i autònoma, han de contenir el mètode ”main()”.
  • La paraula reservada ”void” indica que el mètode main no retorna res.
  • El mètode main deu acceptar un array d'objectes de tipus String. Per acord es referencia com a ”args”, encara que pot utilitzar-se qualsevol altre identificador.
  • La paraula reservada ”static” indica que el mètode és un mètode de classe, associat a la classe en lloc d'una instància d'aquesta. El mètode main ha de ser estàtic o ’’de classe’’.
  • La paraula reservada public significa que un mètode pot ser cridat des d'altres classes, o que la classe pot ser utilitzada per classes fora de la jerarquia de la mateixa classe. Altres tipus d'accés són ”private” o ”protected”.
  • La utilitat d'impressió (en pantalla per exemple) forma part de la biblioteca estàndard de Java: la classe ‘’’System’’’ defineix un camp públic estàtic anomenat ‘’’out’’’. L'objecte out és una instància de ‘’’PrintStream’’’, que ofereix el mètode ‘’’println (String)’’’ per a bolcar dades a la pantalla (la sortida estàndard).
  • Les aplicacions autònomes s'executen donant a l'entorn d'execució de Java el nom de la classe el qual el seu mètode main deu invocar-se. Per exemple, una línia de comandos (en Unix o Windows) de la forma java –cp. Hola executarà el programa de l'exemple (prèviament compilat i generat “Hola.class”). El nom de la classe el qual el seu mètode main es pot especificar també al fitxer “MANIFEST” de l'arxiu d'empaquetament de Java (.jar).

Aplicacions i miniaplicacions[modifica | modifica el codi]

  • Els programes de Java es divideixen principalment en dues categories.
    • Aplicacions: són programes autònoms i independents
    • Miniaplicacions: les miniaplicacions o applets Java són programes incrustats en pàgines HTML, i aquests s'executen damunt de navegadors Web.

Limitacions de seguretat en les miniaplicacions[modifica | modifica el codi]

  • Les miniaplicacions no poden llegir ni escriure al sistema d'arxius de la computadora on s'executen.
  • Les miniaplicacions únicament es poden connectar amb l'ordinador on estan emmagatzemats.
  • Les miniaplicacions no poden executar programes de l'ordinador des del qual es llancen, normalment amb el navegador.

Eines de desenvolupament JAVA2[modifica | modifica el codi]

El JDK incorpora un conjunt d'eines:

  • Compilador Java javac
  • Màquina Virtual java
  • Eina per a visualitzar miniaplicacions appletViever
  • Depurador elemental jdb
  • Eina de documentació javadoc

Passos per crear un programa amb Java[modifica | modifica el codi]

  • Crear un arxiu amb el codi del programa amb extensió .java.

ex. elmeuprograma.java

  • Compilar el programa per crear l'arxiu executable (arxiu de bytecodes ) que tindrà l'extensió .class.
ex. javac elmeuprograma.java
  • Si es produeixen errors corregir-los.
  • Executar el programa amb l'intèrpret de bytecode (JVM).
 ex. java elmeuprograma
  • Si el programa no funciona utilitzar el depurador per executar el programa pas a pas.

Com desenvolupar aplicacions: Entorns (IDE)[modifica | modifica el codi]

De cara al desenvolupador el Java ens aporta propietats molt interessants, la més destacable de les quals és que es multi-plataforma, o sigui que el podem fer servir des de Windows, Linux, o des del nostre mòbil per exemple.
Existeixen principalment dos entorns de desenvolupament gratuïts( IDE (Editor Integrat de Desenvolupament)) l'un es diu Eclipse, té un nivell altament professional, i ofereix una llicència Eclipse Public License, pròpia de la eclipse foundation que es qui desenvolupa aquest programa, Eclipse es programari lliure. L'altre s'anomena NetBeans també gratuït i amb llicència SPL, es pot descarregar de http://www.netbeans.org/.

Altres projectes i eines relacionades[modifica | modifica el codi]

Programa d'exemple[modifica | modifica el codi]

Aquest programa escriu "Hola món" al dispositiu de sortida predeterminat (normalment la consola),

class HolaMon {
    public static void main (String args[]) 
    {
        System.out.print("Hola, món!");
    }
}

Referències[modifica | modifica el codi]

  1. «Programming Language Popularity», 2009. [Consulta: 16-1-2009].
  2. «TIOBE Programming Community Index», 2009. [Consulta: 6-5-2009].

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Java (llenguatge de programació) Modifica l'enllaç a Wikidata