Java Tutorial - Parte 1
0.1
Un tutorial per esempi
Caricamento in corso...
Ricerca in corso...
Nessun risultato
Indice generale
Introduzione
A chi è rivolta questa guida
Una breve panoramica
Requisiti hardware,software e conoscenze richieste
Convenzioni stilistiche e sintattiche
I termini della licenza di questa guida
Crediti e ringraziamenti
Il log delle modifiche
Autori ed editori
L'elaborazione elettronica
Storia dei calcolatori
La struttura di un calcolatore
I mattoni fondamentali del calcolo elettronico
Il mondo digitale
I linguaggi
Il linguaggio Java
La sintassi formale del linguaggio
I tipi di dato
I tipi primitivi
Tipi di dato complessi
Gli operatori
L'operatore di assegnamento
Operatori di relazione
Operatori logici
Operatori aritmetici
Operatori di bitwise
Altri operatori di assegnamento
Operatori di scorrimento (<< e >>)
Strutture di controllo
L'istruzione if
Il costrutto switch
L'espressione switch
I cicli
Funzioni, procedure e metodi
Le arrays
Capacità di una array
Inizializzazione dell'array
Array bidimensionali
Il primo (inutile) programma
Strumenti necessari allo sviluppo
Ambienti integrati e tools CLI
Installer automatici
Installazione manuale
Verificare la installazione
Disinstallazione
Scriviamo il programma sorgente
La compilazione del sorgente
La esecuzione del programma
Un programma utile (MCM / MCD)
L'algoritmo di Euclide
Scriviamo i metodi mcm e mcd
Il metodo principale
Scrivere una suite di test
Come passare l'input al programma
Invitare l'utente a fornire i dati
La riga di comando
Scovare e correggere i bugs
Le eccezioni
La documentazione
Gli oggetti Java
Introduzione agli oggetti
Astrazione dei dati
I costruttori
Classi, oggetti ed istanze
Il garbage collector
I metodi di istanza
I metodi statici
I membri dati
I membri dati di istanza
L'operatore di uguaglianza di Java
I membri dati statici
La programmazione ad oggetti
Introduzione
La applicazione Geometry
Un primo approccio
I metodi
La classe Square
La classe base astratta
Il costruttore astratto
I metodi astratti
I metodi concreti (non astratti)
I metodi statici
La classe Ellipse
La classe Circle
La classe FigureBH
La classe Triangle
La classe Polygon
Il costruttore
I metodi astratti
Altri metodi concreti
La classe Polygon
La classe Geometry
L'operatore instanceof
La classe Object
Il disegno dei poligoni
Introduzione
I formati grafici
Il metodo astratto draw
Il metodo concreto drawInfo
Il disegno del rettangolo
Il disegno della ellisse
Il disegno del triangolo
Il disegno del poligono regolare
La applicazione Geomart
Le interfacce
Java è un linguaggio veloce?
Introduzione
I numeri primi
I tempi di Java
I tempi di Perl
I tempi del linguaggio C
Il build di un eseguibile
I risultati del test
Organizziamo i packages
Introduzione
Il conflitto dei nomi
I nomi di dominio Internet
La struttura di un package
Il contenuto del package
La interfaccia ListPrimes
Gli attributi di accesso
Il nome delle classi
I metodi getPrimesCount
I metodi getPrimesList
La condizione di Overflow
Arrays e Collections
Il metodo isPrime
Il metodo getKnownPrimes
La classe DivisionLoop
Il metodo getPrimesCount
Il metodo getPrimesList
Il metodo isPrime
Misuriamo le performances
Performance: la sintassi
Performance: gli algoritmi
Performance: il sorgente
Performance: compilazione
Il crivello di Eratostene
Introduzione
L'algoritmo
Le condizioni di overflow
La classe Crivello.java
Costruttore e membri dati
Il metodo getPrimesCount
Il metodo getPrimesList
Il metodo setaccia
I metodi extract e count
Il metodo isCancelled
Il metodo isPrime
Performances del crivello
Miglioriamo il crivello
Crivello2: il metodo setaccia
Il metodo getMaxLimit
il metodo isCancelled
Miglioriamo ulteriormente il crivello
Il metodo getMaxLimit
Il metodo setaccia
Il metodo extract
Un piccolo trucchetto
Le performances del crivello
Superare il limite dei 34 miliardi
Una applicazione nativa
Introduzione
Il crivello in "C"
I files sorgente
Compilare il sorgente "C"
I tempi del linguaggio C
La memoria dinamica
Interfacciamo Java ed i linguaggi nativi
CrivelloNative: la classe base
CrivelloNative: costruttore
CrivelloNative: metodi concreti
CrivelloNative: metodi astratti
Java Native Interface
Introduzione
Il nuovo package
Contenuto del package
Concetti generali della JNI
Il caricamento della libreria
I metodi astratti
I metodi nativi
Compilare la libreria dinamica
Misuriamo la velocità della JNI
Interfacciarsi con la JNI
Estrazione a livello byte
Estrazione con metodo callback
Una Java-array di ritorno dalla DLL
Il processo esterno
La classe CrivelloExtern
La eccezione ExecutionException
I risultati dei test
Foreign Function and Memory
Introduzione a FFM
I problemi di JNI
I segmenti di memoria
Memoria On-heap e Off-heap
La memoria e la Arena
Le funzioni native e gli handles
Il linker nativo
L'indirizzo della funzione
La firma della funzione
Il richiamo della funzione nativa
La libreria nativa
Il file header
Il file sorgente
Il build della libreria
La classe principale
CrivelloFFM: il costruttore
CrivelloFFM: il conteggio
I risultati del test di conteggio
Estrazione dei numeri primi
Estrazione con elaborazione a singolo bit
Estrazione con elaborazione a byte
Estrazione con elaborazione callback
Estrazione in un segmento di memoria
I metodi ristretti
Il crash della applicazione
Tips and tricks
Introduzione
Liberare le risorse
Debug vs Release
Appendici
I principali comandi del Prompt di MS-DOS
I principali comandi del terminale unix
Il complemento a due
Il metodo Object.equals
La endianess
Quando usare il cast esplicito
Il java debugger
La shell di Java
Generato da
1.12.0