Java源码解析库对比:javaparser、qdox、spoon
Qdox
:paul-hammant/qdox
JavaParser
:javaparser/javaparser
SPOON
:INRIA/spoon
Qdox
|
JavaParser
|
SPOON
|
|
---|---|---|---|
GitHub 社区 |
1.3k Users 8 Contributors 328 stars⭐ 45 forks |
3.3k Users 169 Contributors 4.4k stars⭐ 994 forks |
764 Users 109 Contributors 1.4k stars⭐ 297 forks |
易用性 | 高(API 简单) | 较低 | 中(含 AST 可视化工具) |
解析速度 | 快 | 较快 | 中 |
功能性 | 低(无法解析方法体) | 较高 | 高(含匹配过滤器API) |
构建技术 |
JFlex:词法分析器 BYacc/J:语法分析器 |
纯 Java 构建 AST |
纯 Java 构建 AST |
解析 jdk 库java.util.Set
|
支持 | 仅支持用户类 | 仅支持用户类 |
解析引用 | 强引用 |
弱引用 允许引用节点不存在 |
弱引用 允许引用节点不存在 |
学术界 贡献度 | 低 | 低 | 高 |
工业界 贡献度 | 低 | 较高 | 较高 |
成熟度 | 一般(小bug较多) | 成熟 | 成熟 |
资源 | 少 |
网站:JavaParser - Home 论坛:javaparser/javaparser - Gitter 文档:JavaParser: Visited |
文档:spoon-user-manual 论文:Spoon: A Library for … 论文:其余论文 |
Java源码解析库对比:javaparser、qdox、spoon相关推荐
- String为什么不可变?(Java源码解析)
String的源码解析 public final class String{private final char value[];//容器,存放字符串的private int hash;//哈希值pr ...
- 微软OA认证/ADFS认证 java 源码解析
依照项目的需要,客户需要使用微软的认证,仔细走了一遍官方的源码,希望可以给后来人 指条路 1.先去微软的官网下载java版本的源代码 下载地址 上面的下载页面 会有一套具体的申请账号+配置流程 ,跟着 ...
- FingerPrint:go转java源码解析
需求: 对数据库做一个哈希压缩吧,用数字指纹 看看go源码: package mainimport ("fmt" )type Label struct {Name string ` ...
- Java源码解析:深入理解==和equals()
1.结论 1.1 == 1.所有原始数据类型,比较的是值 2.所有的对象比较的是内存地址 注意点:Integer类有对象池[-128,127] 1.2 equals()方法 1.未重写的equals( ...
- Java源码解析:hashCode与相同对象的关系
1.普通类对象 1. hashCode相同,不一定是同一个对象 2. 同一个对象的,hashCode值一定相同 2. 数值型的原始数据类型对应的包装类 只要值是一样的,hashCode就会是相同的.尽 ...
- Java源码解析——Java IO包
一.基础知识: 1. Java IO一般包含两个部分:1)java.io包中阻塞型IO:2)java.nio包中的非阻塞型IO,通常称为New IO.这里只考虑到java.io包中堵塞型IO: 2. ...
- java解析java源码_JAVA语言-Java源码解析-Stack源码分析
一.简介 stack类图.png 栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景.Java API中提供了栈(Stacck)的实现.Stack类继承了Vec ...
- 【Java源码解析】如何严谨地重写 equals 方法、getClass 方法与 instanceof 关键词用法比较
文章目录 如何严谨地重写 equals 方法 1 equals 方法概述 2 String 类中的 equals 方法 3 自定义 equals 方法时出现的问题 4 instanceof 关键词与 ...
- java源码解析之反射(二)
依赖的结构图: 查看全文 http://www.taodudu.cc/news/show-2970933.html 相关文章: js基础 宿主环境 [笔记]实战mpvue2.0多端小程序框架--原生小 ...
最新文章
- matlab矩阵运算_MATLAB基础学习之三种基本运算
- Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序
- HTML中的转义字符 (转)
- idea导包都报错_IDEA+Springboot 导出jar包,war包
- Python 编码风格参考
- CDN关键技术研究与应用—内容路由技术
- 最不适合做数据分析的6种性格,看看你占了几个?
- ALGO-146算法训练 4-2找公倍数
- php解析、封装JSON与XML
- C++11for(auto iter : container)auto简介
- mac 下tomcat 9.0+eclipse+mysql8.0.12配置相关问题
- mmap文件内存映射
- 计算机系统更新从哪关闭,电脑总提示系统更新,怎么关闭?
- python和jieba库进行简单文本处理之天龙八部小说
- 程序虽小但功能强大!5个实用的微信小程序,每款都是生活好帮手
- python网课一般多少钱-十大python零基础编程在线网课一对一费用多少钱
- 两年数据对比柱形图_呕心整理4大类12个图表类型,轻松搞定数据可视化
- UG10.0 工程图 在注释的时候 引用/插入 组件尺寸
- 【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇)
- SpringBoot将数据生成Excel表
热门文章
- unity sprite保存成PNG图片
- 单片机c语言 课程设计报告,C语言编写单片机万年历系统课程设计报告98分
- 雷军建百亿基金:小米金山均出资 投资集成电路及汽车电子
- bzoj3109【CQOI2013】新数独
- python中的replaceall_java基础 — String中replace和replaceAll方法
- 【渝粤题库】陕西师范大学190002 思想道德修养与法律基础 作业(高起本、专升本、高起专)
- power的数据库设计MySQL_使用 PowerDesigner 设计数据库 - ~~鱼跃~~ - 博客园
- MySQL-电商数据建表
- python opencv 连通域_OpenCV中一个连通域处理函数
- 垃圾收集器G1ZGC