Diferència entre revisions de la pàgina «DAM-M3-UF4. Introducció a Java»

De Wiki IES Marianao. Departament Informàtica
Dreceres ràpides: navegació, cerca
(Noms i sigles)
(Eines)
Línia 165: Línia 165:
  
 
<pre>$ appletviewer Exemple.html</pre>
 
<pre>$ appletviewer Exemple.html</pre>
 +
 +
 +
== Gestió de memòria. Estàtica vs Dinàmica ==
 +
 +
(Pendent)

Revisió del 11:36, 31 maig 2012

torna M3 - Programació

Llenguatge i Entorn

Característiques

Java és un llenguatge de programació desenvolupat per Sun Microsystems als anys 90, les seves característiques són:

  • Sintaxi semblant a C++, però més senzill i fàcils d’usar (Aritmètica de punters, sense necessitat d’eliminar memòria garbage collector…)
  • Robust (Fortament tipat, comprovació estàtica i dinàmica d’errors, en temps de compilació i en temps d’execució, excepcions)
  • Portable, màxima independència de la plataforma (Bytecode).
  • Segur, control molt rígid de la gestió de memòria de les aplicacions
  • Multi fluxe (Multithreaded), permet distribuir la càrrega entre varis processos o fils de manera concurrent
  • Interpretat (Tot i que això suposa un rendiment inferior a d’altres)
  • Orientat a objectes (Polimorfisme, herència i ocultació)

Arquitectura de Java. Màquina virtual

Java no es només un llenguatge de programació, es un sistema complex.

