Java自出生以后,Sun(现在是Oracle)就竭力维护Java防止分裂,但是Java分裂在不断的发生着。几个有名的Java分裂如下
-
MicroSoft对Java的分裂
:这个分裂出现在Java的幼年时期,那时候Java跟现在的HTML5一样是绝对明星,大家都在追捧她。这时MS推出了Visual J,并且在自己的浏览器里安装了一个自己实现的applet插件,Visual J开发确实有自己的优势,但是并不完全兼容Sun的Java,所以毫无意外的MS成了被告了,这个官司拖了几年,最后和解,MS赔钱。详细的内容可以见李维的《Broland创奇》。这次分裂以Sun完胜为结局
。
-
SWT/Swing之争
: 这两个都是完整的GUI库,对于这两者都有很多支持者和反对者,但是当人们用Java做一个GUI程序的时候,都会碰到如何选择的问题。这个也是大公司之间的倾轧的结果,SWT背后是IBM和Eclipse基金会,而Swing顶着标准的帽子,从市场占有来看SWT有后来居上的劲头。这次分裂以SWT小胜为一个阶段,后续如何发展我们拭目以待。
-
Harmony和Sun
: 对于使用非Sun公司JDK并不算是分裂,如Oracle、BEA(进入Oracle)、IBM、基于GNU开源的Kaffe
、OpenJDK,这些取得了授权可以叫JDK。唯独基于Apache协议的Harmony没有获得Sun的认可, Apache社区的人很火,因为按照JCP的规定这样是不行的,所以Apache社区给Sun公司写了一封公开信,要求回应,当然直到Sun被收购也没有回应。在此后,JCP投票的时候Apache一律反对,没有理由,就是要求Sun遵守JCP的规定。Servlet3.0等一系列JSR就是在这样投票下被通过。Apache社区的人积极实现相关的JSR,如Tomcat7.0就实现了Sevlet3.0。扯远了,这次分裂以Sun实际胜利和Apache道义上胜利结束,同时也为下次的分裂埋下了伏笔。
-
Harmony、Android、Java
:说起Android大家应该都知道,但是如果说起Harmony和Android的关系可能只有很少人知道了,在Android的API中你肯定会发现很多java.*和javax.*,这些很多都是使用了Harmony中的开发的类库,以前Harmony的开发者邮件列表中经常有android的开发者报类库的bug。Android系统使用的是Java的语法+Java的核心类库+Android的类库+Android的虚拟机,不兼容的类文件格式和打包格式。老外对于Java的核心类库加虚拟机起了一个名称叫JDK Lite,精简的JDK。这次算是Java阵营里分裂的最彻底了,但是Google的东东不叫Java,只是使用了Java语法,兼容核心类库,Sun/Oracle也没招。在Android发布后很多开源的Java社区都陆续公布了自己在Android的兼容性,很多Java开发的底层库考虑同时兼容Android和JavaSE。如果没有Harmony,google也许没有那么快发布android,毕竟核心类库的开发是一项既有体力还有脑力的劳动,所谓上面我说Harmony为下次分裂埋下了伏笔,就是指Android借助了开源的力量。这次分裂对Java程序员来说是好事,Android胜利,JavaME败北。
-
GAE:GAE
呢相当于把JDK搬到了云端,具体google如何实现的呢,我们不知道,但是可以肯定的是,一定有开源代码的帮助。GAE公布后很多Java社区也是马上测试和GAE的兼容性。这次分裂影响不大,毕竟大家把自己的网站让google托管的比例不大。
在中国影响为0点几几,毕竟中国网络条件和google都不成熟。
-
未来的分裂
:google使用了Java的语法,扩大了Java程序员,没准其他的人也使用Java,而不叫Java,如Visual J#,如有可能的iPhone SDK for Java(目前还没有出现,给苹果提个醒 )。分裂意味着壮大,意味着Java不再由某个公司把持,意味在Java这个江湖里不再有老大,会变得更加多边。
参考
- 精简JDK的一个实现 http://greenvm.googlecode.com/
- Android: http://www.android.com/
- Harmony:http://harmony.apache.com
分享到:
相关推荐
综上所述,这个压缩包包含了一个基于连通图的分裂聚类算法的Java实现源码,对于学习数据挖掘、算法实现和Java编程的人来说是一个宝贵的资源。通过深入学习和理解源码,开发者不仅可以掌握聚类算法的工作原理,还能...
在决策树算法中,选择哪些特征来进行分裂是非常重要的步骤之一,这通常基于某种信息增益标准来完成。 ### Java代码解析 #### 包声明与导入语句 代码以包声明 `package cn.liip.jcs;` 开始,并且导入了必要的类库...
非官方镜像的蕨花Java反编译器的子树分裂
2. **预分区表**:根据数据分布预测表的大小,并预先创建Region,以减少数据增长时的Region分裂。 3. **使用合适的数据模型**:根据业务需求选择合适的列族和列,避免过度设计或数据冗余。 4. **优化过滤器**:...
《Isolation Forest 异常检测算法的Java实现详解》 在大数据时代,异常检测成为了一项重要的任务,特别是在电商和金融领域,及时发现并处理欺诈行为对于企业的安全至关重要。Isolation Forest(隔离森林)是一种...
知识点:面向对象是 Java 语言的核心概念之一,考察的是候选人的面向对象编程能力和编程思想。解决这个问题需要候选人具备良好的面向对象编程基础知识和编程思想。 7. 集合框架:ArrayList 和 HashSet 的区别,...
在Java中实现ID3决策树涉及到以下几个核心概念和技术: 1. **数据预处理**:在构建决策树之前,首先需要对数据进行清洗和格式化。这包括处理缺失值、异常值,以及将非数值特征转换为数值型,以便于计算。 2. **...
在Java中,可以使用`java.util.List`或者自定义数据结构来存储数据点,通过`java.util.ArrayList`或`java.util.LinkedList`来实现动态调整大小。计算距离矩阵通常采用欧几里得距离、曼哈顿距离或余弦相似度等方法,...
2. **分裂效果/人造生物:** 创建独特的分裂动画或模拟生物动作。 3. **图形特效:** 提供各种图形变化特效,如旋转、缩放等。 4. **3D动画:** 支持创建简单的3D动画效果,增加页面深度感。 5. **导航菜单:** 帮助...
下面将详细讨论如何用Java实现B+树。 首先,B+树的节点分为两种类型:内部节点(或索引节点)和叶子节点。内部节点存储键值,不存储数据,而叶子节点则同时存储键值和对应的数据。在Java实现中,我们通常会创建两个...
这个"ISODATA java代码工程"提供了一个用Java编写的ISODATA算法实现,它适用于JDK7环境,并且在部署后可以直接运行。 ISODATA算法的核心思想是通过迭代的方式不断调整数据点的类别归属,同时合并或分裂类别,直到...
在本案例中,我们将探讨如何用Java实现ID3算法,这是一种早期的决策树学习算法,由Ross Quinlan于1986年提出。 ID3(Iterative Dichotomiser 3)算法基于信息熵和信息增益来选择最优特征进行分裂。信息熵是度量数据...
本文将深入探讨如何在Java环境中实现B+树,包括其基本概念、特性以及如何用Java代码来构建和操作B+树。 首先,B+树是一种自平衡的多路搜索树,它的主要特点是所有叶子节点都在同一层,并且每个非叶子节点只存储键值...
ID3算法在构建决策树时,会选择信息增益最大的属性作为当前节点的分裂标准,直到所有数据被完全分类或者没有更多的属性可以分割。 在Java环境下实现ID3算法,通常需要以下步骤: 1. **数据预处理**:处理原始数据,...
粒子系统则是通过创建大量小型图形(粒子)来模拟复杂的视觉效果,例如,每颗烟花爆炸后可能会分裂成许多小火花,这些火花有自己的生命周期和轨迹,进一步增强了烟花的逼真度。 事件处理可能用于启动和停止动画,...
如果这个节点已满,那么会分裂成两个或更多的节点,并将新点分配到其中一个节点。 - 查询:在进行范围查询时,R树首先检查根节点,如果查询区域与根节点的边界有交集,就继续检查其子节点,直到找到所有可能的数据...
2. **分裂节点**:基于选定的特征,数据集被分割成多个子集,每个子集对应于特征的一个可能值。 3. **停止条件**:这个过程会一直持续到满足某个停止条件,例如所有实例属于同一类别、剩余实例数量小于某个阈值或者...
决策树生成算法的Java实现,可能还有一些BUG,没有做仔细校验与测试,完成主要功能。决策树具体详解移步:http://blog.csdn.net/adiaixin123456/article/details/50573849 项目的目录结构分为四个文件夹algorithm,...
Java版本的Btree源码提供了在Java环境中实现B树的功能,这对于数据存储、数据库索引以及排序操作等场景具有重要意义。在这里,我们将深入探讨B树的基本概念,其在Java中的实现细节,以及如何利用这个源码来理解和...
- ID3(Iterative Dichotomiser 3)是最早的决策树算法之一,基于信息熵进行特征选择。 - ID3算法步骤:选择最优特征 -> 递归构建子树 -> 构建决策规则。 3. **C4.5算法** - C4.5是ID3的改进版,解决了ID3对连续...