JavaRush /Java 博客 /Random-ZH /第 32 级。有关该级别主题的面试问题的答案
DefNeo
第 36 级

第 32 级。有关该级别主题的面试问题的答案

已在 Random-ZH 群组中发布
第 32 级。有关第 1 级主题的面试问题的答案
  1. 为什么需要它RandomAccessFile

    RandomAccessFile是 Java IO API 包中的一个类,它允许您根据需要导航、读取或写入文件。您还可以替换文件的现有部分;我们谈论的是更新文件的内容,或更准确地说是更新文件的片段。FileInputStream这不能用或 来完成FileOutputStream,但RandomAccessFile会给你这种能力。

    链接:RandomAccessFile 及其功能

  2. 如果读取的文件RandomAccessFile不存在会发生什么?

    将要FileNotFoundException

  3. 如果写入的文件RandomAccessFile不存在会发生什么?

    它将创建一个新的并将其写入其中。

  4. 为什么我们需要上课StringReader

    Java.io.StringReader 类是一个字符流,其源是字符串。

    表示一个字符流,其源称为字符串

  5. 为什么我们需要上课StringWriter

    public class StringWriter
    extends Writer

    将其输出收集到字符串缓冲区中的字符流,然后可以使用该缓冲区构造字符串。

    关闭 StringWriter 没有任何效果。可以在流关闭后调用此类中的方法,而不会生成 IOException。

    字符流,将其流收集到字符串缓冲区中,然后可以使用该缓冲区创建字符串。

  6. 为什么我们需要上课ByteArrayStream

    所以,ByteArrayInputStream并且ByteArrayOutputStream

    这些类本质上类似于StringReader < code="">。它只 StringReader从字符串(String)中读取字符(char),但从 ByteArrayInputStream字节数组(ByteArray)中读取字节。 <>

    StringWriter将字符(char)写入字符串,但ByteArrayOutputStream将字节写入其中的字节数组。当写入StringWriter它时,它内部的字符串会变长,当写入ByteArrayOutputStream它的内部数组时,字节也会动态扩展。

  7. 为什么我们需要上课PrintStream?说出使用它的地方?

    该类的PrintStream发明是为了以可读的方式显示信息。它几乎完全由方法print和组成println

  8. 为什么需要它DynamicProxy

    Java 有一个特殊的类 (java.lang.reflect.Proxy),您可以使用它在运行时(动态)实际构造一个对象,而无需为其创建单独的类。

  9. RMI 是如何工作的?

    RMI 代表远程方法调用。或者换句话说,RMI 是一种允许一台 Java 机器中的对象调用另一台 Java 机器中对象的方法的机制,即使它们位于不同的计算机、不同的国家、地球的不同角落。

    在网络上的其他计算机上执行代码的传统方法可能会由于其繁琐且容易出错的实现而令人困惑。考虑此问题的最佳方法是假设某些对象位于另一台计算机上,并且您可以向这些远程对象发送消息并接收结果,就像它们位于本地计算机上一样。这种简化正是远程方法调用 (RMI) 允许您在 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 (ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);

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

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