首家大数据培训挂牌机构 股票代码:837906 | EN CN
Java是什么?
Java历史
Java语言特点
C++ VS Java比较
Java工厂设计模式
Java抽象工厂模式
Java单例模式
Java建造者(Builder)模式
Java原型模式
Java适配器模式
Java桥接模式
Java获取网络文件大小
Java套接字到单一的客户端
Java连接套接字
Java URL部分
Java URL连接日期
Java下载网页
Java主机指定IP地址
Java确定本地IP地址
Java检查端口占用
Java查找代理服务器设置
Java创建Socket
Java线程实例
Java检查线程活着
Java如何检查一个线程停止或没有?
Java解决死锁实例
Java如何获取正在运行的线程的优先级?
Java如何监视线程的状态?
Java获取线程名称
Java线程生产者消费者问题
Java如何设置线程的优先级?
Java如何停止线程一会儿?
Java如何暂停线程?
Java获取线程ID
Java如何检查线程的优先级?
Java显示所有正在运行的线程?
Java显示线程状态
Java中断一个线程
Java Applet实例
Java创建Applet
Java使用Applet创建横幅
Java使用Applet显示时钟?
Java在一个Applet创建不同形状
Java如何使用Applet填充形状的颜色?
Java使用Applet跳转到一个链接
Java在Applet创建事件监听器
Java使用Applet显示图像
Java使用Applet在新窗口中打开链接
Java使用Applet播放声音?
Java使用Applet读取文件
Java使用Applet写入文件
Java中Swing应用程序applet
Java简单的图形用户界面-GUI
Java以不同的字体显示文本
Java使用GUI画一条线
Java创建框架-frame
Java使用GUI显示多边形
Java在矩形中显示文本
Java GUI显示不同形状
Java如何绘制GUI实心矩形?
Java创建GUI透明光标
Java检查GUI平滑处理状态
Java在框架中显示颜色
Java GUI显示饼图
Java使用图形用户界面绘制文本
Java编辑表-table
Java 使用prepared语句
Java使用保存点和回滚
Java同时执行数据库多个SQL命令
Java使用行方法
Java使用列方法
Java正则表达式实例
Java将字符串分割
Java搜索重复单词
Java查找出现的单词
Java最后一个词的索引
Java模式匹配
Java删除空格
Java匹配电话号码
Java计数组词
Java搜索词组
Java拆分正则表达式
Java替换第一个出现字符串
Java检查日期格式
Java验证电子邮件地址格式
Java替换所有匹配字符串
Java使每个单词的第一个字母大写
从XML创建SqlSessionFactory实例
不使用XML来创建SqlSessionFactory
从SqlSessionFactory获取SqlSession
映射SQL语句
作用域和生命周期
Mapper XML配置
properties元素
Settings元素
typeAliases 元素
typeHandlers元素
理解CacheLine与写出更好的JAVA
Java核心技术点之动态代理
更好的使用JAVA线程池
理解Java中字符流与字节流的区别
深入分析Java方法反射的实现原理
关于Java面试,你应该准备这些知识点
Java内存模型
2017年你不能错过的Java类库
Leakcanary Square的一款Android/Java内存泄漏检测工具
Java Synchronised机制
Java核心技术点之注解
JVM(8):JVM知识点总览-高级Java工程师面试必备
JVM(3):Java GC算法 垃圾收集器
JVM(1):Java 类的加载机制
解决ActiveMQ中,Java与C++交互中文乱码问题
关于Java Collections的几个常见问题
Java I/O 总结
JVM源码分析之Java对象的创建过程
JVM源码分析之Java类的加载过程
Java GC的那些事(下)
Java GC的那些事(上)
java对象头的HotSpot实现分析
面试的角度诠释Java工程师(一)
面试的角度诠释Java工程师(二)
框架开发之Java注解的妙用
谈谈Java反射机制
Java并发:volatile内存可见性和指令重排
死磕Java并发:Java内存模型之happens-before
死磕Java并发:深入分析volatile的实现原理
死磕Java并发:深入分析synchronized的实现原理
Java 10 可能对 Lambda 表达式进行升级
G1垃圾回收器中的字符串去重(Java 8 Update 20)
Java RESTful框架的性能比较
理解RxJava的线程模型
继续了解Java的纤程库 – Quasar
Java中的纤程库 – Quasar
Java豆瓣电影爬虫——抓取电影详情和电影短评数据
Java集合框架源码剖析:LinkedHashSet 和 LinkedHashMap
Java Lambda表达式初探
Java中的陷阱题
Java 9的这一基本功能,你可能从未听过
关于Java并发编程的总结和思考
几种简单的负载均衡算法及其Java代码实现
JAVA虚拟机关闭钩子(Shutdown Hook)
Java 脚本化编程指南
Java Scripting API 使用示例
Java 8 的 Nashorn 脚本引擎教程
如何开始使用 Java 机器学习
CognitiveJ —— Java 的图像分析库
Java 性能优化的五大技巧
Java 解惑:Comparable 和 Comparator 的区别
Google Java编程风格指南
java NIO详解
Java 异常处理的误区和经验总结
Java语法糖(4):内部类
Java语法糖(3):泛型
Java语法糖(2):自动装箱和自动拆箱
Java消息队列任务的平滑关闭
Java语法糖(1):可变长度参数以及foreach循环原理
2016最流行的Java EE服务器
自己写一个java.lang.reflect.Proxy代理的实现
java 如何在pdf中生成表格
如何防止单例模式被JAVA反射攻击
java虚拟机 jvm 局部变量表实战
聊聊并发-Java中的Copy-On-Write容器
java.lang.Instrument 代理Agent使用
Java开发者需要了解的移动开发编程语言
13个不容错过的Java项目
2016年7款最佳 Java 框架推荐
Java 开发者值得关注的 11 个技术博客
Redmonk发布Java框架流行度调研结果
Java 8开发的4大顶级技巧
GitHub漫游指南:10个值得你关注的Java项目
除了Guava,Java开发者还值得了解的5个谷歌类库
Java中创建对象的5种不同方法
Java性能优化全攻略
奇怪的Java题:为什么1000 == 1000返回为False,而100 == 100会返回为True?
11个最值得Java开发者收藏的网站
Java的常见误区与细节
对Java意义重大的7个性能指标
Java调优经验谈
关于Java并发编程的总结和思考
HDFS Federation设计动机与基本原理
《Effective STL》学习笔记(第三部分)
《Effective STL》学习笔记(第二部分)
《Effective STL》学习笔记(第一部分)
数据结构之位图
Thrift使用指南
Cassandra概要介绍
Cassandra部署与安装
Cassandra客户端
Cassandra数据模型
Cassandra中的各种策略
数据结构之树状数组
数据结构之伸展树
数据结构之后缀数组
数据结构之堆
浅析MRv1与MRv2的API兼容性
Apache Tez最新进展
运行在YARN上的计算框架
从传统操作系统角度理解Hadoop YARN

