加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_盐城站长网 (https://www.0515zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

史上最全Java面试题整理(附参考答案)

发布时间:2020-12-24 09:48:18 所属栏目:运营 来源:网络整理
导读:副标题#e# 下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号:Java团长 1、面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类。 继承:基于基类创建新类。

答:字节流和字符流。字节流继承于InputStream、OutputStream,字符流继承于Reader、Writer。在 java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。关于Java的I/O需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性);二是两种设计模式(适配器模式和装潢模式)。另外Java中的流不同于C#的是它只有一个维度一个方向。

面试题 - 编程实现文件拷贝。(这个题目在笔试的时候经常出现,下面的代码给出了两种实现方案)

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;private <span class="hljs-title"&gt;MyUtil<span class="hljs-params"&gt;() {
    <span class="hljs-keyword"&gt;throw <span class="hljs-keyword"&gt;new AssertionError();
}

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;void <span class="hljs-title"&gt;fileCopy<span class="hljs-params"&gt;(String source,String target) <span class="hljs-keyword"&gt;throws IOException {
    <span class="hljs-keyword"&gt;try (InputStream in = <span class="hljs-keyword"&gt;new FileInputStream(source)) {
        <span class="hljs-keyword"&gt;try (OutputStream out = <span class="hljs-keyword"&gt;new FileOutputStream(target)) {
            <span class="hljs-keyword"&gt;byte[] buffer = <span class="hljs-keyword"&gt;new <span class="hljs-keyword"&gt;byte[<span class="hljs-number"&gt;4096];
            <span class="hljs-keyword"&gt;int bytesToRead;
            <span class="hljs-keyword"&gt;while((bytesToRead = in.read(buffer)) != -<span class="hljs-number"&gt;1) {
                out.write(buffer,<span class="hljs-number"&gt;0,bytesToRead);
            }
        }
    }
}

<span class="hljs-function"&gt;<span class="hljs-keyword"&gt;public <span class="hljs-keyword"&gt;static <span class="hljs-keyword"&gt;void <span class="hljs-title"&gt;fileCopyNIO<span class="hljs-params"&gt;(String source,String target) <span class="hljs-keyword"&gt;throws IOException {
    <span class="hljs-keyword"&gt;try (FileInputStream in = <span class="hljs-keyword"&gt;new FileInputStream(source)) {
        <span class="hljs-keyword"&gt;try (FileOutputStream out = <span class="hljs-keyword"&gt;new FileOutputStream(target)) {
            FileChannel inChannel = in.getChannel();
            FileChannel outChannel = out.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(<span class="hljs-number"&gt;4096);
            <span class="hljs-keyword"&gt;while(inChannel.read(buffer) != -<span class="hljs-number"&gt;1) {
                buffer.flip();
                outChannel.write(buffer);
                buffer.clear();
            }
        }
    }
}

(编辑:网站开发网_盐城站长网 )

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!