Java面试问题整理

1.Java IO和NIO的区别

IONIo
面向流编程面向对象编程
阻塞非阻塞
有选择器

2.IO流:用来读写数据

  • 2.1 输入流:读数据
  • 2.2 输出流:写数据

总结:输入输出其实是相对于JVM内存的

  • 2.3 字节流可以处理所有类型的文件
  • 2.4 字符流只能处理文本文件,并且是处理文本文件的最佳处理方案

总结:计算机中所有的数据都是以二进制数据形式保存的,二进制数据也就是二进制数字0,1

IO流可以把数据写到本地文件中,也可以从本地文件中读取文件

3.序列化:将对象的状态信息转换成可以存储或传输形式的过程

  • 计算机中保存的所有数据都是二进制数据,因此序列化就是把计算机中各种各样的数据格式(文本,音频,视频等)变成

数字的过程。

  • 变成数字后就可以使用IO流进行读写,因此IO流的读写的过程,中间进行了序列化和反序列化的过程

    4.类加载过程

        4.1.加载

                4.1.1 将类的字节码载入方法区,并创建class对象

                4.1.2 如果父类未加载,先加载父类

                 4.1.3 加载是懒惰加载

        4.2.链接

                4.2.1 验证  验证类是否符合Class规范,合法性,安全性检查

                4.2.2 准备  为static变量分配空间 ,设置默认值

                4.2.3 解析 将符合引用解析成直接引用

        4.3.初始化

                4.3.1 执行静态代码块和非final 静态变量赋值

                4.3.2 初始化是懒惰执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值