JavaRush /Blogue Java /Random-PT /Nível 32. Respostas às perguntas da entrevista sobre o tó...
DefNeo
Nível 36

Nível 32. Respostas às perguntas da entrevista sobre o tópico do nível

Publicado no grupo Random-PT
Nível 32. Respostas às perguntas da entrevista sobre o tema do nível - 1
  1. Por que é necessário RandomAccessFile?

    RandomAccessFileé uma classe do pacote Java IO API, que permite navegar, ler ou gravar em um arquivo como desejar. Você também pode substituir partes existentes de um arquivo; estamos falando de atualizar o conteúdo de um arquivo, ou mais precisamente de atualizar um fragmento de um arquivo. Isso não pode ser feito com FileInputStreamou FileOutputStream, mas RandomAccessFilelhe dará essa habilidade.

    Link: RandomAccessFile e seus recursos

  2. O que acontece se o arquivo do qual ele lê RandomAccessFilenão existir?

    VaiFileNotFoundException

  3. O que acontece se o arquivo onde ele escreve RandomAccessFilenão existir?

    Ele criará um novo e gravará nele.

  4. Por que precisamos de uma aula StringReader?

    A classe Java.io.StringReader é um fluxo de caracteres cuja origem é uma string.

    Representa um fluxo de caracteres cuja origem é chamada de string

  5. Por que precisamos de uma aula StringWriter?

    public class StringWriter
    extends Writer

    Um fluxo de caracteres que coleta sua saída em um buffer de string, que pode então ser usado para construir uma string.

    Fechar um StringWriter não tem efeito. Os métodos nesta classe podem ser chamados após o fluxo ter sido fechado sem gerar uma IOException.

    Um fluxo de caracteres que coleta seu fluxo em um buffer de strings, que pode então ser usado para criar uma string.

  6. Por que precisamos de uma aula ByteArrayStream?

    Então ByteArrayInputStreame ByteArrayOutputStream.

    Essas classes são essencialmente semelhantes StringReadere < code="">. Ele lê apenas StringReadercaracteres (char) de uma string (String), mas ByteArrayInputStreamlê bytes de uma matriz de bytes (ByteArray). <>

    StringWriterescreveu caracteres (char) em uma string, mas ByteArrayOutputStreamgrava bytes em uma matriz de bytes dentro dela. Ao gravar StringWriternele, a string dentro dele aumentava e, ao gravar em ByteArrayOutputStreamseu array interno, o byte também se expandia dinamicamente.

  7. Por que precisamos de uma aula PrintStream? Cite os locais onde é usado?

    A classe PrintStreamfoi inventada para exibir informações de maneira legível. Consiste quase inteiramente em métodos printe println.

  8. Por que é necessário DynamicProxy?

    Java possui uma classe especial (java.lang.reflect.Proxy) com a qual você pode realmente construir um objeto em tempo de execução (dinamicamente) sem criar uma classe separada para ele.

  9. Como funciona o RMI?

    RMI significa Invocação de Método Remoto. Ou em outras palavras, RMI é um mecanismo que permite que um objeto em uma máquina Java chame métodos de um objeto em outra máquina Java, mesmo que estejam em computadores diferentes, em países diferentes, em lados diferentes do globo.

    A abordagem tradicional para executar código em outras máquinas em uma rede pode ser confusa devido à sua implementação tediosa e propensa a erros. A melhor maneira de pensar sobre esse problema é assumir que alguns objetos estão localizados em outra máquina, e que você pode enviar mensagens para esses objetos remotos e receber o resultado como se eles estivessem localizados na sua máquina local. Essa simplificação é exatamente o que a Invocação de Método Remoto (RMI) permite fazer em Java.

    Вот статья по созданию собственной реализации RMI: Удаленный вызов методов (RMI)

  10. Объекты Howих типов можно передавать по RMI?

    Объекты должны имплементировать интерфейс Serializable

    Remote method Invocation — механизм, который позволяет вызывать метод удалённого an object. Согласно ему, все операции по подготовке и передаче данных инкапсулируются в вызываемом методе клиентского an object-заглушки (stub). Сам же вызов метода ничем не отличается от вызова метода обычного локального an object, за небольшим исключением:

    • локальные an objectы передаются по значению (копии);
    • при передаче удалённого (Remote) an object, если он экспортирован, передаётся stub этого an object;
    • передаваемые an objectы должны быть Serializable;
    • кроме всех прочих исключительных ситуаций, при вызове удалённого метода может возбуждаться исключение RemoteException (ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);

    Так же нужно отметить, что при вызове метода мы работаем с удалённым интерфейсом, а не с удалённым классом.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION