type
status
date
slug
summary
tags
category
icon
password

Java I/O面试题

比特、字节、字符的区别

项目
比特 (bit)
字节 (byte)
字符 (char)
定义
二进制数据的最小单位,仅有0和1
数据存储的基本单位,通常由8个比特构成
编码系统中的单个字符,如字母、数字、符号
大小
1比特 = 1个二进制位
1字节 = 8比特
大小取决于编码:在Java中是2字节 (16比特)
常见用途
表示开/关、真假等二进制状态
存储字节数据,例如文件大小或内存
表示文本数据,例如字母、数字、特殊符号
示例
0 或 1
01001010 (表示一个字节)
'A' (在UTF-16编码中占2字节)
在Java中
没有直接的bit数据类型
byte 类型(范围 -128 到 127)
char 类型,表示单个Unicode字符
编码方式
不适用
ASCII、UTF-8等
Unicode (UTF-16 在Java中)
应用场景
通信协议、低级别硬件控制
存储和处理文件、流数据等
字符串处理、文本文件、用户输入等

序列化反序列化

  • 序列化:将对象转换为二进制格式(或其他可传输格式,如JSON、XML)的过程,以便可以存储到文件中或通过网络传输
  • 反序列化:将序列化的数据重新转换回对象的过程。即从文件或网络中读取二进制数据并重建对象
对象序列化需实现serializable接口,如果类中的某个字段不想被序列化,可以将其声明为 transient,它会在序列化过程中被忽略。

serialVersionUID字段的作用

1、版本控制

serialVersionUID用于验证在反序列化时,发送方和接收方的类是否兼容。当类的 serialVersionUID和序列化的对象的serialVersionUID匹配时,反序列化过程可以成功。如果不匹配,则会抛出InvalidClassException异常,表示类的版本不兼容。

2、确保反序列化的安全性

通过serialVersionUID,Java序列化机制可以确保类的结构没有发生不可兼容的改变。例如,如果类定义发生重大变化(如删除重要字段),这会导致反序列化时无法正常恢复对象的状态。serialVersionUID可以帮助检测出这些变化。
 
Java集合面试题Java并发编程面试题
Loading...
JackJame
JackJame
一个苦逼的码农😘
最新发布
Redis面试题
2025-3-3
面试题总结
2025-2-22
SpringBoot面试题
2025-2-18
JVM面试题
2025-2-18
数据库面试题
2025-2-16
Java并发编程面试题
2025-2-13
公告