venerdì 30 aprile 2010

Java Base

Ripubblico qui una guida alle basi del linguaggio Java che ho scritto un po' di tempo fa.

Essendo del 2006 prendete quello che c'è scritto qui dentro con beneficio di inventario - anche se è sostanzialmente corretto.

Al link seguente trovate la guida in formato HTML, leggibile e scaricabile, l'archivio con un file HTML per ognuno dei 10 capitoli, e la guida in formato PDB per Plucker.






Una piccola correzione:

Nella sezione Classi annidate, “inner” e “nested” sono considerati sinonimi. In realtà le classi nested sono genericamente definite nel corpo di un'altra classe o interfaccia, mentre le classi inner sono classi nested non statiche. Una spiegazione dettagliata del tutto si può trovare nelle specifiche ufficiali: http://java.sun.com/docs/books/jls/third_edition/html/classes.html - introduzione, secondo paragrafo, e capitolo 8.1.3, primo paragrafo. Grazie a PGI-Bis del forum di Hardware Upgrade per i chiarimenti.

Novità! Ho reso disponibile la guida come singolo file HTML - in fondo alla pagina trovate anche il link per scaricarlo.

Novità2! Se vi interessa JavaCC - ovvero come creare automaticamente parser in java - ho scritto un piccolo tutorial, qui:






Sperando che sia utile a qualcuno, alla prossima!

4 commenti:

  1. ciao ho visto che usi Java... mi servirebbe una mano, nel creare una piccola classe ...

    Guarda se puoi aiutarmi , mi basta vedere una classe che:

    - dato un file "nomefileuno.txt ", e su questo file sono presenti 3 numeri per ogni linea , e ci sono 5 linee.

    - genera un altro file "nomefiledue.txt" che contiene il numero più grande , dei numeri presenti in "nomefileuno.txt" .

    te ne sarei molto grato, sto cercando un esempio di un esercizio simile svolto ovunque , e non ho trovato niente.

    RispondiElimina
  2. Potresti usare due Scanner
    http://sites.google.com/site/luomoradioattivo/javabase#scanner

    Con uno leggi una linea alla volta dal file (a proposito, senza selezionare il delimitatore come nella guida puoi usare i metodi sc.hasNextLine() e sc.nextLine() ),
    e con l'altro leggi i numeri dal file (per questo usa hasNext() e next(), se i numeri sono stringhe).

    In realtà potresti usare un solo scanner con delimitatore whitespace+newline...

    RispondiElimina
  3. mmm... so di chiederti troppo ma se mi butteresti giù queste due righe di codice mi aiuteresti a capire meglio...


    IO ho provato a farlo in questo modo(senza tenere in considerazione però il num di parole presenti sulle righe, ed il numero delle righe).



    Public class EsempioFile{

    File f = new File(nomeFile);

    //creo una linkedlist dove salvare i numeri
    LinkedList Lista= new LinkedList();

    String Linea=null;

    if (f.exists()) {
    BufferedReader Br= new BufferedReader(new FileInputStream(f));
    for(;;){
    Linea=Br.readLine();//leggo quello che c’è sulla linea(qui ho dei dubbi)
    If(Linea==null)break;
    Lista.add(Integer.parseInt(Linea)); //aggiungo i numeri presenti sulla linea nella linkedlist

    } //chiudo il for

    Br.close();
    } //chiudo l’if

    //Ora salvo i numeri in un nuovo File “filedue”(qui ho forti dubbi)


    Iterator it=Lista.iterator();
    //richiamo l’iteratore della linked list

    PrintStream due=new PrintStream(new File(“filedue”);
    while(it.hasNext()){
    due.println(it.next());
    }//while


    }//chiudo la classe

    RispondiElimina
  4. Questo commento è stato eliminato dall'autore.

    RispondiElimina

I commenti sono moderati