Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30

    Dubbi sul java ed esercizi

    Ragazzi posso chiedervi alcune cose sul java (sto studiando alcune cose iniziali)

    1 Ai metodi static non si applica in dynamic method dispatch
    2 non tutti i tipi di eccezione estendono la classe runtimeexception
    3 la dichiarazione di un oggetto e la sua creazione possono essere svolte in tempi diversi.
    4 la dimensione di un array deve essere indiciata al momento della dichiaraizone dell'array
    5 nell'overloading due metodi possono avere lo stesso nome e lo stesso numero di parametri

    qualè quella falsa? la 5?


    inoltre come faccio a capire come funziona il garbage collection e vedere in un codice quanti oggetti posso essere deallocati? c'è un metodo?


    ad esempio in questo codice:

    1800442_10202465002978089_1292304213_n.jpg




    ultima domanda:

    quando creo un codice del tipo

    MyExc1 extends Exception
    MyExc2 extends MyExc3

    try

    catch

    sytem.out.print


    ecc ecc.

    è possibile che se non ci siano errori, la stampa possa essere vuota? come è possibile?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da neo999 Visualizza il messaggio

    ultima domanda:

    quando creo un codice del tipo

    MyExc1 extends Exception
    MyExc2 extends MyExc3

    try

    catch

    sytem.out.print


    ecc ecc.

    è possibile che se non ci siano errori, la stampa possa essere vuota? come è possibile?
    Cosa vuol dire? O_o
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Cosa vuol dire? O_o

    ad esempio questo codice netbeans restituisce output vuoto (stampa vuoto). perchè? qual'è la spiegazione?

    codice:
    package c1;
    class MyExc1 extends Exception {}
    class MyExc2 extends MyExc1 {}
    class MyExc3 extends Exception {} 
    public class C1 {    
        public static void main(String[] args) 
         throws Exception{
         try{
               q();
                System.out.print(1);     
             }
            catch (MyExc1 k){              
             }
          catch (MyExc3 x){
              System.out.print(2);
          }     
          }  
    static void q() throws Exception{
            try{
              throw (new MyExc3());
            }        
    catch (MyExc3 j){
        throw (new MyExc1());
    }
            catch (Exception w){
                System.out.print(3);
            }
            finally {
                throw (new MyExc2());
            }
    }
    }

    Per le altre domane qualcuno sa qualcosa? grazie
    Ultima modifica di neo999; 20-02-2014 a 23:02

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da neo999 Visualizza il messaggio
    1 Ai metodi static non si applica in dynamic method dispatch
    2 non tutti i tipi di eccezione estendono la classe runtimeexception
    3 la dichiarazione di un oggetto e la sua creazione possono essere svolte in tempi diversi.
    4 la dimensione di un array deve essere indiciata al momento della dichiaraizone dell'array
    5 nell'overloading due metodi possono avere lo stesso nome e lo stesso numero di parametri

    qualè quella falsa? la 5?
    No. Nel overloading il nome dei metodi è lo stesso (altrimenti non sarebbe overload!) e possono avere lo stesso numero di parametri .... ma a parità di numero devono avere tipi differenti.

    Riprova.


    Quote Originariamente inviata da neo999 Visualizza il messaggio
    ad esempio questo codice netbeans restituisce output vuoto (stampa vuoto). perchè? qual'è la spiegazione?
    q lancia MyExc3 ma c'è subito il catch (sempre in q) di MyExc3 che lancia MyExc1 però c'è un finally che lancia MyExc2 (che estende MyExc1) quindi q esce lanciando MyExc2 (MyExc1 di prima viene "persa"). E in main il catch di MyExc1 cattura anche MyExc2 e non fa nulla.
    Ultima modifica di andbin; 21-02-2014 a 00:15
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    grazie mille.

    quindi la numero 5 è vera?

    allora per esclusione quella falsa potrebbe essere la 4?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Quote Originariamente inviata da neo999 Visualizza il messaggio
    grazie mille.

    quindi la numero 5 è vera?

    allora per esclusione quella falsa potrebbe essere la 4?
    come dice andbin (io avevo sonno quando ho scritto) la 4 è falsa. Dichiarazione e inizializzazione sono 2 cose separate.
    codice:
    public static void main(String[] args) {        byte[] array ; 
            
            System.out.println("ciao"); 
            
            array = "ciao".getBytes();
            
        }
    puoi anche dichiarare un array (byte [] array), l'importante è che prima di usarlo lo inizializzi a dovere.

    Per intenderci anche questo codice è valido

    codice:
    public static void main(String[] args) {
            byte[] array = new byte [5]; 
            
            System.out.println("ciao"); 
            
            array = "ciao".getBytes();
            
        }

    la differenza sta che nel primo caso dichiaro l'array e poi lo valorizzo con un metodo, nel secondo caso lo inizializzo direttamente.

    Ricorda che se devi fare una inizializzazione statica (es. valori tra graffe), questa va fatta insieme alla dichiarazione:

    codice:
        public static void main(String[] args) {
            byte[] array = {0x00, 0x01};
            
            System.out.println("ciao"); 
            
            array = "ciao".getBytes();
            
        }
    e non separata

    codice:
    public static void main(String[] args) {
            byte[] array ;
            
            System.out.println("ciao"); 
            
            array =  {0x00, 0x01}; // illegale
        }
    Ultima modifica di valia; 21-02-2014 a 10:45 Motivo: corretto...stavo dormendo, sorry
    RTFM Read That F*** Manual!!!

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da neo999 Visualizza il messaggio
    allora per esclusione quella falsa potrebbe essere la 4?
    Sì, è la 4 quella falsa! Parla solo di "dichiarazione".

    Questa è una dichiarazione:

    int[] arr;

    Qui non puoi indicare una dimensione (es. int[10] arr; no!).

    È solo nella istanziazione di un array che puoi indicare una dimensione. Con l'array 'arr' di prima:

    arr = new int[10];

    oppure combinata nello stesso punto della dichiarazione (è una inizializzazione):

    int[] arr = new int[10];
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    grazie mille a tutti gentilissimi.

    il dubbio più grande che mi resta è sul garbage collection. ad esempio nel codice/esercizio che ho postato nella foto al primo post, come si capisce quanti oggetti sono eleggibili per il GC e la deallocaizone di memoria?

    La risposta dovrebbe essere due...ma perchè? come lo capisco?

    grazie a tutti

  9. #9
    Utente di HTML.it L'avatar di neo999
    Registrato dal
    Dec 2010
    Messaggi
    30
    Quote Originariamente inviata da neo999 Visualizza il messaggio
    grazie mille a tutti gentilissimi.

    il dubbio più grande che mi resta è sul garbage collection. ad esempio nel codice/esercizio che ho postato nella foto al primo post, come si capisce quanti oggetti sono eleggibili per il GC e la deallocaizone di memoria?

    La risposta dovrebbe essere due...ma perchè? come lo capisco?

    grazie a tutti
    up (grazie)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.