重生之我在地球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个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
昨天学了三小时,但忘了打卡了,那就从头开始吧。[衰]day1 学习七小时学了mysql和tomcat底层
14
day5 今天学了四个小时,学了HttpServlerRequest和MySQL
11
day3学完HTTP协议复习了一些Javase的内容明天开始背面经
15
day2今天看完了Servlet,明天看HTTP。今天敲了敲坦克大战,想半天也实现不了,非得看课程。头疼。代码要还是敲了记忆才深刻,尤其是自己单独想通逻辑,然后不看视频就单独敲出来才能算初步学会,每天坚持,慢慢来吧
12
day1打卡今天主要看了韩顺平老师javaweb课程的Tomcat和Servlet的一小部分,前面的前端部分以前学过,就大概看了一下笔记复习了一下。今天感觉对tomcat和Servlet的理解有很大的提升,韩老师的课程很适合我。明天继续加油,明天应该看完Servlet差不多,这里自己第一次学就没学明白,明天就学明白Servlet就好,然后再练习一下SQL语句。
15
