JavaRush /Blog Java /Random-ES /Nivel 32. Respuestas a las preguntas de la entrevista sob...
DefNeo
Nivel 36

Nivel 32. Respuestas a las preguntas de la entrevista sobre el tema del nivel.

Publicado en el grupo Random-ES
Nivel 32. Respuestas a las preguntas de la entrevista sobre el tema del nivel - 1
  1. ¿Por qué es necesario RandomAccessFile?

    RandomAccessFilees una clase en el paquete Java IO API, le permite navegar, leer o escribir en un archivo como desee. También puedes reemplazar partes existentes de un archivo; estamos hablando de actualizar el contenido de un archivo, o más precisamente de actualizar un fragmento de un archivo. Esto no se puede hacer con FileInputStreamo FileOutputStream, pero RandomAccessFilete dará esta habilidad.

    Enlace: RandomAccessFile y sus capacidades

  2. ¿Qué pasa si el archivo del que lee RandomAccessFileno existe?

    VoluntadFileNotFoundException

  3. ¿Qué pasa si el archivo donde escribe RandomAccessFileno existe?

    Creará uno nuevo y lo escribirá en él.

  4. ¿ Por qué necesitamos una clase StringReader?

    La clase Java.io.StringReader es un flujo de caracteres cuya fuente es una cadena.

    Representa una secuencia de caracteres cuyo origen se llama cadena.

  5. ¿ Por qué necesitamos una clase StringWriter?

    public class StringWriter
    extends Writer

    Un flujo de caracteres que recopila su salida en un búfer de cadena, que luego puede usarse para construir una cadena.

    Cerrar un StringWriter no tiene ningún efecto. Los métodos de esta clase se pueden llamar después de que se haya cerrado la secuencia sin generar una IOException.

    Una secuencia de caracteres que recopila su secuencia en un búfer de cadenas, que luego puede usarse para crear una cadena.

  6. ¿ Por qué necesitamos una clase ByteArrayStream?

    ByteArrayInputStreamY entonces ByteArrayOutputStream.

    Estas clases son esencialmente similares StringReadery < code="">. Solo StringReaderlee caracteres (char) de una cadena (String), pero ByteArrayInputStreamlee bytes de una matriz de bytes (ByteArray). <>

    StringWriterescribió caracteres (char) en una cadena, pero ByteArrayOutputStreamescribe bytes en una matriz de bytes dentro de ella. Al escribir en StringWriterél, la cadena dentro de él se alargó y al escribir en ByteArrayOutputStreamsu matriz interna, el byte también se expandió dinámicamente.

  7. ¿ Por qué necesitamos una clase PrintStream? ¿Nombra los lugares donde se usa?

    La clase PrintStreamfue inventada para mostrar información de manera legible. Se compone casi en su totalidad de métodos printy println.

  8. ¿Por qué es necesario DynamicProxy?

    Java tiene una clase especial (java.lang.reflect.Proxy) con la que puedes construir un objeto en tiempo de ejecución (dinámicamente) sin crear una clase separada para él.

  9. ¿Cómo funciona RMI?

    RMI significa Invocación de método remoto. O en otras palabras, RMI es un mecanismo que permite que un objeto en una máquina Java llame a métodos de un objeto en otra máquina Java, incluso si están en diferentes computadoras, en diferentes países, en diferentes lados del mundo.

    El enfoque tradicional para ejecutar código en otras máquinas a través de una red puede resultar confuso debido a su implementación tediosa y propensa a errores. La mejor manera de pensar en este problema es asumir que algunos objetos están ubicados en otra máquina y que puede enviar mensajes a estos objetos remotos y recibir el resultado como si estuvieran ubicados en su máquina local. Esta simplificación es exactamente lo que la Invocación de método remoto (RMI) le permite hacer en Java.

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

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

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

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

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

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

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