GitHub漫游指南:10个值得你关注的Java项目

于2017-05-10由小牛君创建

分享到:


作为开源代码库以及版本控制系统,Github在全球拥有1500多万开发者用户,托管着3800多万个代码库,而这其中有330550个库是Java的。当你需要使用相关代码来帮助你开发项目或者制作一个简单的小游戏时,及时了解GitHub上值得关注的项目无疑会让你的开发事半功倍。在这里,我们整理了在Github上值得你关注的10个Java项目。

1. 极简化的Java技术

Bootique是用于构建较少容器的可运行Java应用程序的极限化技术。这个项目支持你以模块为基础创建REST服务、web应用程序、数据库迁移任务等工作,因此,你可以使用简单的命令来运行和控制它们。

这个项目背后的目标是把应用程序从Java容器中解放出来,让开发者改造他们的主程序。这个技术还有一个好处,它包含了一些内置命令,因此如果你不需要太多代码或者你没有向应用程序导入任何模块,你仍然可以使用Bootique来执行。

2. 优雅的问题解决之道

这个项目的名字说明了一切:99-problems。正如你所猜想的那样,它是一个通过收集问题来帮助你在逻辑编程下实践自己技术的项目。你可以选择使用Java 8、Scala还是Haskell来解决问题,而你最终的目标是找寻最优雅的问题解决方案。

如果你是一个难题爱好者——不用担心,这里有各种不同的难度,不同时间跨越(15分钟-几小时)的难题在等待着你。没有人会检查你解决问题所花费的时间,但它会给你一个解决该问题的时间标准。

如果已经努力完成了这99个问题,你还会可以面对另外一个挑战,这是为开发者们准备的小游戏:Java死亡竞赛。如果你被某些难题卡住了,你不妨参看下这篇文章

3. 字符串的处理

Strman-java是一个关于字符串处理的Java 8代码库。正如你所了解的那样,它处理问题的方式非常直接。它能够运行在Maven上,你所需要做的全部工作就是为你的构建工具选择添加一个依赖关系。

如果你使用过Kik(Node.js的扩展包),并听说过当它被撤包后所产生的leftPad危机,那么你一定会喜欢上Strman的,它包含了一个通过返回指定长度的新字符串来填补初始字符串的选项。

除此之外,你还可以在其中找到包括将字符串附加到数值、在特定索引获取字符以及返回一个包含从头到尾字符串的数组等各种函数的列表。

4. 数据浏览

如果你想找一个实现数据交互的炫酷方式,你可以留意下Dex。通过它,你可以对数据进行提取、转换和可视化,同时还可以获得数据预测的能力。你可以将数据通过3D的形式或者其它你喜欢的HTML样式来进行可视化。

Dex集成了超过50种可视化模式,包括了世界地图、约定时间线、网络使用率等。你可以通过运行的R实例来对其进行集成,然后利用其复杂的统计分析和预测分析。

民主党还是共和党?一张弦图说明美国历任总统的阵营

5. 小型的大数据设计

Tablesaw是一个包含了数据工具和以列(column)为主要存储形式的响应式内存数据表格插件。它围绕着没有谁愿意为小型任务进行分布式分析的理念而设计,你可以在一台单独服务器上使用一个200万行的表格进行交互性的工作。

你可以使用Tablesaw来演示呈现的布局、数据优先级或者为用户提供数据显示与交互的一系列扩展控制。在Tablesaw中,你可以导入来自RDBMS和CSV文件的数据,添加或者移除列、执行示图,通过压缩的柱状储存格式来减少表格的操作和存储。

6. 键值存储

Chronicle Map是用于存储内存键值的插件。它主要面向诸如贸易和金融市场应用这一类低延迟和多进程应用程序。这个代码库专注于读写查询的平均延迟,它能够让你编写与服务器中硬件执行线程数量相当的查询。

这个插件的主要用例是可在单独的服务器(比如Redis)上移除那些缓慢的键值存储以及通过类似于JVM-centric的解决方案来对其加速。

7. 负载研究

Gumshoe可以让你能够监控应用程序的性能统计。使用它,你可以精确的找到代码的行数并获取调用堆栈及单个堆栈框架的相关统计数据。这意味着你能够分析你电脑资源的使用情况(TCP、UDP、文件系统或处理器利用率)

这个代码库支持屏幕截图、过滤以及生成可视化的数据统计,并且能够给予你关于火焰图和根图(flame and root graphs)的直观视图。如果你还想要寻找关于应用程序的更多细节,你还可以在捕捉或者可视化的时候对堆栈框架进行过滤,并在运行时进行改变。

8. Java音乐器

SoundSea可以让你通过其内置的元数据和音乐集搜索和下载歌曲。当你在搜索某一个歌曲时,SoundSea会寻找iTunes上的相关元数据和音乐集。如果拥有超过一首可用的结果,你可以从中再筛选需要的那一个。

歌曲的下载来自于Pleer.com,你可以通过高,低或者VBR比特率来进行过滤。如果你比较幸运,你甚至可以立刻下载作为最终结果的第一个搜索结果。此外,它还拥有一个迷你播放器,无需重载音乐库就可以简单倾听歌曲。

9. 检测内存泄露

LeakCanary是一个可帮助你阻止内存泄露的开源库,你可以用它来构建调试检测Java内存泄漏(以及Android)。

在你安装了LeakCanary之后,你可以通过设置使检测到内存泄露时进行自动的通知显示。该插件另一个用途是通过建立智能插脚(smart pins)检测某些对象是否已经被垃圾回收。

10. 多维数组

ND4J是一个开源的代码库,它将来自于Python社区的直观科学计算工具带到了JVMs中。它主要运用于生产环境,因此它拥有运行快速且内存需求小的特点。通过它的使用,工程师们找到了一种将算法和接口导入其它Java和Scala库的简单方法。

作为能够提供通用的n维数组对象,包含GPUs、线性代数、信号处理等功能的多功能平台,ND4J集成了Hadoop、Spark以及它们的模仿流行Python数学库Numpy语义的API接口。