[面试要点]java io编程

Java IO面试题【Java面试题】 经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取![外链图片转存中…(img-XXbjFCIC-1713389817416)] 阅读详情

java io 简介

惯例先祭出一张图

这里写图片描述
[1]输入字节流InputStream:InputStream 是所有的输入字节流的父类,它是一个抽象类;ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据;PipedInputStream 是从与其它线程共用的管道中读取数据;ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。
[2]输出字节流OutputStream:OutputStream 是所有的输出字节流的父类,它是一个抽象类。
ByteArrayOutputStream、FileOutputStream 是两种基本的介质流,它们分别向Byte 数组、和本地文件中写入数据。PipedOutputStream 是向与其它线程共用的管道中写入数据,ObjectOutputStream 和所有FilterOutputStream 的子类都是装饰流。
[3]字符输入流Reader:Reader 是所有的输入字符流的父类,它是一个抽象类;CharReader、StringReader 是两种基本的介质流,它们分别将Char 数组、String中读取数据;PipedReader 是从与其它线程共用的管道中读取数据;BufferedReader 很明显就是一个装饰器,它和其子类负责装饰其它Reader 对象;FilterReader 是所有自定义具体装饰流的父类,其子类PushbackReader 对Reader 对象进行装饰,会增加一个行号;InputStreamReader 是一个连接字节流和字符流的桥梁,它将字节流转变为字符流。FileReader 可以说是一个达到此功能、常用的工具类,在其源代码中明显使用了将FileInputStream 转变为Reader 的方法。我们可以从这个类中得到一定的技巧。Reader 中各个类的用途和使用方法基本和InputStream 中的类使用一致。
[4]字符输出流Writer:Writer 是所有的输出字符流的父类,它是一个抽象类;CharArrayWriter、StringWriter 是两种基本的介质流,它们分别向Char 数组、String 中写入数据。PipedWriter 是向与其它线程共用的管道中写入数据,BufferedWriter 是一个装饰器为Writer 提供缓冲功能;PrintWriter 和PrintStream 极其类似,功能和使用也非常相似;

简述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中。使用流对象要抛出IO异常,IO异常为checked异常

分类:

    按操作数据分为:字节流和字符流。 如:Reader和InpurStream,只要是以stream结尾的都是字节流

    按流向分:输入流和输出流。如:InputStream和OutputStream,输入则为input或reader,输出则为output或writer,应用中主要将外来的数据流(文件来的,或者网络传输流等)首先通过输入流输入到内存,处理之后通过输出流输出
    按功能分:节点流和过滤流   
    节点流: 用于直接操作目标设备的流
    过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。

可以把我们的程序想象成一个容器(内存),把要处理的数据流通过输入流(input,reader)输入,处理后,通过输出流(output ,writer)输出

字符流

  1. 字符流简介
    *字符流中的对象融合了编码表,也就是系统默认的编码表。我们的系统一般都是GBK编码
    • 字符流只用来处理文本数据
    • 字符流在处理输出流时必须flush(刷新)才能将数据输出

实例一:在硬盘创建一个文件,写入一些文本信息

package com.oldbig.io;

import java.io.FileWriter;
import java.io.IOException;

public class FileWriterDemo {
    public static void main(String[] args) throws IOException {
         //创建一个FileWriter对象,该对象一被初始化就必须要明确被操作的文件。  
        //而且该文件会被创建到指定目录下。如果该目录有同名文件,那么该文件将被覆盖。  
        //若在后面加入参数true,则不覆盖文件,在文件后面添加文本,例如:FileWriter("D:\\ioTest\\1.txt",true);

        FileWriter fw = new FileWriter("D:\\ioTest\\1.txt");
        //调用write的方法将字符串写到流中
        fw.write("hello word");
         //刷新流对象缓冲中的数据,将数据刷到目的地中 
        fw.flush();
         //关闭流资源,但是关闭之前会刷新一次内部缓冲中的数据。当我们结束输入时候,必须close();  
        fw.write("test");       
        fw.close();
        //flush和close的区别:flush刷新后可以继续输入,close刷新后不能继续输入。 
    }
}

