capitolo 2 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CAPITOLO 2 PowerPoint Presentation
Download Presentation
CAPITOLO 2

Loading in 2 Seconds...

play fullscreen
1 / 11

CAPITOLO 2 - PowerPoint PPT Presentation


  • 116 Views
  • Uploaded on

CAPITOLO 2. INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA. IL LINGUAGGIO JAVA. Semplice ed estensibile (OO) Distribuito Interpretato Robusto Sicuro Architetturalmente neutrale Portabile A elevate prestazioni Concorrente (multithreaded)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CAPITOLO 2' - arwen


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
capitolo 2
CAPITOLO 2

INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA

il linguaggio java
IL LINGUAGGIO JAVA
  • Semplice ed estensibile (OO)
  • Distribuito
  • Interpretato
  • Robusto
  • Sicuro
  • Architetturalmente neutrale
  • Portabile
  • A elevate prestazioni
  • Concorrente (multithreaded)
  • Dinamico
semplice estensibile oo
SEMPLICE/ESTENSIBILE (OO)
  • Sintassi simile a C e C++ (facile da imparare)
  • Elimina i costrutti più "pericolosi" di C e C++
    • aritmetica dei puntatori
    • strutture (struct)
    • definizione di tipi (typedef)
    • preprocessore (#define)
    • (de)allocazione esplicita della memoria
  • Aggiunge garbage collection (GC) automatica
  • Conserva la tecnologia OO di base di C++
  • Rivisita C++ in alcuni aspetti (W.Joy: C++--==)
  • Interprete completo occupa 215 KB di RAM
distribuito e neutrale
DISTRIBUITO E NEUTRALE
  • Incorpora molte funzionalità di rete (TCP/IP)
  • Comprende librerie di livello superiore (HTTP)
  • Rete facilmente accessibile (come i file locali)
  • Compilatore produce codice di tipo byte-code
  • Byte-code indipendente da architettura HW
  • Codice eseguibile su molte piattaforme HW
  • Sviluppo: Solaris (SPARC), Win95 e NT (Intel)
  • Disponibilità: le principali piattaforme HW/SW
flusso del codice
FLUSSO DEL CODICE

Rete

Loader

delle classi

Verifica del

byte-code

Sorgente

Java

Interprete

Compilatore

Generatore

di codice

Ambiente

a run-time

Byte-code

Java

Piattaforma hardware

robusto
ROBUSTO
  • Rilevamento errori (compile-time e run-time)
  • Type-checking (compile-time e run-time)
  • Mascheramento dei puntatori all'utente
  • Impossibilità di fare "casting" di puntatori
  • Controllo automatico dei puntatori nulli
  • Controllo automatico degli indici degli array
  • Gestione delle eccezioni da parte dell'utente
  • Verifica del byte-code prima dell'esecuzione
  • Gestione della memoria (allocazione & GC)
sicuro
SICURO
  • Dimostratore della correttezza del byte-code
  • Rispetto garantito dei limiti dello stack
  • Correttezza dei parametri delle istruzioni
  • Legalità dell'accesso ai campi degli oggetti
    • pubblici
    • privati
    • protetti
  • Legalità di tutte le conversioni di tipo
  • In particolare, impossibilità di convertire numeri a puntatori, etc.
portabile interpretato e a elevate prestazioni
PORTABILE, INTERPRETATO E A ELEVATE PRESTAZIONI
  • Formato dei dati specificato nei dettagli (p.es. gli interi sono di 32 bit e in complemento a 2)
  • Primitive grafiche astratte facilmente portabili agli ambienti Unix, Windows e Macintosh
  • Interpretazione abbrevia il ciclo di sviluppo
  • Circa 300.000 funcalls/sec (SPARCstation10)
  • Traduzione a run-time di byte-code in codice macchina fornirà prestazioni simili a C e C++
concorrente e dinamico
CONCORRENTE E DINAMICO
  • Multithreading parte integrante del linguaggio
  • Applicazioni interattive più facili a scriversi
  • Migliore "reattività" (anche se non real-time)
  • Esempio: caricamento asincrono di immagini nei browser di rete riduce i tempi di attesa
  • Codice eseguibile anche in assenza di moduli
  • Nuove release di moduli usabili a parità di API
  • Nuovi protocolli caricabili da rete (download)
  • Browser non più "centralisti" ma "federalisti"
browser federalista
BROWSER "FEDERALISTA"
  • Client: richiesta oggetto da parte utente
  • Rete: trasferimento richiesta al server
  • Server: reperimento oggetto nel database
  • Rete: trasferimento oggetto al client
  • Client: rilevamento oggetto di tipo ignoto
  • Rete: trasferimento informativa al server
  • Server: reperimento codice Java adeguato
  • Rete: trasferimento codice Java al client
  • Client: visualizzazione oggetto richiesto
l ambiente hotjava
L'AMBIENTE HOTJAVA
  • Browser abilitato all'impiego di Java
  • Manipola URL tradizionali
  • Decodifica pagine HTML tradizionali
  • Attiva programmi Java riferiti da pagine HTML
  • Programmi Java attivabili non solo via HTML
  • Quasi tutti i browser oggi sono Java-enabled
  • Gli altri browser ignorano i link a oggetti Java