Diferència entre revisions de la pàgina «DAM-M3-UF4. Introducció a Java»
(→Noms i sigles) |
(→Noms i sigles) |
||
(5 revisions intermèdies per 2 usuaris que no es mostren) | |||
Línia 34: | Línia 34: | ||
http://www.oracle.com/technetwork/java/index.html | http://www.oracle.com/technetwork/java/index.html | ||
− | |||
− | |||
'''J2SE''': Java 2 Platform Standard Edition. Aquesta és la plataforma completa per al desenvolupament d'aplicacions d'escriptori | '''J2SE''': Java 2 Platform Standard Edition. Aquesta és la plataforma completa per al desenvolupament d'aplicacions d'escriptori | ||
Línia 45: | Línia 43: | ||
*'''API''' : Application Programming Interface. Funcions d’ús general de Java. Part del codi d’aquestes funcions és públic | *'''API''' : Application Programming Interface. Funcions d’ús general de Java. Part del codi d’aquestes funcions és públic | ||
− | + | [[https://docs.oracle.com/en/java/javase/11/docs/api/ https://docs.oracle.com/en/java/javase/11/docs/api/]] | |
− | Versió | + | Versió SE 17.0.1 (LTS) a novembre de 2021 |
− | [[ | + | [[https://www.oracle.com/java/technologies/platform-glance.html https://www.oracle.com/java/technologies/platform-glance.html]] |
− | |||
==== Plataformes ==== | ==== Plataformes ==== | ||
− | + | [[https://docs.oracle.com/en/java/index.html https://docs.oracle.com/en/java/index.html]] | |
+ | |||
+ | [[https://docs.oracle.com/cd/E19798-01/821-1770/gcrkk/index.html https://docs.oracle.com/cd/E19798-01/821-1770/gcrkk/index.html]] | ||
* '''SE. Standard Edition, ''' inclou JDK o JRE | * '''SE. Standard Edition, ''' inclou JDK o JRE | ||
Línia 130: | Línia 129: | ||
Exemple Applet. El Programa java | Exemple Applet. El Programa java | ||
− | + | <html><pre><code class='java'> | |
− | <pre> | ||
// Applet Exemple | // Applet Exemple | ||
import java.awt.Graphics; | import java.awt.Graphics; | ||
− | |||
import javax.swing.JApplet; | import javax.swing.JApplet; | ||
Línia 146: | Línia 143: | ||
} | } | ||
} | } | ||
− | </pre> | + | </pre></code></html> |
Exemple Applet. Compilació | Exemple Applet. Compilació | ||
− | + | <html><pre><code class='bash'>$ javac Exemple.java</pre></pre></code></html> | |
− | |||
− | <pre>$ javac Exemple.java</pre> | ||
Exemple Applet. Pàgina web | Exemple Applet. Pàgina web | ||
+ | <html><pre><code class='html'><html> | ||
+ | <body> | ||
+ | <applet CODE="Exemple.class" WIDTH=800 HEIGHT=500> | ||
+ | </applet> | ||
+ | </body> | ||
+ | </html> | ||
+ | </pre></code></html> | ||
− | + | <html><pre><code class='bash'>$ appletviewer Exemple.html</pre></code></html> | |
− | <html>< | ||
− | < | ||
− | </ | ||
− | |||
− | </ | ||
− | |||
− |
Revisió de 14:14, 9 nov 2021
torna M3 - Programació
Contingut
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
Noms i sigles
http://www.oracle.com/technetwork/java/index.html
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
[https://docs.oracle.com/en/java/javase/11/docs/api/]
Versió SE 17.0.1 (LTS) a novembre de 2021
[https://www.oracle.com/java/technologies/platform-glance.html]
Plataformes
[https://docs.oracle.com/en/java/index.html]
[https://docs.oracle.com/cd/E19798-01/821-1770/gcrkk/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