实例二:使用FileReader对文件进行读取

    private static void singleRead() throws IOException {
        FileReader fr = null;
        try{
            //创建一个文件读取流对象,和指定名称的文件关联。  
            //要保证文件已经存在,否则会发生异常:FileNotFoundException  
            fr = new FileReader("D:\\ioTest\\1.txt");
            //将文件流包装成缓冲流,读取更方便,若直接用FileReader的read方法读取的是int数据不是文本数据
            BufferedReader br = new BufferedReader(fr);
            String ch = null;
            while((ch=br.readLine()) != null){
                System.out.println(ch);
            }                   

        }catch(IOException e){
            e.printStackTrace();
        }finally{
            fr.close();
        }

    }

实例:复制文本–>另一文本

private static void singleRead() throws IOException {
        FileReader fr = null;
        try{
            //创建一个文件读取流对象,和指定名称的文件关联。  
            //要保证文件已经存在,否则会发生异常:FileNotFoundException  
            fr = new FileReader("D:\\ioTest\\1.txt");
            //将文件流包装成缓冲流,读取更方便
            BufferedReader br = new BufferedReader(fr);
            String ch = null;
            BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\ioTest\\2.txt"));
            while((ch=br.readLine()) != null){
                System.out.println(ch);
                bw.write(ch);
                bw.newLine();  //换行
                bw.flush();     //清空缓冲区
            }                   


        }catch(IOException e){
            e.printStackTrace();
        }finally{
            fr.close();
        }

    }

刚刚用到缓冲区:字符流的缓冲区:BufferedReader和BufferedWriter

  • 缓冲区的出现时为了提高流的操作效率而出现的.

  • 需要被提高效率的流作为参数传递给缓冲区的构造函数

  • 在缓冲区中封装了一个数组,存入数据后一次取出

  • readline()只返回回车符前面的字符,不返回回车符。如果是复制的话,必须加入newLine(),写入回车符

字节流

简述:
1、字节流和字符流的基本操作是相同的,但是要想操作媒体流就需要用到字节流。(媒体文件也是以字节存储的)

2、读写字节流:InputStream 输入流(读)和OutputStream 输出流(写)

3、字节流操作可以不用刷新流操作。

4、InputStream特有方法:

    int available();//返回文件中的字节个数

实例:复制一张图片

