JavaRush /Java Blog /Random-IT /Livello 32. Risposte alle domande dell'intervista sull'ar...
DefNeo
Livello 36

Livello 32. Risposte alle domande dell'intervista sull'argomento del livello

Pubblicato nel gruppo Random-IT
Livello 32. Risposte alle domande dell'intervista sull'argomento del livello - 1
  1. Perché è necessario RandomAccessFile?

    RandomAccessFileè una classe nel pacchetto API Java IO, ti consente di navigare, leggere o scrivere su un file come preferisci. Puoi anche sostituire parti esistenti di un file; stiamo parlando di aggiornare il contenuto di un file, o più precisamente di aggiornare un frammento di un file. Questo non può essere fatto con FileInputStreamo FileOutputStream, ma RandomAccessFileti darà questa capacità.

    Collegamento: RandomAccessFile e le sue funzionalità

  2. Cosa succede se il file da cui si legge RandomAccessFilenon esiste?

    VolereFileNotFoundException

  3. Cosa succede se il file in cui scrive RandomAccessFilenon esiste?

    Ne creerà uno nuovo e lo scriverà su di esso.

  4. Perché abbiamo bisogno di una lezione StringReader?

    La classe Java.io.StringReader è un flusso di caratteri la cui origine è una stringa.

    Rappresenta un flusso di caratteri la cui origine è denominata stringa

  5. Perché abbiamo bisogno di una lezione StringWriter?

    public class StringWriter
    extends Writer

    Un flusso di caratteri che raccoglie il proprio output in un buffer di stringhe, che può quindi essere utilizzato per costruire una stringa.

    La chiusura di uno StringWriter non ha alcun effetto. I metodi di questa classe possono essere chiamati dopo che il flusso è stato chiuso senza generare una IOException.

    Un flusso di caratteri che raccoglie il proprio flusso in un buffer di stringhe, che può quindi essere utilizzato per creare una stringa.

  6. Perché abbiamo bisogno di una lezione ByteArrayStream?

    Così ByteArrayInputStreame ByteArrayOutputStream.

    Queste classi sono essenzialmente simili a StringReadere < code="">. Legge solo StringReadercaratteri (char) da una stringa (String), ma ByteArrayInputStreamlegge byte da un array di byte (ByteArray). <>

    StringWriterha scritto caratteri (char) in una stringa, ma ByteArrayOutputStreamscrive byte in un array di byte al suo interno. Durante la scrittura su di StringWriteresso, la stringa al suo interno si allungava e durante la scrittura sul ByteArrayOutputStreamsuo array interno, anche il byte si espandeva dinamicamente.

  7. Perché abbiamo bisogno di una lezione PrintStream? Quali sono i luoghi in cui viene utilizzato?

    La classe PrintStreamè stata inventata per visualizzare le informazioni in modo leggibile. Consiste quasi interamente in metodi printe println.

  8. Perché è necessario DynamicProxy?

    Java ha una classe speciale (java.lang.reflect.Proxy) con la quale puoi effettivamente costruire un oggetto in fase di esecuzione (dinamicamente) senza creare una classe separata per esso.

  9. Come funziona l'RMI?

    RMI sta per Invocazione del metodo remoto. O in altre parole, RMI è un meccanismo che consente a un oggetto in una macchina Java di richiamare i metodi di un oggetto in un'altra macchina Java, anche se si trovano su computer diversi, in paesi diversi, su parti diverse del globo.

    L'approccio tradizionale all'esecuzione del codice su altre macchine in una rete può creare confusione a causa della sua implementazione noiosa e soggetta a errori. Il modo migliore per considerare questo problema è presupporre che alcuni oggetti si trovino su un'altra macchina e che sia possibile inviare messaggi a questi oggetti remoti e ricevere il risultato come se si trovassero sulla macchina locale. Questa semplificazione è esattamente ciò che la Remote Method Invocation (RMI) ti consente di fare in Java.

    Ecco un articolo sulla creazione della tua implementazione RMI: Remote Method Invocation (RMI)

  10. Quali tipi di oggetti possono essere trasferiti tramite RMI?

    Gli oggetti devono implementare un'interfacciaSerializable

    L'invocazione del metodo remoto è un meccanismo che consente di chiamare un metodo su un oggetto remoto. Secondo esso, tutte le operazioni per la preparazione e la trasmissione dei dati sono incapsulate in un metodo chiamato dell'oggetto stub del client. La chiamata al metodo in sé non è diversa dalla chiamata a un metodo su un normale oggetto locale, con alcune eccezioni:

    • gli oggetti locali vengono passati per valore (copie);
    • quando si trasferisce un Remoteoggetto remoto ( ), se viene esportato, viene trasferito lo stub di questo oggetto;
    • gli oggetti passati devono essere Serializable;
    • oltre a tutte le altre situazioni eccezionali, quando si chiama un metodo remoto, può essere sollevata un'eccezione RemoteException(errori di marshalling/unmarshalling, errori di trasferimento dati e altri possibili errori di protocollo);

    Va anche notato che quando chiamiamo un metodo, lavoriamo con un'interfaccia remota e non con una classe remota.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION