重生之我在地球Online学JAVA day20
一、序列化与反序列化
创建一个User对象
1、JDK序列化
(1)实现 Serializable 接口
▼text复制代码public class User implements Serializable { // 必须加 private String name; private int age; }
(2)JDK序列化代码
▼text复制代码// 序列化:对象 → 字节数组 ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(user); byte[] bytes = bos.toByteArray(); // 反序列化:字节数组 → 对象 ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bis); User user = (User) ois.readObject();
JDK 缺点:代码超级繁琐、速度慢、体积巨大、必须实现 Serializable、有安全风险。 2、Kryo 序列化(现在主流) (1)不需要实现 Serializable 接口
▼text复制代码public class User { // 不用加 implements Serializable! private String name; private int age; }
(2)Kryo序列化代码
▼text复制代码// 1. 创建 Kryo Kryo kryo = new Kryo(); // 2. 序列化:对象 → 字节数组 Output output = new Output(1024); kryo.writeObject(output, user); byte[] bytes = output.toBytes(); // 3. 反序列化:字节数组 → 对象 Input input = new Input(bytes); User user = kryo.readObject(input, User.class);
Kryo 优点:代码超级简单、速度快 10 倍、体积小 5 倍、不用写任何接口、不用写 get/set 也能序列化、Spring Cloud / Redis 都用它。 二、项目目前学到的知识点 1、提示词工程的设置 2、Spring AI三大架构: (1)ChatClient 身份:总指挥 / 入口 作用:发请求、收响应、调度所有组件。 (2)ChatMemory 身份:存储器 / 硬盘 作用:专门负责存数据(聊天记录)。 (如:你的文件存储、内存存储) (3)Advisor 身份:拦截器 / 增强器 / 插件 作用:在请求前后做功能增强。 其中ChatMemoryAdvisor(把 ChatMemory 里存的历史记录读取出来,带给 AI)、MyLoggerAdvisor日志(打印请求和响应。)、ReReadingAdvisor(重读,让 AI 读两遍题目,增强AI理解能力)都属于Advisor里面的 3、Record语法
▼text复制代码record LoveReport(String title, List<String> suggestions) { }
Record = 极简版 Java 类 自动帮你生成: 构造方法 getter equals / hashCode toString 类似于
▼text复制代码public class LoveReport { private String title; private List<String> suggestions; // 构造、get、set、toString... }
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
Day 103✅ 今天做了:复习了多用户通信系统⏰ 明天计划:学习Java反射
1
Day 68时间19:00~ 22:00(3h)✅ 今天做了:Component注解、Mybatis配置、使用⏰ 明天计划:Lombok、Mapper映射、动态SQL📚 今日感悟:自动配置类DataSourceAutoConfiguration ,会读取properties文件,通过注解:@EnableConfigurationProperties(DataSourceProperties.cl
2
Day 19✅ 今天做了:MCP⏰ 明天计划:AI智能体构建📚 今日感悟:今天MCP问题有点多有点杂,明天找时间再捋一下。继续加油
1
Day 25✅ 今天做了:1、扇贝英语单词打卡2、英语听说读写、听力练习3、微信阅读15分钟4、编程导航学习⏰ 明天计划:待定📚 今日感悟:Keep going!
2
Day 104✅ 今天做了:学习了Java反射及快速入门⏰ 明天计划:继续学习Java反射
1
