栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Fastjson代码分析团队分工及代码介绍

Java 更新时间:发布时间: 百科书网 趣学号

2021SC@SDUSC

我们小组共有4人,对fastjson开源项目的代码进行分析

目录

fastjson代码简介

fastjson代码分析的必要性和重要性

fastjson代码概述

团队分工


fastjson代码简介

fastjson开源git仓库:https://github.com/alibaba/fastjson

fastjson是一个能将Java对象转化成JSON格式的一个Java类库;fastjson也可以将JSON字符串转化为对应的Java对象。fastjson可以以Jar包的形式,嵌入已存在的各Java项目中以供调用。


fastjson代码分析的必要性和重要性
  1. 当前服务器与客户端(Browser-Server架构)交互的绝大多数形式都是JSON,在server端极度需要一个高性能、低资源占用的JSON转化器
  2. Java在Server端占据了绝大多数,几乎全部后端服务器都是Java实现,需要一个基于Java的JSON转化器
  3. fastjson是当前世界上性能最好的Java端JSON转化器,分析其中的核心优质代码,对于我们了解Java性能优化、JSON转化对内部逻辑实现,提高Java开发技巧等都有着很重要的意义

fastjson代码概述

经过我们组对fastjson开源代码的了解以及简单分析,我们得出以下结论

  1. JSON抽象类是主类,设计了fastjson需要实现的所有功能的方法模型
  2. JSONObejct,JSONArray继承了JSON抽象类,实现了抽象方法,是方法的核心,也是使用fastjson JAR包用户主要使用的对象

 

由于JSON类规定了绝大部分对外的函数接口,以下重点分析JSON抽象类包含的方法:

  1. parse及其他同类方法:将输入的JSON字符串转化为某个Java类
  2. toJSONString及同类方法:将传入的Java对象转化为JSON字符串
  3. put,set方法:手动设置JSON对象的某个属性值
  4. 其他内部方法:为parse、toString等方法提供服务,将相同内容提取出。

此外,fastjson还编写了为JSON及其派生类提供服务的类,根据功能不同存放在不同的包内,以下简要介绍

  • annotation包:fastjson项目组编写的Java注解包
  • parser包:为parse及同类方法提供服务的包,主要以deserializer(反序列化)为主
  • serializer包:为toString类型的方法提供服务,主要负责将JSON对象转化为字节流,提供给toString方法使用
  • support包:主要存放fastjson调用的其他开源代码
  • util包:存放为fastjson功能提供基础服务的类

此外,还有pom.xml等其他文件,是fastjson项目使用的包括maven在内的项目管理等工具等配置文件


团队分工
  1. 成凯、李伟涛主要关注toString类型的方法
  2. 我负责parse这一类方法中的parseArray(一系列重载函数)的代码分析
  3. 何梓瑞负责parse中的parseObject一系列的方法

在组内讨论时,我们发现parse的方法和toString方法内部逻辑大有不同,所以我们将这两类分开进行讨论。我和何梓瑞负责parse的方法,在parse方法中,存在大量有可能共用的方法(parser),我们决定一起讨论;与此同时我们俩各自确定一个调用parser的方法方向,我选择了parseArray,何梓瑞选择了parseObject,细节有待于根据代码进行更具体分析后的讨论。


总结

fastjson代码的分析才刚刚开始,我们组内成员还只停留在代码的结构分析上,有待进一步深入,按照先前的分工对代码进行深入的分析、解读。按照计划,我们将在下个星期开始对fastjson的各方法开始分析工作。感谢戴老师的指导,感谢各位老师的阅读

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/274824.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号