39 Questions
Che cosa significa l'acronimo UML?
Unified Modeling Language
Cos'è il diagramma delle classi in UML?
Visualizza le classi del sistema, i loro attributi e metodi, e le relazioni tra di esse
Qual è il nome del diagramma UML che mostra le relazioni tra i componenti del sistema?
Diagramma dei componenti
Cosa rappresenta il diagramma di stato in UML?
Lo stato di un oggetto e le transizioni che avvengono tra gli stati in risposta agli eventi
Quale è lo scopo principale di UML?
Descrivere, progettare e documentare i sistemi software
Che cos'è una classe in programmazione?
Una struttura di dati che contiene attributi e metodi
Cos'è il diagramma di sequenza in UML?
Illustra la sequenza temporale degli eventi e delle chiamate di metodo durante l'interazione tra gli oggetti
Quale è il nome del diagramma UML che organizza i componenti in pacchetti e mostra le dipendenze tra di essi?
Diagramma dei package
Dove viene allocato di solito un oggetto quando viene creato?
Nello spazio Eden
Cosa accade durante la fase di Minor GC?
Gli oggetti non più utilizzati vengono eliminati
Dove vengono mantenuti gli oggetti con una durata di vita più lunga?
Nella Generazione Vecchia
Che cosa è un Minor GC?
Una fase di garbage collection che coinvolge la Generazione Giovane
Quale è lo scopo del metodo finalize()?
Eseguire operazioni di pulizia o rilascio di risorse
Perché il metodo finalize() è stato deprecato a partire da Java 9?
Perché aveva implicazioni negative sulle prestazioni
Cosa accade durante la fase di Major GC?
Gli oggetti non più referenziati vengono raccolti e liberati
Qual è il vantaggio di dividere la gestione della memoria in due generazioni?
La gestione della memoria diventa più efficiente
In Java, se una classe non ha una dichiarazione di package all'inizio del file sorgente, significa che?
Appartiene al package di default
Quale package Java contiene le classi fondamentali per la programmazione di base?
java.lang
Quale package Java fornisce classi per la gestione di collezioni di dati?
java.util
Quale package Java contiene classi per l'input e l'output di dati?
java.io
Quale package Java fornisce supporto per la programmazione concorrente e multithreading?
java.util.concurrent
Quale package Java fornisse API per l'accesso e la gestione dei database relazionali?
java.sql
Quale package Java contiene classi per la creazione di GUI?
java.awt e javax.swing
Perché le classi del package java.lang sono importate implicitamente in tutti i file sorgente Java?
Perché sono fondamentali per la programmazione di base
Che cos'è una classe base in Java?
Una classe esistente da cui una nuova classe deriva il comportamento
Quale parola chiave viene utilizzata per dichiarare che una classe deriva da un'altra classe?
extends
Cosa accade quando viene creata una nuova istanza di una classe derivata?
Il costruttore della superclasse viene chiamato implicitamente
Cos'è l'astrazione nella programmazione?
La capacità di concentrarsi sui dettagli rilevanti di un sistema, mentre si ignorano quelli non essenziali
Quale è il ruolo fondamentale dell'astrazione nel software?
Facilitare lo sviluppo, la comprensione e la manutenzione del software
Quali sono alcuni motivi per cui l'astrazione è importante?
Riduzione della complessità, semplificazione del design e riuso del codice
Quale parola chiave viene utilizzata per fare riferimento ai membri della superclasse all'interno della classe derivata?
super
Come funzionano le classi e gli oggetti nella programmazione orientata agli oggetti?
Rappresentano concetti del mondo reale in entità software con attributi e comportamenti specifici
Quale è il limite della ereditarietà in Java?
Una classe può estendere solo una classe
Cosa è una classe derivata?
Una nuova classe che estende una classe base
Che cosa definiscono le interfacce?
Un contratto di comportamento per le classi che le implementano
Che cosa accade se la superclasse non ha un costruttore predefinito senza argomenti?
Il costruttore della classe derivata deve chiamare esplicitamente uno dei costruttori della superclasse
Come funzionano le funzioni e i metodi nell'astrazione?
Astraggono un'azione specifica, permettendo di riutilizzarla in più parti del codice
Cos'è un Tipo di Dato Astratto (ADT)?
Un insieme di valori e le operazioni che possono essere eseguite su di essi, nascondendo i dettagli di implementazione
Quale è il beneficio di utilizzare l'astrazione nella programmazione?
Semplificare la complessità del sistema e favorire la modularità
Study Notes
Astrazione
- L'astrazione è un concetto fondamentale nella programmazione e nell'ingegneria del software.
- Permette di concentrarsi sui dettagli rilevanti di un oggetto, un sistema o un processo, mentre si ignorano quelli non essenziali.
- L'astrazione:
- Riduce la complessità
- Semplifica il design
- Consente il riuso del codice
Meccanismi di Astrazione
- Classi e oggetti: consentono di astrarre concetti del mondo reale in entità software.
- Interfacce: definiscono un contratto di comportamento per le classi che le implementano, fornendo un livello di astrazione che nasconde i dettagli di implementazione sottostanti.
- Funzioni e metodi: astraggono un'azione specifica, permettendo di riutilizzarla in più parti del codice senza ripetere lo stesso codice.
- Tipi di dati astratti (ADT): astraggono un insieme di valori e le operazioni che possono essere eseguite su di essi, nascondendo i dettagli di implementazione.
UML
- UML (Unified Modeling Language) è un linguaggio standardizzato per descrivere, progettare e documentare i sistemi software.
- Fornisce una serie di diagrammi grafici, ognuno dei quali rappresenta un aspetto specifico del sistema.
- I principali diagrammi UML includono:
- Diagramma delle classi
- Diagramma degli oggetti
- Diagramma di sequenza
- Diagramma di stato
- Diagramma dei componenti
- Diagramma dei package
Java Packages
- Java include diverse librerie standard organizzate in package, che forniscono funzionalità essenziali per lo sviluppo di applicazioni.
- Alcuni dei principali package forniti da Java:
- java.lang
- java.util
- java.io
- java.awt e javax.swing
- java.util.concurrent
- java.sql e javax.sql
Gestione della Memoria
- Quando un oggetto viene creato, di solito viene allocato nello spazio Eden.
- Quando Eden si riempie, scatta una fase di "garbage collection" chiamata Minor GC.
- Gli oggetti che resistono a diversi cicli di Minor GC vengono spostati tra i due Survivor Spaces fino a quando raggiungono una certa età, dopodiché vengono promossi alla Generazione Vecchia.
- La Generazione Vecchia è dove gli oggetti con una durata di vita più lunga vengono mantenuti.
- La garbage collection che coinvolge la Generazione Vecchia è chiamata Major GC o Full GC.
Metodo finalize()
- Il metodo finalize() nella gestione della memoria della JVM è utilizzato per eseguire operazioni di pulizia o rilascio di risorse prima che un oggetto venga distrutto.
- Tuttavia, a partire da Java 9, il metodo finalize() è deprecato a causa delle sue implicazioni negative sulle prestazioni e della sua imprevedibilità.
Ereditarietà
- Consente la creazione di nuove classi basate su classi esistenti, estendendone o specializzandone il comportamento.
- In Java, l'ereditarietà viene implementata utilizzando le parole chiave extends e super.
- I concetti chiave:
- Classe Base (Superclasse)
- Classe Derivata (Sottoclasse)
- Parola chiave extends
- Costruttore della Superclasse
- Override di Metodi
- Parola chiave super
Impara l'importanza dell'astrazione nella programmazione e l'ingegneria del software, compresi i metodi e meccanismi dietro a questo concetto fondamentale.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free