`

7个改变世界的Java项目

 
阅读更多




Java的开源生态系统是强大而健康的,这是我们(Oreilly)创建OSCON Java(Open Source Convention Java)的主要原因之一。在过去10年中,一些项目已经被广泛接受,并且已经统治了Java软件开发世界,一些甚至影响到了用户的日常生活。


1. JUnit


Kent Beck先生关于Smalltalk的单元测试被Kent Beck 和Erich Gamma 带进Java——JUnit。在这十年里,JUnit带来了测试驱动开发的普及浪潮。许多其它流行语言的单元测试版本也跟着被创造出来了,例如.NET、 C、Python、Perl。



2. Eclipse


刚进入20世纪,随着Java和它的API的成熟,Eclipse IDE(集成开发环境)为程序员提供了一个帮助他们提高生产效率和融入到成长中的Java社区的环境。Eclipse也是第一个用SWT UI 工具包的大型项目。Eclipse已经逐步向成为一个普及的集成开发环境的目标发展。现在它为集成平台插件提供了丰富的基础平台。(SWT是SUN公司的 Swing的强劲竞争者,它证明了Java 程序也可以提供丰富的本地接口。



3. Spring


Spring 框架在提高Java开发人员的生产效率方面扮演着一个重要的角色。它维持了简单和特点的平衡。Spring为Java开发人员提供了一套服务。这套服务提供了普遍使用的应用功能,例如数据访问和事务管理。作为Sun公司的企业JavaBean系统的竞争者,Spring为Java应用创造出了另外一个可选的简单的路径,同时也创造出了一个Java应用开发思想上的健康竞争。


4. Solr


多年来,Solr服务器(集成了Lucene搜索引擎)已经为web和企业应用提供了一个简单实用的搜索功能的解决方案。Solr的特别之处在于它为强力和快速的Lucene搜索库提供了HTTP访问,使它能够成为任何系统的一部分,无论这系统是不是由Java实现。比其它项目好的地方,Solr已经使强力快速的搜索成为现代Web应用的一个可选项。


5. Hudson and Jenkins


原名为Hudson,现在也叫Jenkins,这个持续集成工具是Java开发设置的关键部分。Jenkins为软件项目提供了自动构建和测试。随着 JUnit的测试持续集成,Jenkins在Java的平台上是敏捷研发成为可能。虽然Hudson和Jenkins现在集成在一起,但并没有偏离 Kohsuke Kawaguchi的努力,Kohsuke使它成为世界级的持续集成平台,并提高了大部分Java研发的质量。


6. Hadoop


Hadoop是著名的MapReduce模型的Java实现。它的强壮使得最大多数的“大数据”系统成为可能。通过降低从巨大的数据集合中抽取有价值的数据的成本,Hadoop 已经被大量使用,如Facebook用它来做海量数据分析,Yahoo 的个人和广告业务,还有很多其他的公司。就像Linux使大型网站能够构建在便宜的硬件上一样,Hadoop则通过在软件层的高容错性使大规模的分布式计算成为可能。Hadoop和上面提到的Lucene都是Doug Cutting的努力成果。

下图是Hadoop的体系结构:



7. Android


Java的归属(Sun或者Oracle)争论一直持续着。Google却选择用Java语言作为它十分流行的Android移动操作系统的编程语言。这个选择在整个件研发人员的社区中引起了新的关注。Android 程序编译过程比普通Java程序要多经过一个步骤,将JVM二进制码转换成Dalvik二进制码。(Dalvik是专门为移动设备优化的虚拟机)Google 已经可以利用Eclipse 为软件研发人员提供一个成熟的编写Android应用的开发环境。


Oracle和Google现在正卷入法律诉讼中,因为Oracle声明Android侵犯了Oracle的多项专利。无论这场诉讼的结果如何,Android都已经为研发人员的就业和延续客户端软件研发领域的Java的使用做了很大的贡献。

编注:根据路透社7月25日最新消息,美国一家地方联邦法院法官威廉姆·阿索普周五驳回了甲骨文起诉GG侵害Java专利的索赔评估报告,认为61亿美元的索赔金额过高。而就在一天前,威廉姆 曾警告称两家在Android平台的专利争端中没有占在合理立场。威廉姆表示,若Oracle希望推迟10月份的审判直到双方和解,这倒可以试一试。


分享到:
评论

相关推荐

    java初级练手小项目--局域网聊天室

    总的来说,"Java初级练手小项目--局域网聊天室"是一个全面且富有挑战性的实践项目,它涵盖了Java编程的重要知识点,对于想要提升Java技能的学习者来说,是一个不可多得的练习平台。通过分析和实现这个项目,不仅能...

    Java大作业-坦克世界大战

    《Java大作业-坦克世界大战》是一款基于Java编程语言开发的简单游戏,它展示了Java在图形用户界面(GUI)和游戏开发方面的应用。这个项目旨在帮助学习者掌握Java编程的基本概念,包括对象导向编程、事件处理、图形...

    java项目chm格式api文档生成工具

    Java项目中的API文档生成是软件开发过程中的重要环节,它能帮助开发者理解代码结构、功能和使用方法。本文将详细讲解如何使用特定的工具将Java项目的API文档转换为CHM(Microsoft Compiled HTML Help)格式,一种...

    JAVA贪吃蛇源代码

    在这个Java项目中,你可能会看到以下关键知识点: 1. **基本数据结构**:游戏中的蛇、食物和边界可以用类(Class)来表示。例如,`Snake`类包含蛇的身体部分(body),方向(direction)和长度(length);`Food`类...

    java的poi读写excel项目实例

    在这个“java的poi读写excel项目实例”中,我们有两个主要的Java类:`read.java`和`write.java`,分别用于处理Excel文件的读取和写入操作。 首先,让我们深入了解一下`read.java`。这个类通常会包含一个方法,比如`...

    JAVA3D官方实例

    描述中的“可直接导入到Eclipse里运行”意味着这些实例是完整的Java项目,包含了所有必要的源代码、配置文件以及依赖库。Eclipse作为流行的Java IDE,支持直接导入外部项目,这使得学习过程更为便捷。初学者只需按照...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    1.1 想要用Java改变这个世界吗? 2 1.1.1 Java有什么优势? 2 1.1.2 Java在哪儿? 3 1.2 准备好开始Java之旅 3 1.2.1 下载JDK 4 1.2.2 安装JDK 5 1.2.3 配置环境变量 6 1.2.4 测试环境是否安装成功 8 1.2.5 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    1.1 想要用Java改变这个世界吗? 2 1.1.1 Java有什么优势? 2 1.1.2 Java在哪儿? 3 1.2 准备好开始Java之旅 3 1.2.1 下载JDK 4 1.2.2 安装JDK 5 1.2.3 配置环境变量 6 1.2.4 测试环境是否安装成功 8 1.2.5 ...

    220个JAVA初学者实例

    以上只是Java初学者实例中可能涉及的部分关键知识点,通过220个实例的实践,你可以逐步建立起扎实的Java基础,为后续深入学习和项目开发打下坚实的基础。不断地练习和巩固这些知识,将有助于你成长为一名合格的Java...

    多个物体碰撞运动演示游戏java语言

    在本项目中,我们关注的是一个使用Java编程语言开发的多物体碰撞运动演示游戏。这个游戏设计用于模拟小球之间的碰撞,结合了计算机图形学、物理和游戏开发的基础知识。让我们详细探讨一下其中涉及的主要技术点。 ...

    java swing漂亮界面 超酷 javaswing教程

    Java Swing 是Java平台上用于构建图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。在Swing中,你可以创建出丰富、交互性强的桌面应用,而且它的组件库提供了很多美观的外观和感觉。 ...

    与Java相关的四十个响亮的名字

    Java的应用就像是世界上的顶级玩家们组成的一个公开联盟,告诉全世界我们大家就是都在用着Java。也正是因为如此,Java也找到了自己的归宿。现在的J2EE已经成为中大型企业级应用的标准,成为承接数据库和Web之间的一...

    classloader-playground, 一个简单的java依赖隔离容器类.zip

    开源项目"classloader-playground"为我们提供了一个学习和实验Java类加载器的绝佳平台。 首先,我们来理解一下什么是类加载器。在Java中,类加载的过程包括加载、验证、准备、解析和初始化五个阶段。类加载器主要...

    Java入门教程[9天快速入门JAVA]

    ### Java入门教程:9天快速入门JAVA #### 第一章:Java概述 ##### §1.1 Java语言出现的背景、影响及应用前景...对于初学者而言,掌握 Java 基础知识不仅是进入编程世界的敲门砖,更是通往更高级别技术栈的重要桥梁。

    开源地理信息GIS,java实现的webGIS

    因此,我们可以推断这个开源GIS项目是用Java编写的,并能在Tomcat环境下运行,这为开发者提供了稳定、高效的运行环境。 标签 "开源GIS" 暗示了这个项目是遵循某种开源许可协议的,例如GPL(GNU General Public ...

    springboot+java类热加载

    在IT行业中,SpringBoot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及配置工作,使得开发者能够快速地创建高效、独立的运行服务。本文将深入探讨"springboot+java类热加载"这一主题,包括其核心...

    8.java学习第八章——面向对象.pdf

    - 更接近现实世界的思维方式:面向对象的编程方式更符合人类的认知习惯,能够更好地模拟现实世界中的各种实体和它们之间的关系。 **缺点**: - 学习曲线陡峭:相对于面向过程编程,面向对象编程的学习门槛更高,...

    java3d 传送带

    在这个"java3d 传送带"项目中,开发者使用了Java3D库来实现一个可以展示3D模型的传送带效果。下面将详细介绍这个项目涉及的关键知识点。 1. **Java3D API**: Java3D API 提供了一组面向对象的类和接口,用于在...

    java编写的时间钟

    Java 编写的时间钟是一种基于Java编程语言实现的桌面应用程序,它可以显示多个时区的世界时间,为用户提供方便的时钟管理功能。这个程序通常具有友好的用户界面,使其在各种简单开发项目中都能发挥效用,例如作为...

    三国志 java 源码.rar

    在源码中,我们可以看到"src"目录,它是Java项目的主要源代码存放地。通常,每个.java文件代表一个类,其中包含了各种方法和数据结构。源码中可能包括了游戏的核心逻辑,如角色移动、战斗系统、资源管理、用户界面...

Global site tag (gtag.js) - Google Analytics