lezione 01

struttura progetto java

classi, package, classpath e jvm in modo chiaro.

livello: base durata: 18 min output: primo progetto badge: java essentials

struttura cartelle

project/
  src/
    Main.java

inizia semplice: una cartella src e una classe principale.

package

package studio.buzatu;

public class Main {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}

il package allinea la struttura del progetto con i namespace.

classpath

compila indicando il package, poi esegui con il classpath corretto.

javac -d out src/studio/buzatu/Main.java
java -cp out studio.buzatu.Main

eseguire

  • compila con javac
  • esegui con java
  • usa un build tool quando il progetto cresce

tip: passa a maven o gradle quando hai dipendenze esterne.

build tools

maven e gradle gestiscono dipendenze, build e test. usa una struttura standard.

mvn -v
gradle -v
mvn archetype:generate

esercizi

crea un progetto con package studio.buzatu e una classe Main che stampa una lista di tre nomi.

package studio.buzatu;

public class Main {
    public static void main(String[] args) {
        String[] nomi = {"samir", "studio", "buzatu"};
        for (String nome : nomi) {
            System.out.println(nome);
        }
    }
}

panoramica

In questo capitolo su struttura progetto java, classi, package, classpath e jvm in modo chiaro. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: java essentials

obiettivi

  • capire e applicare struttura cartelle in uno scenario reale
  • capire e applicare package in uno scenario reale
  • capire e applicare classpath in uno scenario reale
  • capire e applicare eseguire in uno scenario reale

scheda rapida

import java.util.List;

public class Main {
  public static void main(String[] args) {
    var dati = List.of(1, 2, 3);
    var out = dati.stream().map(x -> x * 2).toList();
    System.out.println(out);
  }
}

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • organizza package per dominio
  • preferisci immutabilità dove possibile
  • documenta le API pubbliche
  • mantieni un Main snello
  • usa package coerenti
  • compila con target JVM corretto

tip: Una struttura pulita riduce il costo di ogni refactor.

mini progetto

Crea un progetto con package app e domain.

  • definisci la classe Main
  • aggiungi ProjectInfo in domain
  • stampa info
  • compila ed esegui

output atteso: uno script o query ripetibile con risultati verificabili.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief