大家好,我是易,今天看到好友推荐了几个 Java 的开源项目,都很不错,给大家分享一下~

分别是:

  • Mindustry :一款 Java 语言编写的沙盒塔防游戏,目前已经上架 Apple Store 和 Steam。

  • Caffeine :性能超强的本地缓存解决方案。

  • JADX : 一款强大的反编译工具。

  • Debezium :一个用于追踪数据更改(change data capture ,CDC)的开源项目。你可以通过 Debezium 轻松实现数据同步,将一个数据源中的数据同步到其他数据源,比如将 MySQL 中的数据同步到 ES 中。

  • JNDI-Injection-Exploit :一个开箱即用的 JNDI 注入工具。

Mindustry:沙盒塔防游戏

Mindustry 是一款 Java 语言编写的沙盒塔防游戏,目前已经上架 Apple Store、Google Play 和 Steam,支持 Windows,Linux,安卓等平台。

是的!!!你没看错,这款游戏就是使用 Java 语言编写的。

目前的话,这个游戏在 Apple Store 评分 4.7,Google Play 评分 4.6, Steam 上也有 96% 的好评。非常厉害了!

这个游戏的很多用户直呼:“一玩就停不下来了!”

另外,这个项目使用 Gradle 构建,如果你想要在本地运行这个游戏的话,你的 JDK 版本至少是 JDK16。

作者在 README 文档中提供了这个项目详细的运行方法,你可以直接在本地对游戏进行修改。

不过,最让我佩服的是这个项目作者的毅力。虽然这个游戏已经发布 4 年多了,但是作者依然还在不断维护游戏,不断完善游戏的玩法。

大家感受一下项目作者的提交记录吧!简直恐怖如斯!

  • 项目地址:https://github.com/Anuken/Mindustry

  • 官网:https://mindustrygame.github.io/

Caffeine:本地缓存之王

Caffeine 是一款强大的本地缓存解决方案,性能非常 。

有多牛呢?看下 Caffeine 和其他可以提供本地缓存的工具的性能对比吧!

Caffeine 和 Guava 一样,通过 API 的方式即可使用缓存。

LoadingCache<Key, Graph> graphs = Caffeine.newBuilder() .maximumSize(10_000) .expireAfterWrite(Duration.ofMinutes(5)) .refreshAfterWrite(Duration.ofMinutes(1)) .build(key -> createExpensiveGraph(key));

不过,相比于 Guava 提供的缓存功能来说 Caffeine 在各个方面都要更加优秀。像 Redisson、Cassandra、Hbase、Neo4j、Druid 等知名开源项目都用到了 Caffeine。

相关文章推荐:万字详解本地缓存之王 Caffeine 的高性能设计之道!

JADX:强大的反编译工具

jadx 是一款功能强大的反编译工具,使用起来简单方便,不光提供了命令行程序,还提供了 GUI 程序。一般情况下,我们直接使用 GUI 程序就可以了。

jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk, .dex, .jar,.zip等格式的文件

就比如说我们需要反编译一个 jar 包查看其源码的话,直接将 jar 包拖入到 jadx 中就可以了。效果如下:

再比如说我们想看看某个 apk 的源码,我们拿到 apk 之后直接拖入进 jadx 中就可以了。效果如下:

除此之外,这个工具具备下面这些特性:

  • 自带强大的搜索功能,支持多种匹配模式;

  • 支持查看类,变量或者方法使用情况;

  • 支持在源码中添加注释

  • 支持反混淆

  • ......

这个工具使用起来还挺简单的,立个 flag :下周出一篇 JADX 使用介绍的文章。

项目地址:https://github.com/skylot/jadx

Debezium:追踪数据更改

Debezium 是一个用于追踪数据更改(change data capture ,CDC)的开源项目,基于 Java 语言,利用 Kafka 和 Kafka Connect 实现持久性、可靠性和容错性,工作原理类似大家比较熟悉的 Canal、Maxwell,通过数据库日志来获取变更。

CDC(Change Data Capture)是一种软件设计模式,用于确定和跟踪已变更的数据,以便可以对更改后的数据采取措施,

Debezium 已经支持 MySQL、PostgreSQL、Oracle、Cassandra、MongoDB、SQL Server 等数据库。

你可以使用 Debezium 来监控你的数据库,每一个提交的行级别(row-level)的更改都会被捕获。因此,你可以通过 Debezium 轻松实现数据同步,将一个数据源中的数据同步到其他数据源,比如将 MySQL 中的数据同步到 ES 中。

下图是基于 Debezium 追踪数据更改常见的一种架构:

相对于 ETL 数据同步方案来说,Debezium 这种方式更加灵活。

Debezium 的官方文档中还介绍了很多其他有价值的使用场景,感兴趣的小伙伴可以自己去看看。

Debezium常见适用场景

  • 项目地址 :https://github.com/debezium/debezium

  • 中文介绍:https://github.com/debezium/debezium/blob/main/README_ZH.md

  • 官网:https://debezium.io/

  • 官方文档:https://debezium.io/documentation/

JNDI-Injection-Exploit:JNDI 注入工具

JNDI-Injection-Exploit 这个项目是一个开箱即用的 JNDI 注入工具,用于生成 JNDI 链接并启动后端相关服务,可用于 Fastjson、Jackson 等相关漏洞的验证。

JNDI 是什么呢? 简单来说,JNDI (Java Naming and Directory Interface) 是一组应用程序接口,类似于一个索引中心,它允许客户端通过 jndiName 来定位用户、网络、机器、对象和服务等各种资源。

//指定需要查找name的名称 String jndiName= "jndiName"; //初始化默认环境 Context context = new InitialContext(); //查找该name对应的资源部 context.lookup(jndiName);

