当今互联网上占有率最大的编程语言是什么?是爪哇!这两年一直听说Java要死了,走下坡路了。没错,Java确实在走下坡路,未来很难说,但是死骆驼总比马大。未来三五年,相信Java依然是业界的“老大哥”!刚学完Java的基本语法,你是否也遇到过不知道Java能做什么的烦恼?你以为Java只能用System.out.println在控制台打印猫狗父子?不!在开源世界中,有无数的Java项目等着你去发现和探索。下面就让我们跟着这篇文章看看都有哪些开源项目吧。这个问题是Java。希望本文能帮助大家在GitHub上找到适合自己学习的Java开源项目。你可以把这个学习当成一个游戏,一路打怪升级,直到过关。我一步步设计了三个阶段:Bronze->Silver->Gold。为什么只有黄金?因为成为真正的大牛的路很长,相信淘金之路。你一定会有自己的想法,大胆走自己的路,成为那颗璀璨的“钻石”!一、青铜万事开头难1.1快乐小鸟作为整篇文章的开头,我选择了一个比较简单好玩的项目,希望能激起大家对编程的兴趣!笔者只用Java标准库还原了曾经风靡手机的《愤怒的小鸟》。首先克隆下载源码,可以直接通过java-jarFlappyBird.jar运行,也可以通过运行源码中的GameApp:main方法启动整个游戏。通过学习本项目,你可以了解到:使用标准库中的一些工具,比如采集、播放音效、加载图片如何使用多个文件,将不同的逻辑拆分到不同的类中,相互配合构建整个状态游戏的一些设计模式的应用,比如单例、对象池GitHub地址:https://github.com/kingyuluk/FlappyBird1.2Java圣经高尔基说:“书籍是人类进步的阶梯”。无数的书籍在历史的长河中诞生,计算机领域也不例外,《Think in Java》是我要重点关注的一本书。这本书给我的第一印象是:完整!从最基本的数据类型到面向对象,再到泛型反射的高级主题,无所不包。之前看过实体书第四版,现在好消息是第五版来了!并以开源的形式。经过之前的小项目,大家对编程有了一点点的感觉。是时候巩固理论知识了。俗话说:“地基不牢,地动山摇”。在这个阶段读这本书,一定会给你不一样的感受。我什至建议大家每到一个阶段就回过头去读这本经典的书,每一次都会有新的理解。项目地址:https://github.com/LingCoder/OnJava8在线阅读:https://lingcoder.github.io/OnJava8/#/sidebar1.3一张图顶一千字看看这个项目,范围从Java基础到标准库JVM到Spring到各种常用的中间件Redis、Zookeeper等。每一部分都用思维导图对各个知识点进行梳理,既能对所要学习的知识有一个大概的了解,又能便于学习后对所学知识的巩固和复习,可以说是兢兢业业。您可以按照自己的节奏和学习进度查看每个知识点。GitHub地址:https://github.com/huangliangyun/MindManager2.白银坚持就是胜利2.1春天来了Java在生产中多是在服务端开发的,所以在服务端还有一个不可回避的问题Java框架是Spring。我相信你一定听说过这个名字。Spring的框架现在基本上已经是Java服务器的工业级标准了。我工作过的公司都没有用过它。Spring发展至今,其工程化的复杂度也有了很大的提高,各种封装和抽象,理解原理变得非常困难,但是你不用太害怕,因为你不需要知道Spring的原理就可以完成功能开发和通用使用。为了进一步提升开发体验,Spring团队推出了SpringBoot框架。你可以认为SpringBoot封装了原来的SpringMVC,内置了Tomcat容器,仅此而已。最后,如果你是新手,建议直接从2.0开始。关于SpringBoot,这里推荐一个项目:https://github.com/yizhiwazi/springboot-socks项目里面内置了很多有用的片段,从最简单的HelloWorld到如何集成Mybatis,或者如何跨域,以及如何发送邮件等等,都有对应文件夹的例子。这个阶段,建议沿着以下路线学习:从头开始一个空的SpringBoot项目,可以学习SpringBoot的最低配置,以及如何声明一个REST风格的Controller并返回简单的数据Mybatis-Plus),并通过REST接口进行简单的增删改查操作(根本不需要页面,只需要一个Postman或者curl)使用FreeMarker或者Thymeleaf等模板引擎写一个简单的页面(可以是一些简单的输入框,按钮,完全不需要考虑样式),然后将前面的增删改查操作串起来,通过模板引擎将结果渲染到浏览器。完成这个阶段,相信你对企业中的前后端交互和框架的基本使用有了一个大概的了解。然后可以尝试在这个基础上做一些小功能,比如登录,注册等等。2.2人生不易糊涂。Java本身因其冗长的语法而受到最多的批评。hutool是一个简单易用的三方Java类库,里面包含了大量工具类的静态方法,封装了原本复杂的调用。而它的源代码本身也是一个非常值得学习的优秀开源项目。通过学习,你可以了解一个优秀的lib项目是如何组织和规范代码的。也希望读者以后有引以为豪的开源项目。项目地址:https://github.com/looly/hutool官网地址:https://www.hutool.cn3、黄金不经历风雨怎能见彩虹?3.1BeNB,notNewBee,whatyouneed媲美生产环境的完整项目体验,而这个开源项目正好可以满足要求。推荐这个项目的理由如下:项目规模大很多,不仅有后端代码,还有一套完整的前端页面,赞!商城的基本功能已经具备:首页、登录、浏览商品、购物车、下单等,甚至还有后台管理功能,赞!GitHub地址:https://github.com/newbee-ltd/newbee-mall预览地址:http://mall.newbee.ltd3.2在成神之路之前,是一个实践项目。到了这里,就要放慢脚步,朝着更高一层的方向出发。俗话说“知其所以然”。有了实践的帮助,学习理论就不会那么枯燥,也因为有了理论,实践才会有更好的基础。项目地址:https://github.com/doocs/advanced-java在线阅读:https://doocs.github.io/advanced-java这本在线书籍包含了很多Java生态的进阶话题,比如高并发和分布式格式、缓存、高可用性、微服务等。一个问题引出读者的思考,让读者跟着作者的思考一步步从提出问题、分析问题到最后解决问题。3.3走自己的路,让别人说走。小鸟有没有击中你的心?无论如何,我有它。刚开始学Java的时候,也玩过一些小游戏,比如扫雷、贪吃蛇、坦克大战等,那时候还不知道有GitHub,不然这些项目都能跟大家见面。我当时是瞎写的,对编程的感觉并不强烈,但是自己重现一些儿时的回忆感觉还是很棒的。如果你也想用Java写小游戏的话,不妨看看下面这个项目。项目地址:https://github.com/AlmasB/FXGLGames官网地址:http://almasb.github.io/FXGLGames项目中内置了一些简单游戏的demo,通过学习可以快速上手,而且框架还可以轻松将游戏打包成一个可执行文件,快来试试吧!最后,HelloGitHub想让更多的人爱上编程和开源,一直在努力探索如何帮助更多的人。
