Fastjson2 全面使用指南(Java后端开发者版)

fastjson2避坑指南:为什么你的null值字段不显示?5分钟解决常见问题 本文针对Fastjson2序列化时null值字段默认不显示的问题,提供了详细的解决方案。核心在于理解其默认行为旨在精简数据,并通过启用JSONWriter.Feature.WriteMapNullValue特性,或使用@JSONType注解进行配置,即可轻松控制null值输出,确保接口契约的稳定性。 阅读详情

Fastjson2 全面使用指南(Java后端开发者版)

一、基础使用

1. Parse JSON into JSONObject

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;

public class JSONObjectExample {
    public static void main(String[] args) {
        // 定义JSON字符串
        String jsonStr = "{\"name\":\"张三\", \"age\": 30, \"isStudent\": false}";
        
        // 将JSON字符串解析为JSONObject对象
        JSONObject jsonObject = JSON.parseObject(jsonStr);  // 直接解析为JSONObject类型 
        
        // 获取字段值
        String name = jsonObject.getString("name");  // 返回"张三"
        int age = jsonObject.getInteger("age");      // 返回30
        boolean isStudent = jsonObject.getBoolean("isStudent"); // 返回false
        
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        System.out.println("是否学生: " + isStudent);
    }
}

2. Parse JSON into JSONArray

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;

public class JSONArrayExample {
    public static void main(String[] args) {
        // 定义JSON数组字符串
        String jsonArrayStr = "[{\"name\":\"张三\",\"age\":30}, {\"name\":\"李四\",\"age\":25}]";
        
        // 将JSON字符串解析为JSONArray对象
        JSONArray jsonArray = JSON.parseArray(jsonArrayStr);  // 直接解析为JSONArray类型 
        
        // 遍历数组
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject item = jsonArray.getJSONObject(i);  // 获取每个JSON对象
            String name = item.getString("name");
            int age = item.getInteger("age");
            System.out.println("第" + (i+1) + "个用户: " + name + ", 年龄: " + age);
        }
    }
}

3. Parse JSON into a Java Object

import com.alibaba.fastjson2.JSON;

class Student {
    private String name;
    private int age;
    private boolean isStudent;
    
    // getter/setter方法(Lombok可简化)
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    public boolean isStudent() { return isStudent; }
    public void setStudent(boolean student) { isStudent = student; }
}

public class JavaObjectParseExample {
    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"王五\", \"age\": 22, \"isStudent\": true}";
        
        // 将JSON字符串解析为Student对象
        Student student = JSON.parseObject(jsonStr, Student.class);  // 指定目标类类型 
        
        System.out.println("学生姓名: " + student.getName());
        System.out.println("年龄: " + student.getAge());
        System.out.println("是否学生: " + student.isStudent());
    }
}

4. Serialization Java Object to JSON

import com.alibaba.fastjson2.JSON;

public class ObjectToJsonExample {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("赵六");
        student.setAge(24);
        student.setStudent(true);
        
        // 将Java对象序列化为JSON字符串
        String jsonStr = JSON.toJSONString(student);  // 默认格式化输出 
        
        System.out.println("序列化后的JSON: " + jsonStr);
        // 输出: {"name":"赵六","age":24,"isStudent":true}
    }
}

5. Use JSONObject, JSONArray

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;

public class JSONObjectArrayUsage {
    public static void main(String[] args) {
        // 创建JSONObject
        JSONObject user = new JSONObject();
        user.put("name", "张三");
        user.put("age", 30);
        user.put("address", new JSONObject().put("city", "北京").put("street", "中关村"));
        
        // 创建JSONArray
        JSONArray hobbies = new JSONArray();
        hobbies.add("篮球");
        hobbies.add("编程");
        hobbies.add("旅行");
        
        // 添加到JSONObject
        user.put("hobbies", hobbies);
        
        // 转换为JSON字符串
        String jsonString = user.toJSONString();  // 转换为标准JSON字符串 
        
        System.out.println("构建的JSON: " + jsonString);
        // 输出: {"name":"张三","age":30,"address":{"city":"北京","street":"中关村"},"hobbies":["篮球","编程","旅行"]}
    }
}

