Java工具库——FastJson的40个常用方法
那些想看却没看的书,在心里摆满一个图书馆…
工具库介绍
阿里巴巴的 FastJSON,也被称为 Alibaba FastJSON 或阿里巴巴 JSON,是一个高性能的 Java JSON 处理库,用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性能和功能丰富的特点而闻名,并在阿里巴巴的开源项目和其他许多 Java 应用程序中广泛使用。
以下是 FastJSON 的主要特点和功能:
-
高性能: FastJSON 的性能非常出色,它被设计成一种极快的 JSON 库,可以在读取和写入 JSON 数据时实现卓越的性能。这使得 FastJSON 成为处理大量 JSON 数据的理想选择。
-
丰富的功能: FastJSON 提供了丰富的功能,包括将 Java 对象序列化为 JSON 格式和将 JSON 数据解析为 Java 对象。它支持复杂数据类型,包括嵌套对象、集合、数组等。
-
简单易用的 API: FastJSON 提供了简单易用的 API,使开发人员能够轻松地进行 JSON 数据的处理。你可以使用 FastJSON 将对象转换为 JSON 字符串,也可以将 JSON 字符串转换为 Java 对象。
-
自定义序列化和反序列化: FastJSON 允许你自定义如何将 Java 对象序列化为 JSON 数据以及如何将 JSON 数据反序列化为 Java 对象。这可以用于处理特定的数据格式或数据结构。
-
支持标准规范: FastJSON 支持 JSON 规范(RFC 7159),并能够处理 JSON 格式的各种细节,包括转义字符和特殊字符。
-
支持日期格式: FastJSON 具有内置的日期序列化和反序列化功能,可以处理日期数据的格式化和解析。
-
兼容性: FastJSON 兼容 Java 标准库中的 JSON API,如
javax.json,使得迁移或替换其他 JSON 库变得相对容易。 -
广泛应用: FastJSON 在阿里巴巴的许多产品和项目中广泛使用,包括阿里云和淘宝等。
FastJSON 是一个开源项目,你可以在 GitHub 上找到它的源代码和文档。它的活跃社区和持续的维护使其成为一个受欢迎的 JSON 处理库,适用于各种 Java 应用程序,从小型应用到大型分布式系统。
方法列举
FastJSON(阿里巴巴的 JSON 库)提供了大量的方法来处理 JSON 数据。以下是其中一些常用的方法,每个方法都附带了详细解释和示例代码,以及预期的结果。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
1. toJSONString():将 Java 对象序列化为 JSON 字符串。
public static void toJSONStringExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "John");jsonObject.put("age", 30);String jsonString = jsonObject.toJSONString();System.out.println(jsonString);
}
2. parseObject():将 JSON 字符串解析为 Java 对象。
public static void parseObjectExample() {String json = "{\"name\":\"Alice\",\"age\":25}";JSONObject jsonObject = JSON.parseObject(json);String name = jsonObject.getString("name");int age = jsonObject.getIntValue("age");System.out.println("Name: " + name + ", Age: " + age);
}
3. toJSON():将 Java 对象转换为 JSON 对象。
public static void toJSONExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Alice");jsonObject.put("age", 25);JSONObject json = (JSONObject) JSON.toJSON(jsonObject);System.out.println(json.toJSONString());
}
4. parseArray():将 JSON 数组字符串解析为 Java 数组。
public static void parseArrayExample() {String jsonArray = "[1, 2, 3, 4, 5]";JSONArray intArray = JSON.parseArray(jsonArray);int sum = 0;for (Object num : intArray) {sum += (int) num;}System.out.println("Sum: " + sum);
}
5. toJavaObject():将 JSON 对象转换为指定类型的 Java 对象。
public static class Person {public String name;public int age;
}public static void toJavaObjectExample() {String json = "{\"name\":\"Bob\",\"age\":28}";Person person = JSON.toJavaObject(JSON.parseObject(json), Person.class);System.out.println("Name: " + person.name + ", Age: " + person.age);
}
6. toJSONBytes():将 Java 对象序列化为 JSON 字节数组。
public static void toJSONBytesExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Charlie");jsonObject.put("age", 35);byte[] jsonBytes = JSON.toJSONBytes(jsonObject);String jsonString = new String(jsonBytes);System.out.println(jsonString);
}
7. toJSONStringWithDateFormat():使用指定日期格式将 Java 对象序列化为 JSON 字符串。
public static void toJSONStringWithDateFormatExample() {Date today = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");JSONObject jsonObject = new JSONObject();jsonObject.put("name", "David");jsonObject.put("birthDate", sdf.format(today));String jsonString = JSON.toJSONStringWithDateFormat(jsonObject, "yyyy-MM-dd");System.out.println(jsonString);
}
8. toJSONStringWithFilter():使用过滤器将 Java 对象序列化为 JSON 字符串。
public static class Person {public String name;public int age;
}public static void toJSONStringWithFilterExample() {Person person = new Person();person.name = "Eve";person.age = 40;ValueFilter filter = (object, name, value) -> {if (name.equals("age")) {return null; // 不包括 "age" 字段}return value;};String jsonString = JSON.toJSONString(person, filter);System.out.println(jsonString);
}
9. parse():将 JSON 字符串解析为通用的 java.lang.Object 对象。
public static void parseExample() {String json = "{\"name\":\"Frank\",\"age\":45}";Object object = JSON.parse(json);if (object instanceof JSONObject) {JSONObject jsonObject = (JSONObject) object;String name = jsonObject.getString("name");int age = jsonObject.getIntValue("age");System.out.println("Name: " + name + ", Age: " + age);}
}
10. isValid():检查 JSON 字符串是否合法。
public static void isValidExample() {String validJson = "{\"name\":\"Grace\",\"age\":50}";String invalidJson = "{name\":\"Helen\",\"age\":55}";boolean valid = JSON.isValid(validJson);boolean invalid = JSON.isValid(invalidJson);System.out.println("Valid JSON: " + valid);System.out.println("Invalid JSON: " + invalid);
}
11. getJSONObject():获取 JSON 对象中的子对象。
public static void getJSONObjectExample() {String json = "{\"person\":{\"name\":\"Ivy\",\"age\":60}}";JSONObject jsonObject = JSON.parseObject(json);JSONObject personObject = jsonObject.getJSONObject("person");String name = personObject.getString("name");System.out.println("Name: " + name);
}
12. getJSONArray():获取 JSON 对象中的子数组。
public static void getJSONArrayExample() {String json = "{\"numbers\":[1, 2, 3, 4, 5]}";JSONObject jsonObject = JSON.parseObject(json);JSONArray numbersArray = jsonObject.getJSONArray("numbers");int sum = 0;for (Object num : numbersArray) {sum += (int) num;}System.out.println("Sum: " + sum);
}
13. merge():合并两个 JSON 对象。
public static void mergeExample() {String json1 = "{\"name\":\"Jack\"}";String json2 = "{\"age\":35}";JSONObject jsonObject1 = JSON.parseObject(json1);JSONObject jsonObject2 = JSON.parseObject(json2);jsonObject1.putAll(jsonObject2);System.out.println(jsonObject1.toJSONString());
}
14. size():获取 JSON 对象或数组的元素数量。
public static void sizeExample() {String json = "{\"names\":[\"Mary\",\"Nancy\",\"Oliver\"]}";JSONObject jsonObject = JSON.parseObject(json);JSONArray namesArray = jsonObject.getJSONArray("names");int size = namesArray.size();System.out.println("Array Size: " + size);
}
15. containsKey():检查 JSON 对象是否包含指定的键。
public static void containsKeyExample() {String json = "{\"name\":\"Peter\",\"age\":70}";JSONObjectjsonObject = JSON.parseObject(json);boolean containsAge = jsonObject.containsKey("age");boolean containsEmail = jsonObject.containsKey("email");System.out.println("Contains Age: " + containsAge);System.out.println("Contains Email: " + containsEmail);
}
16. keySet():获取 JSON 对象的键集合。
public static void keySetExample() {String json = "{\"name\":\"Quincy\",\"age\":75}";JSONObject jsonObject = JSON.parseObject(json);Set<String> keys = jsonObject.keySet();for (String key : keys) {System.out.println("Key: " + key);}
}
17. values():获取 JSON 对象的值集合。
public static void valuesExample() {String json = "{\"name\":\"Rachel\",\"age\":80}";JSONObject jsonObject = JSON.parseObject(json);Collection<Object> values = jsonObject.values();for (Object value : values) {System.out.println("Value: " + value);}
}
18. remove():从 JSON 对象中删除指定的键。
public static void removeExample() {String json = "{\"name\":\"Sam\",\"age\":85}";JSONObject jsonObject = JSON.parseObject(json);jsonObject.remove("age");System.out.println(jsonObject.toJSONString());
}
19. clear():清空 JSON 对象中的所有键值对。
public static void clearExample() {String json = "{\"name\":\"Tom\",\"age\":90}";JSONObject jsonObject = JSON.parseObject(json);jsonObject.clear();System.out.println(jsonObject.toJSONString());
}
20. isEmpty():检查 JSON 对象是否为空。
public static void isEmptyExample() {JSONObject jsonObject = new JSONObject();boolean empty = jsonObject.isEmpty();System.out.println("Is Empty: " + empty);
}
21. putAll(Map<? extends String, ? extends V> map): 向 JSON 对象中添加键值对
public static void putAllExample() {JSONObject jsonObject = new JSONObject();JSONObject additionalData = new JSONObject();additionalData.put("email", "john@example.com");additionalData.put("phone", "123-456-7890");jsonObject.putAll(additionalData);System.out.println(jsonObject.toJSONString());}
22. size(): 获取 JSON 对象的元素数量
public static void sizeExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Alice");jsonObject.put("age", 30);int size = jsonObject.size();System.out.println("Size: " + size);}
23. containsValue(Object value): 检查 JSON 对象是否包含指定的值
public static void containsValueExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Bob");jsonObject.put("age", 35);boolean containsName = jsonObject.containsValue("Bob");boolean containsGender = jsonObject.containsValue("Male");System.out.println("Contains Name: " + containsName);System.out.println("Contains Gender: " + containsGender);}
24. keySet(): 获取 JSON 对象的键集合
public static void keySetExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Charlie");jsonObject.put("age", 40);Set<String> keys = jsonObject.keySet();for (String key : keys) {System.out.println("Key: " + key);}
}
25. values(): 获取 JSON 对象的值集合
public static void valuesExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "David");jsonObject.put("age", 45);Collection<Object> values = jsonObject.values();for (Object value : values) {System.out.println("Value: " + value);}}
26. entrySet(): 获取 JSON 对象的键值对集合
public static void entrySetExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Eve");jsonObject.put("age", 50);Set<java.util.Map.Entry<String, Object>> entrySet = jsonObject.entrySet();for (java.util.Map.Entry<String, Object> entry : entrySet) {System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());}
}
27. putIfAbsent(String key, Object value): 如果不存在键,则向 JSON 对象添加键值对
public static void putIfAbsentExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Frank");jsonObject.putIfAbsent("age", 55); // 添加 "age" 键jsonObject.putIfAbsent("name", "George"); // 不添加 "name" 键System.out.println(jsonObject.toJSONString());
}
28. put(String key, Object value): 向 JSON 对象添加键值对
public static void putExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Helen");System.out.println(jsonObject.toJSONString());}
29. get(Object key) : 获取 JSON 对象中的属性值
public static void getExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Ian");jsonObject.put("age", 60);String name = jsonObject.getString("name");int age = jsonObject.getIntValue("age");System.out.println("Name: " + name + ", Age: " + age);
}
30. remove(Object key) : 从 JSON 对象中删除指定的键
public static void removeExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Jack");jsonObject.put("age", 65);jsonObject.remove("age");System.out.println(jsonObject.toJSONString());
}
31. putOnce(String key, Object value) : 如果不存在键,则向 JSON 对象添加键值对
public static void putOnceExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "Kathy");jsonObject.putOnce("age", 70); // 添加 "age" 键jsonObject.putOnce("name", "Laura"); // 不添加 "name" 键System.out.println(jsonObject.toJSONString());}
32. putAll(JSONObject m) : 将另一个 JSON 对象中的键值对添加到当前 JSON 对象
public static void putAllJSONObjectExample() {JSONObject jsonObject1 = new JSONObject();jsonObject1.put("name", "Mike");JSONObject jsonObject2 = new JSONObject();jsonObject2.put("age", 75);jsonObject2.put("email", "mike@example.com");jsonObject1.putAll(jsonObject2);System.out.println(jsonObject1.toJSONString());
}
33. getInteger(String key): 获取 JSON 对象中的整数属性值
public static void getIntegerExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("age", "80"); // 存储为字符串int age = jsonObject.getInteger("age"); // 解析为整数System.out.println("Age: " + age);
}
34. getLong(String key) : 获取 JSON 对象中的长整数属性值
public static void getLongExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("age", "90"); // 存储为字符串long age = jsonObject.getLong("age"); // 解析为长整数System.out.println("Age: " + age);}
35. getShort(String key) : 获取 JSON 对象中的短整数属性值
public static void getShortExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("age", "100"); // 存储为字符串short age = jsonObject.getShort("age"); // 解析为短整数System.out.println("Age: " + age);
}
36. getByte(String key) : 获取 JSON 对象中的字节属性值
public static void getByteExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("age", "110"); // 存储为字符串byte age = jsonObject.getByte("age"); // 解析为字节System.out.println("Age: " + age);
}
37. getFloat(String key): 获取 JSON 对象中的浮点数属性值
public static void getFloatExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("height", "175.5"); // 存储为字符串float height = jsonObject.getFloat("height"); // 解析为浮点数System.out.println("Height: " + height);}
38. getDouble(String key) : 获取 JSON 对象中的双精度浮点数属性值
public static void getDoubleExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("weight", "65.5"); // 存储为字符串double weight = jsonObject.getDouble("weight"); // 解析为双精度浮点数System.out.println("Weight: " + weight);
}
39. getBoolean(String key): 获取 JSON 对象中的布尔属性值
public static void getBooleanExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("isStudent", "true"); // 存储为字符串boolean isStudent = jsonObject.getBoolean("isStudent"); // 解析为布尔值System.out.println("Is Student: " + isStudent);
}
40. getBigDecimal(String key): 获取 JSON 对象中的 BigDecimal 属性值
public static void getBigDecimalExample() {JSONObject jsonObject = new JSONObject();jsonObject.put("price", "99.99"); // 存储为字符串java.math.BigDecimal price = jsonObject.getBigDecimal("price"); // 解析为 BigDecimalSystem.out.println("Price: " + price);
}
相关文章:
Java工具库——FastJson的40个常用方法
那些想看却没看的书,在心里摆满一个图书馆… 工具库介绍 阿里巴巴的 FastJSON,也被称为 Alibaba FastJSON 或阿里巴巴 JSON,是一个高性能的 Java JSON 处理库,用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性…...
基于ssm的宠物医院管理系统的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
RocketMQ学习笔记(一)
RocketMQ学习笔记 消息中间件应用场景 应用解耦削峰填谷数据分发 常见的消息中间件 ActiveMQ:Apache出品,比较老的一个开源的消息中间件,以前在中小企业应用广泛Kafka:Apache软件基金会开发的一个开源流处理平台,由…...
JavaScript-2-菜鸟教程
字符串 可以使用 索引 位置访问字符串中的每个字符 可以使用内置属性 length 来计算字符串的长度 var txt "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln txt.length;<script>var x "John"; // x是一个字符串// 使用 new 关键字将字符…...
发布开源项目到 jitpack
--- theme: github highlight: a11y-dark --- # 发布项目到 jitpack ## *(Gradle7.x 的版本已不适用 android-maven 的方法发布)* ## 1.在要发布android module下的 build.grdle 添加,多个module就添加多个 plugins{ id maven-publish } task sourceJar(type: Jar) { …...
TeeChart for .NET 2023.10.19 Crack
TeeChart.NET 的 TeeChart 图表控件提供了一个出色的通用组件套件,可满足无数的图表需求,也针对重要的垂直领域,例如金融、科学和统计领域。 数据可视化 数十种完全可定制的交互式图表类型、地图和仪表指示器,以及完整的功能集&am…...
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球 文章链接:柠檬水找零 根据身高重建队列 用最少数量的箭引爆气球 视频链接:柠檬水找零 根据身高重建队列 …...
完美解决configure: error: APR not found. Please read the documentation.
目录 一、问题: 二、原因: 三、解决方法: 一、问题: ./configure 出现如下问题: configure: error: APR not found. Please read the documentation. 二、原因: 配置:错误:找不…...
Jenkins部署失败:JDK ‘jdk1.8.0_381‘ not supported to run Maven projects
Jenkins部署报错:JDK ‘jdk1.8.0_381’ not supported to run Maven projects提示使用的jdk有问题,启动的jdk版本不能满足项目启动。 登录Jenkins管理页面,系统管理——全局工具配置——JDK安装配置满足条件的JDK版本,保存配置&…...
xml导出pdf简单实现
1. 引入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>8.0.1</version> </dependency>2. 代码实现 import com.itextpdf.kernel.geom.PageSize; import com.itextpdf.ker…...
JAVAEE初阶相关内容第十六弹--网络编程
写在前 这一节的内容首先是对十五弹(UDP回显服务器)进行简单的改进,在这基础上开始介绍TCP流套接字编程。 目录 写在前 1.改进回显服务器 1.1完整代码实现 1.2运行输出结果 2.TCP流套接字编程 2.1ServerSocketAPI 2.2SocketAPI 3.TC…...
Python---练习:使用for循环嵌套实现打印九九乘法表
思考: 外层循环主要用于控制循环的行数,内层循环用于控制列数。 基本语法: # 外层循环 for i in 序列1:# 内层循环for j in 序列2:循环体 序列1 序列2 ,就可以是range(1, 10) -----也就是从1,到9。 参考while循环…...
mac安装并使用wireshark
mac安装并使用wireshark 1 介绍 我们在日常开发过程中,遇到了棘手的问题时,免不了查看具体网络请求情况,这个时候就需要用到抓包工具。比较著名的抓包工具就属:wireshark、fildder。我这里主要介绍wireshark。 2 安装 以mac安装为…...
torch张量的降维与升维
文章目录 一、降维和升维未完待续.... 一、降维和升维 squeeze和unsqueeze是torch张量常用的降维与升维的一种方式,但这种方式只能增添或减少大小为1的维度,如下: x1 torch.randn(1, 8, 256, 256) x1 torch.squeeze(x1,dim0) print(x1.sh…...
八大排序算法(C语言版)之插入排序
八大排序详解 目录:一、排序的概念1.1 排序的概念1.2 排序的应用 二、直接插入排序三、希尔排序四、排序算法复杂度及稳定性分析 目录: 八大排序算法: #mermaid-svg-7qCaGEYz0Jyj9dYw {font-family:"trebuchet ms",verdana,arial,…...
Linux系统安装redis并配置为服务
一、Linux环境 1、下载 官网提供的源码下载地址: https://github.com/redis/redis/archive/7.0.5.tar.gz 2、将源码上传至服务器 3、解压缩 # 将解压缩后的文件放置在同目录的source文件夹下 tar -zxvf redis-7.0.5.tar.gz -C ./source4、编译安装 对源码进行编…...
DDIO和DMA有什么区别
DDIO 和 DMA 的区别 DDIO (Data Direct I/O Technology) 主要应用: 主要用于网卡和CPU之间的数据传输。工作原理: 通过CPU的Last Level Cache (LLC) 直接与外部网卡交换数据,绕过了主存储器。优点: 减少了CPU和网卡等待内存的时间。提高了数据包的处理速度。减少了…...
【MATLAB源码-第58期】基于蛇优化算法(SO)和粒子群优化算法(PSO)的栅格地图路径规划最短路径和适应度曲线对比。
操作环境: MATLAB 2022a 1、算法描述 粒子群算法 (Particle Swarm Optimization, PSO) 1. 算法概述 粒子群算法是一种基于群体智能的优化算法,模拟鸟群觅食的行为。算法中的每个粒子代表问题的一个可能解,并且具有位置和速度两个属性。粒…...
nlp与知识图谱代码解读
词嵌入 简单原理 我们要给一群14岁的孩子讲解词嵌入。可以使用一些比喻和生活中的例子: 老师: 你们还记得玩乐高积木的时候,每个积木块代表了一个特定的事物或形状吗?现在,想象一下,每个词都像是一个乐高…...
Redis设计与实现(3)字典
Redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,而每一个哈希表节点就保存了字典中的一个键值对 redis字典所使用的哈希表由dict.h/dictht typedef struct dictht{//哈希表数组dictEntry **table;//哈希表大小unsigned long si…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
