每个Java/JVM领域的技术专家都应从那些项目中获益,他们中有2011在SanJose举办的Jax 会议中提名为最好的技术产品奖的。我之所以选择它们,是因为它们可以广泛用于一系列的项目中,解决真实问题。作为开发者,我们也不得不在每天都讨论这些, 那么我们赶紧来看看究竟有哪些值得令人激动的项目。

0、Neo4j   图形数据库

Neo4j是一个高性能图形引擎,该引擎拥有成熟稳健的数据库的所有特性。程序员利用面向对象、灵活网络结构而不是严格的静态表操作,但是他们可以 完全享受到具备完全事务特性、企业级数据库的所有好处。对于很多应用来说,Neo4j相比关系型数据库性能提升1000倍,同时Spring和其他框架有 相应的插件支持。

(附:spring有一个叫Spring Data Neo4j的spring版neo4j,更好的让neo4j与spring结合,地址:

https://github.com/SpringSource/spring-data-neo4j/tree/master/spring-data-neo4j-examples)

1、JRebel 不需再重新部署

JRebel是一个小型的JVM插件,它能使Java程序员在不需重新部署情况下即时地看到代码改变后的结果。JRebel 能够在一个时间点让你单独地更新管理类文件和资源的版本来替换块应用部署,当开发者在IDE中对类和资源有任何的修改时,变化能立刻地反映到已经部署好的应用中。通过省略从构建到重新部署期所花时间每年能节省约5.25周。

2、Gradle  一个更好的构建工具

Gradle充分吸取了Maven和Ant的优点。Gradle站点说道:“工程自动化是软件项目成功的必要条件,而且它应该是实现起来简单、易 用、好玩的。构建没有千篇一律的方法,所以Gradle没有死板的强加方法于我们,尽管你会认为查找和描述你的方法很重要,然而Gradle对于如何描述 它有着非常好的支持。我不认为工具能够拯救我们,但是Gradle能给你所需要的自由,你可以利用Gradle构建易描述的、可维护的、简洁的、高性能项 目”。

3、Akka    更加简单的可伸缩性、容错性、并发性、远程调用的Actor模型应用

编写出可靠的并发、容错、可伸缩的应用简直太难了,很多时候是因为我们使用不合理的工具和错误的抽象级别,Akka正是用来解决这些难题的。使用 Actor模型与STM(软件事务内存)提高抽象级别,Actor提供了更好的平台来建立可靠的并发和可伸缩的应用,对于容错采取任其崩溃、接受失败的模 型(Let it crash/Embrace failure),它已经成功运用在电信行业。系统几乎不会宕机(高可用性99.9999999 % 一年只有31 ms宕机,这里有详细介绍),Actors同样为透明的分布式提供了抽象化,为真正的可扩展和容错的应用提供了基本要素。

4、Play Framework—关注开发者效率和RESTful风格的架构

Ruby中有Rails框架,Groovy有Grails,现在Java有了Play!Play 是一个纯Java框架,因此可以继续使用你钟爱的开发工具和类库。如果你已经在使用Java作为开发平台,那样也不需要切换到另一种语言、另一种IDE和库文件,你要做的仅仅是切换到一个更高效的Java环境中。

5个让人激动的Java项目的更多相关文章

  1. Gradle在大型Java项目上的应用

    在Java构建工具的世界里,先有了Ant,然后有了Maven.Maven的CoC[1].依赖管理以及项目构建规则重用性等特点,让Maven几乎成为Java构建工具的事实标准.然而,冗余的依赖管理配置. ...

  2. 使用maven来管理您的java项目

    maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译.构建.测试.发布和报告等.在大型项目开发中,使用maven来管理是必不可少的. 一.安装maven 1.W ...

  3. C/C++在Java项目、Android和Objective-C三大平台下实现混合编程

    Android和iOS开发都支持C++开发,可以一套代码多平台使用.同时C++难以反编译的特性也可以为Android开发带来代码的保密,另一native特性也可以提高代码的运行效率. 一.为什么使用C ...

  4. Java项目经验——程序员成长的关键(转载)

    Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3.掌握用例驱动.以 ...

  5. Java项目经验

    Java项目经验 转自CSDN. Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的 ...

  6. Apache 整合 Tomcat (首先Apache 发布的是PHP项目,占用端口80,tomcat 发布的是Java 项目,占用端口8080)

    情况简介: Apache 整合 Tomcat (首先Apache 发布的是PHP项目,占用端口80,tomcat 发布的是Java 项目,占用端口8080),而现在是虚拟出来两个域名(希望这两个域名都 ...

  7. XML在JAVA项目中的作用

    java项目中,xml文件一般都是用来存储一些配置信息 一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重 ...

  8. 了解Java并学会创建Java项目(一个菜鸟的成长历程)

    计算机语言分类:了解 1)低级语言:更接近于计算机的语言 1.1)机器语言:由0和1组成的 1.2)汇编语言:有一些助记符号2)高级语言:更接近于人的语言 2.1)面向过程的:C... 2.2)面向对 ...

  9. 一次从0到1的java项目实践清单

    虽说工作就是简单的事情重复做,但不是所有简单的事你都能有机会做的. 我们平日工作里,大部分时候都是在做修修补补的工作,而这也是非常重要的.做好修补工作,做好优化工作,足够让你升职加薪! 但是如果有机会 ...