6. Serialize JavaBean to JSON

import com.alibaba.fastjson2.JSON;

class Employee {
    private String name;
    private int id;
    private double salary;
    
    // getter/setter
}

public class JavaBeanToJsonExample {
    public static void main(String[] args) {
        Employee emp = new Employee();
        emp.setName("李四");
        emp.setId(1001);
        emp.setSalary(15000.5);
        
        // 序列化JavaBean为JSON
        String json = JSON.toJSONString(emp);
        
        // 配置序列化选项(例如不输出null值)
        String jsonWithoutNull = JSON.toJSONString(emp, 
            JSONWriter.Feature.WriteNulls,  // 不输出null字段
            JSONWriter.Feature.PrettyFormat // 格式化输出
        );
        
        System.out.println("默认序列化: " + json);
        System.out.println("优化后序列化: " + jsonWithoutNull);
    }
}

二、高级使用

1. Serialize JavaBean to JSONB

import com.alibaba.fastjson2.JSONB;

public class JSONBSerializationExample {
    public static void main(String[] args) {
        Employee emp = new Employee();
        emp.setName("王五");
        emp.setId(1002);
        emp.setSalary(20000.0);
        
        // 将JavaBean序列化为JSONB二进制格式
        byte[] jsonbBytes = JSONB.toBytes(emp);  // 二进制格式,体积更小性能更高 
        
        System.out.println("JSONB二进制数据长度: " + jsonbBytes.length);
        // 输出: JSONB二进制数据长度: 28(具体长度取决于数据)
    }
}

2. Parse JSONB to JavaBean

import com.alibaba.fastjson2.JSONB;

public class JSONBDeserializationExample {
    public static void main(String[] args) {
        // 假设已有JSONB二进制数据
        byte[] jsonbBytes = { /* ... */ };
        
        // 将JSONB二进制数据反序列化为Employee对象
        Employee emp = JSONB.parseObject(jsonbBytes, Employee.class);  // 支持JSONB协议的反序列化 
        
        System.out.println("反序列化后的员工姓名: " + emp.getName());
        System.out.println("ID: " + emp.getId());
        System.out.println("薪资: " + emp.getSalary());
    }
}

3. Use JSONPath to read partial data

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONPath;

public class JSONPathExample {
    public static void main(String[] args) {
        String json = "{\"user\":{\"name\":\"张三\",\"age\":30,\"address\":{\"city\":\"北京\",\"street\":\"中关村\"}}}";
        
        // 使用JSONPath提取特定字段
        String name = JSONPath.read(json, "$.user.name").toString();  // 返回"张三" 
        int age = JSONPath.read(json, "$.user.age");  // 返回30
        String city = JSONPath.read(json, "$.user.address.city").toString(); // 返回"北京"
        
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        System.out.println("城市: " + city);
        
        // 提取数组中的元素
        String arrayJson = "[{\"id\":1,\"name\":\"A\"}, {\"id\":2,\"name\":\"B\"}]";
        String secondName = JSONPath.read(arrayJson, "$[1].name").toString(); // 返回"B"
        System.out.println("数组第二个元素的name: " + secondName);
    }
}

4. Read part of byte[] data using JSONPath

import com.alibaba.fastjson2.JSONB;
import com.alibaba.fastjson2.JSONPath;

public class JSONPathByteExample {
    public static void main(String[] args) {
        // 创建JSONB二进制数据
        Employee emp = new Employee();
        emp.setName("李四");
        emp.setId(1003);
        emp.setSalary(18000.0);
        byte[] jsonbBytes = JSONB.toBytes(emp);
        
        // 使用JSONPath从二进制数据中读取特定字段
        String name = JSONPath.read(jsonbBytes, "$.name").toString();  // 直接从byte[]中读取 
        double salary = JSONPath.read(jsonbBytes, "$.salary");  // 返回18000.0
        
        System.out.println("姓名: " + name);
        System.out.println("薪资: " + salary);
    }
}

5. 高级JSONPath应用场景

import com.alibaba.fastjson2.JSONPath;

public class AdvancedJSONPath {
    public static void main(String[] args) {
        String json = "{\"employees\":[{\"name\":\"张三\",\"age\":30},{\"name\":\"李四\",\"age\":25}]}";
        
        // 复杂路径查询
        Object names = JSONPath.read(json, "$.employees[*].name");  // 返回["张三","李四"]的List
        Object ages = JSONPath.read(json, "$.employees[?(@.age>28)].name"); // 返回["张三"]
        
        System.out.println("所有员工姓名: " + names);
        System.out.println("年龄大于28的员工: " + ages);
        
        // 多字段查询
        Object result = JSONPath.read(json, "$.employees[?(@.age>25)].{name,age}");
        System.out.println("多字段查询结果: " + result);
    }
}

三、使用建议与最佳实践

1. 性能优化建议

  • 大数据量场景:使用BeanToArray特性减少JSON体积,可提升20%以上序列化性能
  • 二进制格式:在内部系统通信中优先使用JSONB格式,比JSON字符串节省30%~50%空间
  • 避免默认序列化:使用JSONWriter.Feature自定义序列化选项,例如:
    String json = JSON.toJSONString(obj, 
        JSONWriter.Feature.WriteNulls,    // 保留null字段
        JSONWriter.Feature.PrettyFormat,  // 格式化输出
        JSONWriter.Feature.WriteClassName // 保留类名信息
    );
    

2. 泛型处理规范

  • 非泛型对象:直接使用JSON.parseObject(json, Class.class)
  • 泛型集合:必须使用TypeReference处理,例如:
    Type listType = new TypeReference<List<Employee>>(){}.getType();
    List<Employee> list = JSON.parseObject(jsonStr, listType);
    

3. 安全使用规范

  • JSONPath注入防护:对不可信的JSONPath表达式进行白名单过滤
  • 反序列化安全:使用JSONReader.Feature.SupportAutoType时需谨慎,建议设置白名单
  • 敏感字段处理:使用@JSONField(serialize = false)注解排除敏感字段

4. 特性配置推荐

// 全局配置示例(适用于Spring Boot)
@Bean
public JSONFactory jsonFactory() {
    return new JSONFactory()
        .setFeature(JSONWriter.Feature.WriteNulls, false)  // 不输出null字段
        .setFeature(JSONWriter.Feature.MapSortField, true) // 保持字段顺序
        .setFeature(JSONWriter.Feature.BeanToArray, true); // 大数据量场景优化
}

5. 版本选择建议

  • 生产环境:使用最新稳定版(当前为2.0.45+)
  • 兼容性考虑:若需兼容旧版Fastjson,注意JSON.parseObject与JSON.parse的区别
  • Spring Boot集成:通过@EnableAutoConfiguration(exclude = FastjsonAutoConfiguration.class)排除默认配置

重要提示:所有序列化/反序列化操作应始终指定目标类型,避免使用Object类型接收,防止潜在的安全风险。对于复杂对象图,建议使用JSONB格式并启用WriteClassName特性确保类型安全

java深度使用fastjson2 FastJSON2 是一个快速的 JSON 处理库,支持 Java 对象与 JSON 数据之间的转换。将 Java 对象序列化为 JSON 字符串将 JSON 字符串反序列化为 Java 对象支持复杂的对象结构,包括嵌套对象、集合、泛型等我们定义一个包含嵌套对象和集合的复杂类结构。// 构造函数、getter 和 setter public User(String name , int age , Address address , List < String > hobbies) { 阅读详情

相关推荐

FastJson2.0介绍和使用

FASTJSON v2是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库。通过同一套API,

全栈行动派的博客 6836

java fastjson2 解析JSON用法解析

你可以为Fastjson2设置自定义的日期格式,通过配置。// 设置自定义日期格式 SerializeConfig config = new SerializeConfig();// 将日期对象转换为 JSON 字符串 String jsonString = JSON . toJSONString(date , config);// 输出: 2025-01-13 14:30:00 } }

cheng_ji的专栏 2329

Java FASTJSON2 一个性能极致并且简单易用的JSON库

Java FASTJSON2 一个性能极致并且简单易用的JSON库

一碗清深的博客 1460

fastjson2使用

fastjson2使用

小何的博客 5296

代谢组学数据分析实战:用R语言从PCA、PLS-DA到OPLS-DA一步步搞定(附代码)

本文详细介绍了使用R语言进行代谢组学数据分析的全流程,从数据预处理到PCA、PLS-DA和OPLS-DA模型构建与验证。通过实际案例和代码示例,帮助研究者掌握关键分析技术,提升数据解读能力,特别适合生命科学领域的研究人员。

weixin_28689507的博客 132

模电学习笔记(十二)——跨阻放大器

模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻。 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15V 1.计算R1的值(增益电阻器) 2.计算C1的值满足电路带宽 ...

tang11081023的博客 2万+

fastjson2 实用功能

fastjson2的设计目标是提供一个高性能的JSON库,适用于各种场景,包括Java服务端、客户端、Android以及大数据场景等。通过上述示例和功能描述,可以看出fastjson2在处理JSON数据时具有强大的能力和灵活性。fastjson2是一个高性能的Java JSON处理库,由阿里巴巴开发,主要用于Java对象与JSON格式之间的转换。

抱着奶瓶去逛Gai 617

别再为域名备案发愁了!微信小程序后端调用,试试这个‘官方捷径’——云托管

本文介绍了微信小程序后端部署的新思路——利用微信云托管服务绕过域名备案难题。通过详细的环境准备、数据库配置、服务部署和小程序端调用方案,帮助开发者快速实现小程序与后端服务的无缝对接,大幅缩短上线周期并降低运维成本。

weixin_29243279的博客 669

【Java】Java的fastjson2中JSONObject和JSONArray对象的使用方法

本文介绍了Java中fastjson2库的JSONObject和JSONArray使用方法。通过示例代码演示了如何创建JSON对象和数组,添加键值对,并将多个JSON对象组合成嵌套结构。最终生成的标准JSON字符串包含状态码、用户数据等信息,展示了fastjson2处理JSON数据的便捷性。文中还提供了jar包下载地址和完整的Java源码示例,便于开发者快速上手使用fastjson2进行JSON数据处理。

tttzzzqqq2018的博客 283

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了

当你在Coding Block中添加自定义字段的时候

matinal 當冬夜漸暖 。公众号:matinal 4567

在Cursor中集成Ollama与Qwen2.5‑Coder:零成本本地AI开发环境搭建

本文详细介绍了如何零成本搭建本地AI开发环境,通过将Cursor IDE与本地运行的Ollama及Qwen2.5-Coder模型集成,实现数据不出本地的智能编程辅助。教程涵盖Ollama安装、模型拉取、ngrok内网穿透配置及Cursor设置等核心步骤,并提供了实战测试与常见问题排错指南,为注重隐私与成本的开发者提供安全高效的解决方案。

weixin_29296241的博客 1071

使用fastjson解析的jsonPath报错 :com.alibaba.fastjson.JSONPathException: not support jsonpath

如下代码,使用fastjson解析jsonPath时,会报标题上所示的错误。 JSONObject json = new JSONObject(); json.put("probability(0)", 0.4); Object o = JSONPath.eval(json, "$.probability(0)"); 因为json的key中包含了小括号,而小括号是特输字符,在进行jsonPath解析时需要进行转义,在其前面加上两个反斜杠即可。 Object o = JSONPath.e

qq_24082175的博客 3663

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)

文章目录6.1 常用控件6.1.1 单选按钮(RadioButton)6.1.2 复选框(CheckBox)6.1.3 框架1. 面板控件Panel2. 分组框GroupBox3. TabControl控件6.1.4 应用实例6. 2 列表框和组合框6.2.1 列表框(ListBox)6.2.2 组合框(ComboBox )6.2.3 应用实例6.3 用户交互界面6.3.1 滚动条和进度条6.3.2 定时器6.3.3 菜单设计菜单设计概述MenuStrip和ContextMenuSt

智慧空间实验室 2919

Fastjson2 全面使用指南(Java后端开发者专用)

Fastjson2 是阿里巴巴推出的高性能 JSON 处理库,相比 fastjson 1.x 在性能、安全性和功能上均有显著提升。它支持 JSONB 二进制格式、JSONPath 查询、流式处理等特性,兼容 Jackson/Spring 注解规范。基础用法包括 JSON 与 Java 对象的相互转换、JSONObject/JSONArray 的动态操作,以及日期格式等高级配置。进阶功能涵盖 JSONB 二进制处理、JSONPath 数据查询和流式读写工具类(JSONWriter/JSONReader)。通过

python15397的博客 1377

从重复劳动到智能闭环:OpenClaw实战搭建小红书&公众号全自动化运营体系

如果你有一定的代码开发能力,还可以为OpenClaw开发自定义插件,拓展更多的功能,比如对接更多的平台,实现图文+短视频的全平台自动化运营;对接视频剪辑工具,实现短视频脚本生成、剪辑、配音、发布的全流程自动化;对接私域运营工具,实现公域引流、私域承接、用户转化的全链路自动化;对接电商平台,实现内容种草、商品上架、订单管理的全流程自动化,打造完整的内容电商闭环。新媒体运营的本质,是内容价值的传递,而不是机械的重复劳动。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 310

STM32实战开发(128):智能位移检测 - 使用STM32实现位移检测

STM32作为一款功能强大的微控制器,由于其出色的处理能力、丰富的外设接口和低功耗特点,成为实现智能位移检测系统的理想选择。未来,可以通过结合更多传感器、多种数据处理算法以及云平台技术,进一步提升系统的智能化水平,优化位移测量的精度和稳定性。本篇博客将介绍如何使用STM32微控制器实现智能位移检测系统,涉及硬件设计、传感器选择、软件开发等多个方面,提供详细的设计步骤,并给出完整的代码示例,帮助开发者快速搭建智能位移检测系统。蜂鸣器连接到STM32的GPIO端口,当位移超过设定的阈值时,蜂鸣器发出警报。

2201_76125393的博客 900

【亲测免费】 探索高效数据传输之门:FastJSON 1.2.83 强力推荐

探索高效数据传输之门:FastJSON 1.2.83 强力推荐 【下载地址】fastjson-1.2.83.jar下载 本仓库提供 `fastjson-1.2.83.jar` 文件的下载。`fastjson` 是阿里巴巴开源的 JSON 解析库,能够高效地解析 JSON 格式的字符串,并支持将 Java Bean 序列化...

gitblog_09758的博客 961

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

FastJSON2 完全使用指南(Java 后端开发实战版)

FastJSON2是阿里巴巴开源的高性能JSON处理库,本文提供了完整的Java后端开发使用指南。主要包括: Maven依赖引入和Spring Boot替换Jackson的配置方式; 常见使用场景:JSON字符串解析为JSONObject/JSONArray/POJO、Java对象序列化; 动态构建JSON数据; 特性说明:支持泛型、忽略大小写、格式化输出等。该库性能优异,适合高并发场景,是Spring Boot项目中推荐的JSON处理方案之一。

python15397的博客 1597

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

FastJson2 完整使用指导文档(Java 后端企业级实战版)

FastJson2是阿里巴巴开源的高性能JSON库,作为FastJson 1.x的重构版本,在性能、安全性和功能上全面升级。它提供了高效的JSON序列化/反序列化能力,支持复杂数据结构处理,并修复了1.x版本的安全漏洞。相比Jackson和GSON,FastJson2在性能上具有明显优势(序列化速度快2倍以上),同时完全兼容Java 8+新特性。文档包含详细的代码示例,展示基础用法如对象序列化、JSON字符串解析等,适合Java后端开发者用于企业级应用开发,特别是在高并发场景下可显著降低系统负载。

python15397的博客 3146

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

FastJson2 标准使用指南(企业级 Java 后端开发规范版)

企业级 FastJson2 标准使用指南,针对 Java 后端开发场景,提供安全、高效的 JSON 处理规范。指南涵盖基础序列化/反序列化操作,强调类型安全与性能优先原则。核心要点包括:推荐使用 JSON.toJSONString() 进行序列化,避免 null 值输出;反序列化时必须指定目标类型(如 User.class),禁止使用无类型解析;处理集合时采用 JSON.parseType() 解决泛型擦除问题。所有示例均结合实际业务场景,确保代码可维护性,适用于 Spring Boot 微服务、REST

python15397的博客 1644

FASTJSON v2详解

FASTJSON 2是一个性能极致并且简单易用的Java JSON库。FASTJSON 2是FASTJSON项目的重要升级,和FASTJSON 1相比,性能有非常大的提升,解决了autoType功能因为兼容和白名单的安全性问题。性能极致,性能远超过其他流行JSON库,包括jackson/gson/org.json,性能数据: https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark。

lw的博客 5268

fastjson 2

1. FASTJSON 2.0介绍 FASTJSON 2.0是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库,同一套API支持JSON/JSONB两种协议,JSONPath是一等公民,支持全量解析和部分解析,支持Java服务端、客户端Android、大数据场景。 FASJTONS2代码 https://github.com/alibaba/fastjson2/releases/tag/2.0.1 JSONB格式文档 https://github.com/ali

qq_46494427的博客 2646

Fastjson 使用指南

1 定义import com/**// 序列化, // log.info("serializer : [{}]" , serializer);// 数据源 // log.info("object : [{}]" , object);// 字段值 // log.info("fieldName : [{}]" , fieldName);// 字段名称 // log.info("fieldType : [{}]" , fieldType);

极客鼠之家 1104

再见 Fastjson,Fastjson 2 正式发布,性能炸裂…

1. FASTJSON 2.0介绍 FASTJSON 2.0是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库,同一套API支持JSON/JSONB两种协议,JSONPath是一等公民,支持全量解析和部分解析,支持Java服务端、客户端Android、大数据场景。 FASJTONS2代码 https://github.com/alibaba/fastjson2/releases/tag/2.0.1 JSONB格式文档 https://github.com/ali

qwer123451234123的博客 8988

Fastjson

Fastjson是一个高性能的Java JSON库,由阿里巴巴集团开发和维护。Fastjson提供了一种简单而强大的方式来处理JSON数据,包括序列化、反序列化和操作JSON对象。它利用Java自带的反射机制来解析JSON字符串,可以将JSON字符串转换成Java对象,或者将Java对象转换成JSON字符串。注意事项安全性问题:尽管Fastjson在性能上表现出色,但在处理JSON数据时仍需要注意安全性问题。特别是其AutoType功能的安全性问题较为突出,因此在使用时需要谨慎。

刘皇叔说Java的博客 2956

fastjson2的时间序列化使用指南

本文主要探讨了 fastjson2的时间序列化和反序列化的简单使用,并且给出了代码示例。

pzzhao的博客 3156
上一篇: Maven 完整实战指南:从入门到精通(Java 后端开发视角)
下一篇: Fastjson2 全面使用指南(Java后端开发者专用)
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值