package com.oldbig.io;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyStream {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        copyJpg();
        System.out.println("复制完成");

    }

    private static void copyJpg() {
        // TODO Auto-generated method stub
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try{
            fis = new FileInputStream("D://ioTest//1.jpg");
            fos = new FileOutputStream("D://ioTest//2.jpg");

            byte[] info = new byte[1024];
            int len = 0;
            while((len = fis.read(info)) != -1 ){
                fos.write(info, 0, len);
            }
        }catch(IOException e){
            e.printStackTrace();
            throw new RuntimeException("复制文件异常");
        }finally{
            try {
                fis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

流操作规律

System.out: 对应的标准输出设备:控制台 //它是PrintStream对象,(PrintStream:打印流。OutputStream的子类)

System.in: 对应的标准输入设备:键盘 //它是InputStream对象

示例:从键盘录入流,打印到控制台上

package com.oldbig.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class SystemInOutDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BufferedReader br = null;
        BufferedWriter bw = null;
        try{
            InputStream is = System.in;
            InputStreamReader isr = new InputStreamReader(is, "UTF-8");
            //InputSteamReader:读取字节并将其解码为字符  
            br = new BufferedReader(isr);

            //OutputStreamWriter:要写入流中的字符编码成字节  
            bw = new BufferedWriter(new OutputStreamWriter(System.out));
            String info = null;
            while((info = br.readLine()) != null){
                bw.write(info);
                bw.newLine();

                bw.flush();
            }
        }catch(IOException e){
            e.printStackTrace();
        }

    }

}

java 管道通信

Java提供管道功能,实现管道通信的类有两组:PipedInputStream和PipedOutputStream或者是PipedReader和PipedWriter。管道通信主要用于不同线程间的通信。

一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进行连接而产生一个通信管道。PipedOutputStream向管道中写入数据,PipedIntputStream读取PipedOutputStream向管道中写入的数据。一个线程的PipedInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据。

实例:两个线程之间建立通信管道

package com.oldbig.io;

import java.io.IOException;
import java.io.PipedOutputStream;

public class PipedSend extends Thread{
    private PipedOutputStream out = new PipedOutputStream();

    public PipedOutputStream getOut() {
        return out;
    }
    public void run(){
        String info = "hello ,receiver";
        try{
            out.write(info.getBytes()); //写入数据
            out.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }

}
package com.oldbig.io;

import java.io.IOException;
import java.io.PipedInputStream;

public class PipedReader extends Thread{

    private PipedInputStream in = new PipedInputStream();


    public PipedInputStream getIn() {
        return in;
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        byte[] info = new byte[1024];
        try{
            int len = in.read(info);
            System.out.println("receive from send :" + new String(info,0,len));
            in.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }

}
public class PipedTest {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        PipedSend send = new PipedSend();
        PipedReader reader = new PipedReader();

        PipedOutputStream out = send.getOut();
        PipedInputStream in = reader.getIn();

        in.connect(out);//或者也可以用out.connect(in);  
        send.start();
        reader.start();

    }

}

总结

*字节流和字符流的区别:
字节流没有缓冲区,是直接输出的,而字符流是输出到缓冲区的。因此在输出时,而字符流只有在调用close()方法关闭缓冲区时,信息才输出。要想字符流在未关闭时输出信息,则需要手动调用flush()方法。

· 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
· 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流

*什么是java序列化,如何实现java序列化?

我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个java对象变成某个格式的字节流再传输,但是,jre本身就提供了这种支持,我们可以调用OutputStream的writeObject方法来做,如果要让java 帮我们做,要被传输的对象必须实现serializable接口,这样,javac编译时就会进行特殊处理,编译的类才可以被writeObject方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable接口,该接口是一个mini接口,其中没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的。

例如,在web开发中,如果对象被保存在了Session中,tomcat在重启时要把Session对象序列化到硬盘,这个对象就必须实现Serializable接口。如果对象要经过分布式系统进行网络传输或通过rmi等远程调用,这就需要在网络上传输对象,被传输的对象就必须实现Serializable接口。

参考:https://www.cnblogs.com/xll1025/p/6418766.html
http://blog.youkuaiyun.com/liufeng_king/article/details/12978101

我的Java研发实习面试经历 百度上海大数据研发已挂 一面技术面20分钟 试水的面试总结 58同城Java研发拿到offer 技术电面30分钟HR面10分钟 有点小信心了继续加油 大众点评Java研发拿到offer 技术一面20分钟 技术二面30分钟HR面10分钟 技术三面15分钟 总有复习不到位的地方继续努力 美团大数据部门Java研发拿到offer 网易 阶段总结真正的干货在这里 准备简历 复习重点 面试技巧 阅读详情

相关推荐

深入剖析JavaIO面试题: 详细剖析了字节流与字符流的用法与区别以及BIO、NIO、AIO之间的区别与联系

本文系统梳理了Java I/O核心知识,对比了字节流与字符流的差异及适用场景,分析了缓冲机制的作用。深入讲解了Java I/O模型的演进历程:从同步阻塞的BIO(单连接单线程)、到同步非阻塞的NIO(多路复用),再到异步非阻塞的AIO(回调驱动)。详细解析了NIO三大核心组件(Buffer、Channel、Selector)和AIO的架构设计(异步通道、回调处理器)。通过代码示例展示了不同I/O模型的实现方式,并提供了性能对比和选型建议,帮助开发者根据连接数、业务特性和团队能力选择适合的I/O方案。

Java 后端|Python|AI 实战博主。专注微服务、分布式、大模型应用开发,输出可落地项目、源码剖析与面试总结。用通俗文字拆解技术难点,记录开发路上的学习与踩坑,期待和大家一起交流成长。 6003

JAVA中IO面试题

Input:Output通过IO可以完成硬盘文件的读和写。IO流又叫输入输出流 ,输入和输出均是以内存作为参照物。

m0_48038376的博客 5892

全面Java面试题解析与准备指南

本文还有配套的精品资源,点击获取 简介:Java面试题是求职者技术评估的重要部分,包括Java基础知识、高级概念、多线程、集合框架、异常处理、IO流、网络编程、设计模式、JVM优化及Java 8新特性等。掌握这些内容有助于面试成功并为日常开发打下基础。本文旨在为求职者提供一个全面的面试准备指南。 1. Java基础语法和面向对象特性 Java作为一种面向对象...

weixin_26850469的博客 710

Java面试百分百问到的 —— 超详细解读 Java IO(基础篇)

IO,Input/Output,即输入/输出。判断输入输出以计算机内存为中心,如果从内存到外部存储就是输出,从外部存储到内存就是输入。数据传输过程类似于水流,因此称为 IO 流。在 Java 中,根据操作数据单位的不同,IO 流分为字节流和字符流;根据数据流的流向不同,分为输入流和输出流;根据流的角色不同,分为节点流和处理流。Java IO 流共涉及 40 多个类,但都是从表中的 4 个抽象基类派生而来,派生的子类名称都是以其父类名作为子类名的后缀。(抽象基类)字节流字符流输入流Reader。

wdj_yyds的博客 1106

Java中级面试专题:银盛支付深圳面试指南

自定义异常允许开发者创建特定于应用程序的异常类型,以更好地描述错误情况并提供更精确的错误处理。异常链是一个强大的技术,允许一个异常持有另一个异常的信息,从而能够传递更丰富的错误上下文。自定义异常的实现示例如下:通过构造方法传递一个Throwable类型的cause参数,可以创建一个异常链。

weixin_30765637的博客 898

用Cadence IC618仿真双平衡吉尔伯特混频器:从原理图到后仿的完整避坑指南

本文详细介绍了在Cadence IC618环境中设计双平衡吉尔伯特混频器的全流程,包括原理图设计、仿真优化和版图实现。通过实战案例分享,重点解析了设计中的关键技巧和常见问题解决方案,帮助工程师高效完成高性能混频器设计,特别适合射频前端开发人员参考。

weixin_42656416的博客 162

Java- IO 及其相关面试题

Java IO是Java编程中非常重要的一部分,它提供了丰富的输入和输出功能,可以实现对文件、网络和其他设备的读取和写入操作。在开发中,Java IO广泛应用于文件处理、网络通信、序列化等场景。Java IO主要涉及两个核心概念:输入流和输出流。输入流用于读取数据,输出流用于写入数据。它们支持字节流和字符流两种类型。字节流以字节为单位进行操作,适用于二进制文件或纯文本文件。字符流以字符为单位进行操作,适用于处理文本文件。Java IO还提供了标准IO和NIO两种模式。

向诸位大佬虚心学习 5735

干扰管理学习日志4-------信道估计方法 LS(最小二乘)、MMSE(最小均方误差)

信道估计,就是从接收数据中将假定的某个信道模型的模型参数估计出来的过程。如果信道是线性的话,那么信道估计就是对系统冲激响应进行估计。需强调的是信道估计是信道对输入信号影响的一种数学表示,而“好”的信道估计则是使得某种估计误差最小化的估计算法。本文主要讲述非盲信道估计中的LS估计和MMSE估计。LS全称为,即估计的信道参数与实际信道参数的差,进行平方求和后得到的误差累积最小。MMSE估计是LS估计的改进,在LS估计的最终结果的基础上乘以加权矩阵,使之与实际信道参数更为接近。

taiyuezyh的博客 1万+

Java面试-小白食用

Java面试 转载自  知识追寻者 https://blog.youkuaiyun.com/youku1327/article/details/107591893 一 java基础面试 1.1面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源 应用场景:单片机、嵌入式开发、Linux/Unix ; 缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:因为面向对象有封装、继承、多态性的特 性,可以设计出低耦合的系统,故易维护、易复用、易扩展; 应

Tao 307

MATLAB 论文复现——面向紧急需求响应的规模化灵活资源负荷管理快速决策方法

其次,对灵活资源参与EDR的功率分配模型进行了建模,并提出了基于分层分布式共识算法的快速决策方法,对功率分配模型进行快速求解,以满足EDR实时性的需求,在保证较高精度的前提下提高了决策速度。[1]孔祥玉,杨至端,孙裕策,等.面向紧急需求响应的规模化灵活资源负荷管理快速决策方法[J/OL].电力系统自动化,1-13[2024-07-29].http://kns.cnki.net/kcms/detail/32.1180.TP.20240709.1843.002.html.关键词: 规模化灵活资源;

sjr1478的博客 374

分析方法—temporal receptive field(TRF)

总结来说,时间感受野其实就是一个 filter!课程中的描述—.(使用时间感受野与刺激进行卷积来描述)时间感受野一般是听觉计算中使用的,在视觉中,有另一种分析叫做空间感受野(spatial receptive fields)。回归权重(Regression weights)是指在回归分析中用于估计自变量与因变量之间关系的权重或系数。回归分析是一种统计方法,用于建立自变量与因变量之间的关联模型,并通过拟合数据来估计模型中的参数。在简单线性回归中,只有一个自变量与一个因变量之间的关系被建模。

m0_51474171的博客 1603

JAVA常见面试题分类

请解释什么是Java,以及Java的主要特性。请描述Java的三大核心特性,并举例说明。请解释Java中的数据类型,并说明基本数据类型和引用数据类型的区别。请解释Java中的变量和常量,以及它们的声明方式。请解释Java中的运算符及其优先级。请描述Java中的条件语句和循环语句,并举例说明。

点灯师的博客 616

高分系列卫星轨道、传感器参数等信息

遥感卫星数据简介-高分系列

中遥科 3309

Java网络编程面试题

Java网络编程面试题 1、tcp和udp的区别1 2、tcp连接建立的时候3次握手,断开连接的4次握手的具体过程1 3、什么是同步?什么是异步?2 4、.什么是阻塞?什么是非阻塞?5 5、什么是阻塞IO?什么是非阻塞IO?6 6、...

2253

全志T113 Tina5.0开发:(零)源码下载&修改调试串口

本文章主要作为自己的笔记,如有错误欢迎指出$ repo start product-da-t113-tina-stable --all # 全部下载完成之后,创建分支运行过程可能会出现版本问题;rm -rf .repo //先删除试试( 我安装的是3.6版本)

u014428915的博客 1166

一套适合 ABAP 初级和中级开发人员,从入门到提高的 ABAP 学习教程

曾几何时,ABAP 就是 SAP 的代名词。ABAP 这门编程语言造就了 SAP 名噪一时的 R/3 产品,同时也是如今 SAP 旗舰级产品,SAP S/4HANA 底层的实现语言。 ABAP 不仅代表着 SAP 这家公司在企业级管理软件市场辉煌的过去,ABAP 自身也在不断地进化着。SAP 不仅在本地部署(On-Premise)领域继续保持着自己绝对的统治地位,而且在云应用领域(Software-as-a-Service, 简称 SaaS), 也推出了自己的解决方案,比如 SAP S/4HANA Clo

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5923

来来来!阿里P7Java社招面试的经历

前言 一开始并没有急着提交简历,而是说准备下再提交简历。然后就准备了一周,写简历,刷题,在网上找蚂蚁金服的面经。提交了一份简历,然后发现简历上面没有写学历,幸好他还没提交,就修改了下重新发了一份,然后他又给我提了几个建议,所以又改了一份,才最终提交。 提交简历后的第二天下午,上班的时候蚂蚁金服的面试官打电话过来了,说要面试,当时正在上班,就说了下不方便,就约了当天晚上再面试。谁知道当天小组因为来了新人,晚上要聚餐,所以没办法,就厚着脸皮给面试官发了短信,说了下晚上临时有事不能参加,想约下第二天或者周末。没

m0_56169789的博客 185

PD3.0详解 第六章 协议层—数据消息之—VDM

PD3.0的VDM 很多对PD3.0协议了解不是很深入的同学可能对VDM有一些陌生,因为这个VDM是较为次要,只不过相对沟通电源的协议来讲VDM是次要,但从PD3.0协议的角度来说,这个也是非常重要的,是必须要非常明白的了解这个东西,所以今天大师匈就分享一下这部分的重要知识点。 VDM (vendor define message) VDM是什么意思呢,就是原厂定义的消息,比如PD快充芯片的原厂定义的一些自己独立的message。但是呢这部分也有规定的一些标准的字段。 另外我们要很清楚PD协议的数据分为几类

大师匈的博客 1万+

JAVA基础面试

java 基础面试 基本知识 1 “a==b”和”a.equals(b)”有什么区别? 如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,所以通常需要重写该方法来提供逻辑一致性的比较。例如,String 类重写 equals() 方法,所以可以用于两个不同对象,但是包含的字母相...

m0_38143867的博客 564

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

2022Java春招面试指南:JVM+并发+MySQL+网络+Spring(1到5年必看)

马上到今年的金三银四了,又是跳槽的好季节,准备跳槽的同学都摩拳擦掌准备大面好几场,今天为大家准备了互联网面试必备的1到5年Java面试者都需要掌握的面试题,分别JVM,并发编程,MySQL,Tomcat,网络与IO及Spring系列等等,可以说掌握这些薪资涨10K还是可以的! 今天分享给大家的都是目前主流企业使用最高频的面试题库,也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂。 Java虚拟机

Javaesandyou的博客 272

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java IO 与文件系统:File 类与流操作详解

File类:用于操作文件和目录的元数据。字节流和用于读写字节数据。缓冲流:通过缓存提高 IO 性能。文件系统:理解文件系统的基本概念有助于更好地管理文件和目录。在实际开发中,建议使用语句管理资源,并结合缓冲流提高 IO 效率。通过掌握这些知识,可以轻松应对文件操作和数据流处理的编程需求。

2301_79075954的博客 748

面试中常问的一些场景题

这是面试中容易被问到的场景题,一起学习吧

m0_59679869的博客 1183

JAVA基础面试题(第三期)

一般让你手写一个网络通信代码比较复杂,可以去学习Netty自动装箱:是指将基本类型转换成包装类自动拆箱:是指将包装类转换成基本类型iterator是结合框架中用来遍历元素的接口,核心方法如下:hasNext(),如果返回true表示集合中还有下一个元素,返回false代表遍历结束next(),返回下一个元素remove(),删除最近一次通过next()方法获取到的数据。

2201_75849076的博客 854

java面试全解

文章目录 面试前的工作自我介绍充足的知识储备 javaSEJMM内存模型jdk1.8新特性java语言的特征如何实现跨平台谈谈你对面向对象的认识理解聊聊面向对象的特征,封装,继承,多态访问权限对象创建过程? 从jvm的角度出发,延伸到对象在内存中的存储空间Java类初始化顺序java中创建对象的方式对象克隆,浅克隆,深克隆构造方法对象与引用静态static抽象类和接口Object判断两个对象是否相等String特征为什么不可变String类不可变性的好处? 为什么设计为不可变.String的值不...

qq_45039852的博客 1万+

最全Java 基础面试题,及更全面的答案汇总

final用于声明不可变的实体,finally用于异常处理中的资源释放,而finalize则是一个不推荐使用的、与垃圾回收相关的方法。3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?29.在 Queue 中 poll()和 remove()有什么区别?46.线程池中 submit()和 execute()方法有什么区别?65.final、finally、finalize 有什么区别?42.notify()和 notifyAll()有什么区别?它们之间有什么区别?

weixin_42337052的博客 6641
上一篇: [面试要点]java异常处理机制
oldbig_lin
博客等级 码龄10年 78粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值