随机推荐

  1. SQL性能优化之一

    1: 如果确定要用到删除全表 delete from tablename commit 这种方式是不可取的,因这样会产生大量的redo-log,一般建议用truncate或是临时表(这样可以告诉ora ...

  2. 初学者的checklist:对于QTP,你应该知道的9个基本概念

    学习QTP或者其他相关任何工具的方法都是首先把基本的概念过一遍.正所谓砍柴不怕磨刀功,一旦你对这些概念熟悉了,你就可以学习该工具的高级部分了.写这篇文章的目标是列出初学QTP的人应该掌握的所有基本概念 ...

  3. redhat6和ubuntu13.10在WMware player 下与Windows共享文件

    Redhat下: 点击VMware的 setting -> vmware tools install mount /dev/cdrom /mnt/cdromcd /mnt/cdrom里面有一个v ...

  4. NLP基本任务-nltk_data文本分割

    将文本分割为句子 nltk.sent_tokenize(text,language) text:需要分割的文本 language:语言种类 czech捷克语 danish丹麦语 dutch荷兰语 en ...

  5. heatmap.2

    heatmap.2 {gplots} R Documentation Enhanced Heat Map Description A heat map is a false color image ( ...

  6. [Codeforces676B]Pyramid of Glasses(递推,DP)

    题目链接:http://codeforces.com/problemset/problem/676/B 递推,dp(i, j)表示第i层第j个杯子,从第一层开始向下倒,和数塔一样的题.每个杯子1个时间 ...

  7. UVa 1252 (状压DP + 记忆化搜索) Twenty Questions

    题意: 有n个长为m的各不相同的二进制数(允许存在前导0),别人已经事先想好n个数中的一个数W,你要猜出这个数. 每次只可以询问该数的第K为是否为1. 问采用最优询问策略,则最少需要询问多少次能保证猜 ...

  8. HDU 1710 Binary Tree Traversals

    题意:给出一颗二叉树的前序遍历和中序遍历,输出其后续遍历 首先知道中序遍历是左子树根右子树递归遍历的,所以只要找到根节点,就能够拆分出左右子树 前序遍历是按照根左子树右子树递归遍历的,那么可以找出这颗 ...

  9. python - wsgi协议

    wsgi - python web server gateway interface 出现的目的是,为了在 python框架开发的时候,更具有通用性.只要符合 wsgi标准,就可以自由选择服务器(ng ...

  10. Java [Leetcode 67]Add Binary

    题目描述: Given two binary strings, return their sum (also a binary string). For example,a = "11&qu ...