In questa seconda parte della mia Guida al costrutto “for-each” descriverò l’utilizzo del ciclo for-each con gli array. Come ho già anticipato nella precedente introduzione, il for-each può operare su array di qualunque tipo, sia di tipo primitivo che di tipo reference.
Archivi categoria: Java
Java – Un caso di deadlock con join() di Thread
Un po’ di mesi fa ho risposto ad una questione relativa a Java su un forum in cui un utente chiedeva sostanzialmente la seguente cosa: se un thread A acquisisce il lock su un oggetto X e mantenendo questo lock fa un join()
su un thread B, si rischia di causare un deadlock? L’utente inoltre domandava anche se il join()
rilascia il lock sull’oggetto.
Dal momento che è uno scenario un pochino particolare e interessante, credo sia utile descriverlo meglio in dettaglio.
Java – Generare valori “casuali” con una certa probabilità
Nel precedente articolo Generazione di numeri “casuali” ho descritto le funzionalità che il framework standard di Java mette a disposizione per generare dei numeri “casuali”.
Ci possono essere delle situazioni particolari in cui c’è bisogno di estrarre dei valori casuali che abbiano una certa probabilità specifica di uscita. Esistono due esempi molto classici: la moneta “truccata” e il dado “truccato”. In questo articolo descriverò questi due casi mostrando anche del codice concreto di prova.
Java – Guida al costrutto “for-each”: introduzione
Questa prima parte della mia Guida al costrutto “for-each” serve per fornire una introduzione generale al costrutto for-each disponibile da Java 5. Il contenuto di questo articolo è più che altro “discorsivo” e teorico ma serve come base per il resto della guida.
Java – Guida al costrutto “for-each”
L’uscita di Java 5, avvenuta nel lontano 2004, aveva portato un gran numero di novità molto importanti tra cui i generics, le annotation, le enum e svariate altre funzionalità. Tra queste novità c’è stata anche la introduzione di un nuovo tipo di ciclo “for” che nella documentazione ufficiale è denominato enhanced for (“for migliorato”) ma viene generalmente chiamato in maniera più amichevole e informale for-each (o senza trattino, for each). Questo termine, tra l’altro, è usato anche in altri linguaggi e contesti quindi è facilmente riconoscibile e comprensibile.
Java – Variabili locali con “var” da Java 10
Java 10 ha introdotto una piccola ma interessante novità nel linguaggio. Si tratta della possibilità di usare la parola “var” per dichiarare le variabili locali senza dover specificare il tipo, sfruttando in pratica un meccanismo di “inferenza” (deduzione) del tipo ad opera del compilatore.
Java – Avviare ricerca internet con il browser predefinito
In una applicazione Java “desktop” di tipo grafico (o al limite una applicazione “console”) potrebbe essere necessario, in qualche caso, lanciare un browser esterno per aprire la pagina con i risultati della ricerca su internet fatta tramite uno specifico “motore di ricerca” (es. Google o Bing, giusto per citarne due noti).
Java – Generazione di numeri “casuali”
Poter generare numeri “casuali” è una necessità che si può avere in svariati tipi di applicazioni, ad esempio in ambito matematico/scientifico ma anche, più banalmente, in applicazioni a scopo ludico o didattico (es. giochi, quiz, ecc...).
Il framework standard di Java fornisce già diverse possibilità per la generazione di numeri casuali. L’obiettivo di questo articolo è di descrivere queste funzionalità con l’aiuto di alcuni esempi pratici.
Java – Il limit dello split per le stringhe
A partire dalla release 1.4 di Java la classe String
ha due metodi split
che permettono di spezzare una stringa sfruttando il meccanismo delle regular expression (espressioni regolari), introdotte anch’esse in Java 1.4. L’uso di questi split
mi ha talvolta causato dubbi/disagi ma non per il concetto stesso di “split” o per l’uso delle espressioni regolari. No, per un altro motivo: il concetto “extra” del limit che è stato volutamente aggiunto nello split. E ogni volta devo andare a rileggere la documentazione javadoc per ricordarmi la logica di questo limit ...
Java – Il metodo toString degli oggetti
Questo articolo descrive il concetto del metodo toString
degli oggetti in Java. È un argomento estremamente basilare nella programmazione Java ma è anche molto importante da conoscere bene, specialmente per chi sta iniziando da poco tempo a sviluppare in Java.