Introduzione a Java.

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II
Programmazione in Java
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Costruttori e Distruttori
Applet Java.
I linguaggi di programmazione
Installazione di Apache 2, PHP5, MySQL 5
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
L’architettura della Java Virtual Machine
Java Enterprise Edition (JEE)
Massa Laura Mela Enrica
Generalità Linguaggio e Macchina Astratta
DLL: Dynamic Linking Library
Dr. Giovanni Stracquadanio
Programmazione Procedurale in Linguaggio C++
Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Terza parte: Programmazione ad oggetti in Java. Cosè Java Linguaggio di programmazione definito dalla Sun Obiettivo: sviluppo di applicazioni sicure,
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione al linguaggio Java
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Un introduzione a Java Ant per lutilizzo con Swarm Marco Lamieri 13/04/2004.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Primi programmi in Java
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
memoria gestita staticamente:
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
Introduzione ad ASP.net
Architettura Java/J2EE
Argomenti della lezione
Corso di PHP.
C# LE BASI 2007 Prima lezione - Introduzione.
Programmazione in Java
Il compilatore Dev-C++
Programmazione “Object Oriented” Le basi del linguaggio
Introduzione a C#.
Java Contardi Carlo A.S. 2008/09.
1 Introduzione. 2 Le motivazioni In.net Framework iniziato nel 2000 rappresenta una svolta nella tecnologia Microsoft per andare oltre ai linguaggi esistenti.
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria “Enzo Ferrari” – Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il PHP e il vostro sito cos'è e come funziona. HTML... Linguaggio formattazione Non interattivo Non dinamico.
Java come linguaggio di programmazione
Gena - Applicata - 05/061 Java: javac e java Per compilare una classe: > javac NomeClasse.java  NomeClasse.class javac = invocazione.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Symbian Marco Teodori Assistente Ricercatore - Fondazione Ugo Bordoni.
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Vannucci Roberto (5BM), De Nardin Axel (5AM)
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Fondamenti di informatica T-A Esercitazione 1 : Introduzione AA 2012/2013 Tutor : Domenico Di Carlo.
Eprogram informatica V anno.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Architetture software
Programmazione orientata agli Oggetti Introduzione a Java.
Transcript della presentazione:

Introduzione a Java

Argomenti Cenni di storia di Java Perché Java? Java Vs C++ Caratteristiche fondamentali di Java Installiamo Java

Obiettivi Introdurre Java Capire cos’è Java Installare Java Scrivere ed eseguire il Vostro primo programa Java

Cenni di storia di Java 1991 Sun Microsystems Fallimento! WEB! James Goslin & Green Team Oak, derivato da C & C++ Creare strumento di controllo di piccole apparecchiature Elettroniche di largo consumo (decoder TV e lavatrici). Fallimento! Linguaggio standard e indipendente dalla piattaforma Java WEB! 23 Maggio 1995 Annuncio nascita Java 23 Gennaio 1996 JDK 1.0 http://java.sun.com/features/2000/06/time-line.html http://www.mokabyte.it/1998/10/javastory.htm 8 Dicembre 1998 Java 2 platform

Perché Java?  Disponibile per praticamente tutte le piattaforme (W.O.R.E. Write Once Run Everywhere) Gratuito e open source Standardizzato Semplifica attività solitamente complesse (networking, GUI(uso dell’interfaccia grafica) multipiattaforma) Completamente O.O. (Object Oriented) Permette il multi threading Enorme numero di API e di progetti paralleli Più robusto di C (puntatori, più controlli compile time)

 Perché Java? Più lento di C++ Impossibile accedere alla parte di codice plattform specific

Java Vs C++ Java è C++ meno: Obiettivo principale di SUN Puntatori (non è possibile accesso diretto ad aree di memoria) Distruttori (Garbage Collection [ripulitura di spazio] automatico) Templates Ereditarietà multipla … Obiettivo principale di SUN Eliminare complessità continua…

Per capire Java…è necessario un piccolo passo indietro LINGUAGGI Macchina Assembly Di alto livello +1300042774 ADD OVERPAY Assembler +1300042774 INTERPRETATI COMPILATI Sorgente File Binario Interprete Riga per riga Dipende dalla macchina Sorgente File Binario Compilatore Tutto il file Non modificabile, illeggibile VB, .NET, C/C++… HTML

Specifica per il SO in cui viene eseguito il sorgente Java è una via di mezzo INTERPRETATI COMPILATI Sorgente (.java) Platform Indipendent Compile-time Compilatore Semi compilato BYTECODE (.class) Platform Indipendent Portabile Run-time Interprete Eseguito JVM Specifica per il SO in cui viene eseguito il sorgente

Java Vs C++ (2) C++ Source (*.c) Java Source (*.java) C++ Compiler (machine independent) C++ Compiler Java Compiler Byte-code (*.class) (machine independent) Java Virtual Machine Client Platform (hardware/operating system) Client Platform (hardware/operating system) (machine dependent)

La Java Virtual Machine macchina virtuale che esegue i programmi in linguaggio Java bytecode, ovvero i prodotti della compilazione dei sorgenti Java Fonte: Wikipedia Ogni architettura possiede una specifica versione software Realizza un ambiente di esecuzione omogeneo, che nasconde al software Java (e quindi al programmatore) qualsiasi specificità del sistema operativo sottostante + versione hardware di SUN + Ogni browser ha una versione della JVM implementata al suo interno Software applicativo Java Java Virtual Machine Sistema Operativo

Architettura della JVM (1) class loader Java API class files A.class B.class bytecode C.class execution engine native method invocations Sistema Operativo Host

Architettura della JVM (2) Class Loader .class files Area dei Metodi Area di Heap Java Stacks Registri del pc Native methods Runtime data areas * * Execution Engine

Method area È condivisa tra tutti i thread Memorizza le strutture relative alle classi: - type information - constant pool - field information - method information - variabili di classe (static) - riferimento alla classe ClassLoader - riferimento alla classe Class Quando la JVM carica un tipo (classe), il class loader legge le informazioni relative dal class file e le passa nuovamente alla JVM la quale le memorizza nella method area

Heap Viene creato all’avvio della JVM È condiviso tra tutti i thread In esso vi sono allocate tutte le istanze delle classi e gli array È gestito dal garbage collector NOTA: la Sun, nelle specifiche della JVM, non definisce la rappresentazione degli oggetti né il funzionamento del garbage collector; una possibile rappresentazione degli oggetti è la seguente: Class 1 data ptr to class data instance data Object reference 1 ptr to class data instance data Class 2 data Object reference 2 Heap Method area

Fasi di esecuzione di un programma Java Scrittura e modifica Editor Utente crea file .java Disco Crea bytecode e li memorizza come .class Compilatore Compilazione Disco Class Loader Caricamento Memoria Primaria Legge i .class e li mette in memoria Disco Verificatore di Bytecode Memoria Primaria Verifica correttezza bytecode e vincoli sicurezza Verifica JVM Memoria Primaria Traduce bytecode in linguaggio comprensibile dalla macchina Esecuzione

Il Garbage Collector (GC) modalità automatica di gestione della memoria, mediante la quale un sistema operativo, o un compilatore e un modulo di run-time, liberano le porzioni di memoria che non dovranno più essere successivamente utilizzate dalle applicazioni Fonte: Wikipedia Alcuni linguaggi (C, C++) prevedono che sia il programmatore a implementarlo. Vs Java possiede sistema di garbage collection integrato nella JVM Lavora sulla zona Heap Previene due categorie di errori Dangling Pointer Memory Leak Rilascio erroneo di memoria ancora in uso Mancato rilascio di memoria non più accessibile

Java Platforms SUN sviluppa e rilascia 3 tipologie di piattaforme Java Java SE Java ME Java EE Standard Edition Micro Edition Enterprise Edition Versione 6 Versione 1.1 Versione 5 Applicazioni desktop Applicazioni mobile Applicazioni Server Noi lavoreremo su questa piattaforma Parte WEB

Architettura Java JRE (Java Runtimme Enviorment). Ambiente per lanciare applicazioni Java JDK (Java Developmet Kit). Pacchetto per sviluppare applicazioni Java

Preparare l’ambiente di sviluppo per Java 3 Step: Scaricare ed installare la JDK 1.6 Settare il CLASSPATH Scaricare ed installare l’IDE (facoltativo) http://www.eclipse.org/downloads/ http://java.sun.com/javase/downloads/index.jsp

Installare il JDK (1) Doppio click su file jdk-6u10-windows-i586-p.exe 2. Accettare la licenza 3. Click su Next

Installare il JDK (2) 4. Attendere la preparazione dell’installazione 5. Selezionare la cartella di destinazione

Installare il JDK (3) 6. Attendere il completamento dell’installazione 7. Click su finish

Verifichiamo la corretta installazione del JDK javac.exe compilatore java.exe interprete JVM ? Apriamo shell di dos: java -version

Settare il CLASSPATH 3c 1 2 3a 3b CLASSPATH: Variabile d’ambiente del SO che include tutte le cartelle contenenti file eseguibili da lanciare senza specificarne l’indirizzo ogni volta. 1 2 3a 3b 3c 3c: Aggiungere dopo “;” il path: C:\Programmi\Java\jdk1.6.0_10\bin Nb: Verificare che contenga il riferimento a “.”

Installare l’IDE Eclipse Integrated Development Environment Normalmente consiste in: un editor di codice sorgente, un compilatore e/o un interprete, un tool di building automatico, e (solitamente) un debugger Solo in versione commerciale, nato e sviluppato per lavorare in Java OpenSource, Free, sviluppato in Java da SUN, supporta alcuni linguaggi, adatto per applicazioni grafiche e web. OpenSource, Free, sviluppato in Java, supporta molti linguaggi, architettura a Plugin. Scompattare l’archivio

So far so good? Trasformiamoci in sviluppatori Java MA SENZA IDE!!! Apriamo il notepad e scriviamo: Nome della classe = Nome del file Salviamo il file con estensione .java Apriamo shell di DOS e posizioniamoci nella cartella in cui avete salvato il file 1) javac Test.java Ha creato Test.class? dir 2) java Test Hello World!

Cosa abbiamo appena scritto? Dichiarazione della classe Corpo Della Classe Dichiarazione del metodo main Chiamata al metodo println della classe System

APPLICAZIONI STAND ALONE APPLICAZIONI WEB (J2EE) I prodotti di Java APPLICAZIONI STAND ALONE APPLICAZIONI WEB (J2EE) APPLET Applicazione in formato jar installata in locale Applicazione Web con pagine html e classi Java Applicazione che gira all’interno del Browser java -jar app.jar HTML JAVA <applet> </applet> sandbox

Riassumiamo… …domande?