当 jndiName 变量可控时,如果获取到的资源是远程 class 文件的话,就可能会触发执行恶意代码,这也就是我们常说的 JNDI 注入。

JNDI 这家伙带来了很多重大的漏洞,就比如前段时间技术圈刷屏的 Log4j2 重大漏洞 就是这玩意引起的。

项目地址:https://github.com/welk1n/JNDI-Injection-Exploit

几个很火的 Java 项目,开源!相关推荐

  1. 你应该知道的 7 个很棒的 Java 项目

    Java生态系统拥有庞大而多样化的开源项目,旨在满足几乎所有想象得到的需求.很容易错过其中一些伟大的项目.以下是七个开源Java项目,涵盖从全栈应用程序开发到微服务.Wasm和JVM替代方案的所有内容 ...

  2. java 输出ab_一道在知乎很火的 Java 题——如何输出 ab【转】

    这是一个源自知乎的话题,原贴链接:一道百度的面试题,有大神会嘛? 虽然我不是大神,但我也点进去看了一下,思考了一会之后有了一些思路,然后去看其它人的答案的时候果然全都已经被各路大神们先想到并贴出来了, ...

  3. 近些年很火的Java,就业前景到底怎么样?

    Java是快速发展的编程语言,企业开发很多都会优先考虑Java,因为它安全.简单.面向对象.多线程.面对人才需求如此大的的现状,Java开发就业前景到底怎么样? Web开发: 能做大型的互联网网站如, ...

  4. c java python用于什么_很火的Java、Python、C、C++、PHP各有什么用途?一文帶你了解...

    用任何編程語言來開發程序,都是為了讓計算機干活,比如編寫一篇文章,下載一首MP3等,而計算機干活的CPU只認識機器的指令.所以,盡管不同的編程語言差異極大,最后都得"翻譯"成CPU ...

  5. java 判断是不是奇数_很火的Java题——判断一个整数是否是奇数

    请写一个方法,判断一个整数是否为奇数: public static boolean isOdd(int i); 最普通的写法,也体现了我们的思考过程 public static boolean isO ...

  6. 超强使用干货!教你如何吃透一个Java项目

    整理了一些Java项目,分享给大家 1. 一款Java开源的Spring Boot即时通讯IM聊天系统 地址:一款Java开源的Spring Boot即时通讯IM聊天系统 2. Java外卖点餐系统[ ...

  7. 秒建一个后台管理系统?用这5个开源免费的Java项目就够了

    这是我的第 196 期分享 作者 | Guide 来源 | JavaGuide(ID:JavaGuide) 分享 | Java中文社群(ID:javacn666) 大家好,我是 Guide 哥,一个三 ...

  8. eclipse建java项目不见_秒建一个后台管理系统?用这5个开源免费的Java项目就够了...

    这是我的第 196 期分享 作者 | Guide 来源 | JavaGuide(ID:JavaGuide) 分享 | Java中文社群(ID:javacn666) 大家好,我是 Guide 哥,一个三 ...

  9. 码云上面优秀的java项目_秒建一个后台管理系统?用这5个开源免费的Java项目就够了...

    以下推荐项目都是码云上的优质项目,并且都是项目快速开发脚手架,代码质量什么的无法保证能有多好,毕竟很多也是个人开发,或多或少也有个人色彩影响. 不过既然开源出来,这么多人参与,一般情况下项目整体质量可 ...

最新文章

  1. mysql 查看表结构,字段的基本信息(简单明了)。
  2. 【C#串口编程计划】如何避免关闭串口时软件死锁
  3. Leetcode: 112. Path Sum
  4. 2015.7.16(小高开忍住没有减仓,大盘涨3.5%,百股涨停——买进中重、中航,指导WXL错误)...
  5. JS将日期转换为yyyy-MM-dd HH:mm:ss
  6. 四十四种Javascript技巧大全
  7. 表的插入、更新、删除、合并操作_20_通过表关联删除多张表
  8. 连续对焦 auto对焦_如何在Windows 10上使用对焦辅助(请勿打扰模式)
  9. 对表头指针、表头结点,单链表删除的理解
  10. 五、深入理解Mybatis中的参数parameterType (传递一个简单参数,传递多个参数:@Param、使用自定义对象、按位置、使用Map)
  11. mac使用codelite运行程序没有输出
  12. NumPy Cookbook 带注释源码 六、NumPy 特殊数组与通用函数
  13. Java实现多线程的四种实现方式
  14. 蓝桥杯 ADV-63 算法提高 利息计算
  15. torch --用法
  16. 安卓rom制作教程_【教程】安卓手机刷入第三方ROM通用教程
  17. Hadoop集群的搭建(结束)——修改hadoop配置文件以及启动集群服务
  18. 项目经理应该具备的技能和素质是什么?
  19. HTML基础常识问答(一)
  20. java接口和抽象函数_Java接口和抽象类区别

热门文章

  1. 车主换胎手册--十大主流轮胎品牌怎么选
  2. 173-C++面向对象高级开发-上(侯捷)
  3. 计算机毕业设计SSM本科生专业分流管理系统【附源码数据库】
  4. 【Latex】引用文献时et al缺少逗号
  5. 一起来看看AMD最新显卡驱动22.11.1!
  6. css 子元素margin-top影响了父元素
  7. android版本10安装包,Android 10系统,Android 10手机系统正式版安装预约 v10.0-手游汇...
  8. 硬盘2.5寸4tb服务器硬盘,西部数据My Passport 2.5英寸4TB移动硬盘
  9. GAE、SAE和BAE的对比分析
  10. 爬虫技术(03)神箭手爬虫Configs详解