Java IO 和 NIO 的面试题-达内培训负责整理
IO 是 Java 面试中一个非常重要的点.你应该很好掌握 Java IO,NIO,NIO2 以及与操作系统,磁盘 IO 相关的基础知识.下面是 Java IO 中经常问的问题.
66)在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?
67)Java 中怎么创建 ByteBuffer?
68)Java 中,怎么读写 ByteBuffer ?
69)Java 采用的是大端还是小端?
70)ByteBuffer 中的字节序是什么?
71)Java 中,直接缓冲区与非直接缓冲器有什么区别?(答案)
72)Java 中的内存映射缓存区是什么?(answer答案)
73)socket 选项 TCP NO DELAY 是指什么?
74)TCP 协议与 UDP 协议有什么区别?(answer答案)
75)Java 中,ByteBuffer 与 StringBuffer有什么区别?(答案)
Java 最佳实践的面试问题
包含 Java 中各个部分的最佳实践,如集合,字符串,IO,多线程,错误和异常处理,设计模式等等.
76)Java 中,编写多线程程序的时候你会遵循哪些最佳实践?(答案)
这是我在写Java 并发程序的时候遵循的一些最佳实践:
a)给线程命名,这样可以帮助调试.
b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步.
c)如果可以,更偏向于使用 volatile 而不是 synchronized.
d)使用更高层次的并发工具,而不是使用 wait() 和 notify() 来实现线程间通信,如 BlockingQueue,CountDownLatch 及 Semeaphore.
e)优先使用并发集合,而不是对集合进行同步.并发集合提供更好的可扩展性.
77)说出几点 Java 中使用 Collections 的最佳实践(答案)
这是我在使用 Java 中 Collectionc 类的一些最佳实践:
a)使用正确的集合类,例如,如果不需要同步列表,使用 ArrayList 而不是 Vector.
b)优先使用并发集合,而不是对集合进行同步.并发集合提供更好的可扩展性.
c)使用接口代表和访问集合,如使用List存储 ArrayList,使用 Map 存储 HashMap 等等.
d)使用迭代器来循环集合.
e)使用集合的时候使用泛型.
78)说出至少 5 点在 Java 中使用线程的最佳实践.(答案)
这个问题与之前的问题类似,你可以使用上面的答案.对线程来说,你应该:
a)对线程命名
b)将线程和任务分离,使用线程池执行器来执行 Runnable 或 Callable.
c)使用线程池
79)说出 5 条 IO 的最佳实践(答案)
IO 对 Java 应用的性能非常重要.理想情况下,你不应该在你应用的关键路径上避免 IO 操作.下面是一些你应该遵循的 Java IO 最佳实践:
a)使用有缓冲区的 IO 类,而不要单独读取字节或字符.
b)使用 NIO 和 NIO2
c)在 finally 块中关闭流,或者使用 try-with-resource 语句.
d)使用内存映射文件获取更快的 IO.
以上就是达内培训给大家做的内容详解,更多关于IT的学习,请继续关注达内培训