Passos per a la creació de programes

  • Es creen fitxers font en llenguatge de programació (Java) i usant funcions de llibreries pròpies de la plataforma (API) o third party (ISV, Independent Software Vendor). Extensió .java
  • Els fitxers font compilats generen uns fitxers en un llenguatge intermig anomenat Bytecode. Extensió .class
  • Despŕes de carregar les llibreries i verificar el bytecode (correcció i seguretat), el programa s'envia a la Màquina Virtual (JVM) per a la seva execució
  • JVM interpreta el bytecode (Traducció on-line a llenguatge màquina) o el processa amb el JIT (Just in Time Compilation) per millorar-ne el rendiment. P.e. les parts de codi que s'executen molt sovint es compilen amb el JIT i no cal interpretar-les cada vegada.
  • La màquina virtual és particular de cada plataforma SW i HW. Existeixen múltiples implementacions (HotSpot d'Oracle/SUn, IcedTea de GPL, http://en.wikipedia.org/wiki/List_of_Java_virtual_machines)

Aquest procés garanteix la independència dels programes escrits en Java de l’entorn on foren creats i compilats. Portabilitat

Javaarch.jpg

Noms i sigles

http://www.oracle.com/technetwork/java/index.html

http://docs.oracle.com/javase/6/docs/

J2SE: Java 2 Platform Standard Edition. Aquesta és la plataforma completa per al desenvolupament d'aplicacions d'escriptori

  • JRE:Java Runtime Environment. Inclou la MV i les llibreries API.
  • JDK :Java Development Kit. Inclou JRE més les eines de desenvolupament.
  • API : Application Programming Interface. Funcions d’ús general de Java. Part del codi d’aquestes funcions és públic

http://docs.oracle.com/javase/6/docs/api/index.html

Versió actual 6.0 (7.0 per a la versió estàndard)

Java6api.png

font:http://docs.oracle.com/javase/6/docs/

Plataformes

http://www.oracle.com/us/technologies/java/overview/index.html

  • SE. Standard Edition, inclou JDK o JRE
  • EE. Enterprise Edition, estàndard (especificacions) per a desenvolupament d’aplicacions empresarials, nova generació web i serveis web . Inclou SDK, un servidor d'aplicacions (GlassFish), algunes llibreries addicionals (p.e. suport SOA, Service Oriented Architecture, aplicacions distribuïdes).
  • ME. Micro Edition, per a dispositius mòbils
  • Embedded. Altres dispositius: TV, reproductors, impressores, caixers automàtics, etc...

Eines

Les Extensions dels fitxers més comuns

.java: Programa font. Escrit en llenguatge Java

.class: Bytecode. Programa compilat. Escrit en llenguatge de baix nivell intel·ligible per la màquina virtual

.jar : Agrupació de fitxers .class (compilats, bytecode) comprimits, manté una estructura interna de directoris. Facilita la distribució de les aplicacions i llibreries. La màquina virtual pot llegir-los i executar-los directament (No cal descomprimir i desempaquetar).

Eines bàsiques

Per començar a treballar amb Java només calen les següents eines

  • Editor de text pla.
  • JDK. El kit de desenvolupament amb el compilador i el intèrpret de Bytecode

Per un entorn Linux

  • javac : Compilador. Llegeix un fitxer .java (Programa font) i genera un fitxer .class (Bytecode)
  • java : Intèrpret, màquina virtual. Llegeix i executa els fitxers .class (bytecode)
  • jar: Generador de fitxers jar (Biblioteques)
  • javadoc: Generador de documentació. Llegeix un fitxer .java i genera un document html en el mateix format que la documentació del API
  • jdb: Depurador.

Per treballar amb java només cal tenir en compte dues variables d’entorn

  • PATH: Apunta als binaris de les eines (directori /bin, /usr/bin, etc...)
  • CLASSPATH: Apunta a les llibreries necessàries per a les aplicacions a desenvolupar (Fitxers .jar, .class)


Utilitats

Java web start

És una aplicació que permet de manera molt senzilla executar i distribuir aplicacions des de un navegador web sense haver d’instal·lar-les.

  • Es part de l’entorn d’execució (JRE)
  • Les aplicacions es veuen a un navegador
  • Sempre es mostra la última versió de l’aplicació de manera automàtica (i transparent) per l’usuari.
  • Són fitxers amb extensió .jnlp (Pàgines web). Tecnologia Java TM Network Launching Protocol
  • Java web start mostra el repositori de totes les aplicacions jlnp executades i si les executem sempre descarrega la última versió.
  • La versió 1.6 cal executar "javaws –viewer aplicaico.jnlp"


Plug-in de Java. Applets

En general un plug-in és un programa que s’executa dins un altre per aportar una funcionalitat específica.

En particular el plug-in de Java permet que applets escrits en Java s’executin dins un Navegador usant el JRE. El comportament del plug-in es pot configurar a través de Javal plug-in control panel.

Un Applet és un programa escrit en Java que es pot incloure a una pàgina web (Igual que una imatge o un document Flash)

Si el navegador admet l’execució de codi Java (Veure preferències del navegador particular), al carregar un pàgina que contingui un Applet (Compilat, fitxer .class), el codi es transferirà i serà executat per la màquina virtual.

L'entorn JRE proporciona la següent eina:


appletviewer: Permet veure executar applets fora un navegador web


Un parell de diferències entre Javascript i els Applet:

  • Javascript és un llenguatge d'scripting, com vbscript.
  • Javascript s’executa en el navegador, un Applet l’executa la màquina virtual.
  • Javascript és un llenguatge molt limitat, els Applets s’escriuen en Java.


Exemple Applet. El Programa java

// Applet Exemple

import java.awt.Graphics;

import javax.swing.JApplet;

public class Exemple extends JApplet {
    public void paint( Graphics g ) {
        g.drawString( "Hola Mon!",25,25 ) ;
        g.drawLine(10,10,100,10);
        g.drawRect(100,200,200,100);
        g.drawOval(500,200,200,100);
    }
}


Exemple Applet. Compilació


$ javac Exemple.java


Exemple Applet. Pàgina web

<html><body>
<applet CODE="Exemple.class" WIDTH=800 HEIGHT=500>
</applet>
</body></html>
$ appletviewer Exemple.html


Gestió de memòria. Estàtica vs Dinàmica

(Pendent)