写点什么

2010 年 InfoQ 中文站 Java 社区回顾:让 Java 飞一会

  • 2011-01-09
  • 本文字数:3680 字

    阅读完需:约 12 分钟

纵观 2010 年,Java 世界可谓变化万千,有关 Java 归属、走向、领袖去留、专利权等等问题在社区中引起了巨大反响,给人一种“飘忽不定”的感觉。InfoQ 密切关注其发展动态,现将中文站 Java 社区在 2010 年的精华内容整理出来,让读者一睹为快。

Java 动态

2010 年 1 月底,在经过了将近 9 个月的漫长等待后,Oracle 终于获得欧盟的批准成功完成对 Sun 的收购。Oracle 宣布了对 Sun 技术与平台的未来规划。简单概括为:Oracle 计划集成 Sun HotSpot 与 Oracle JRockit Java 虚拟机,打算“振兴”Java 开发者社区并将 Java 编程模型的触角延伸到新近涌现的应用开发范式上来。比如说,Oracle 计划增加模块化特性、为 Java SE 增加多核处理支持、为 Java ME 增加新的特性,如多点触摸等。Oracle 将会一如既往地支持 MySQL 数据库的发展,将 MySQL 看作是对其核心数据库技术的有益补充而非竞争对手。

2010 年 4 月初,“Java 之父”James Gosling 通过其新博客宣布已经从 Oracle 离职了。他还没有寻找新的工作,在个人简介中称自己是“快乐的失业者”。在其博客中,他说到“在开始找工作之前,除了好好休息一下,我还不知道接下来要干什么”。

2010 年 8 月,Oracle 就 Android 操作系统对 Google 发布了一项版权与专利诉讼,这开启了硅谷的两家公司在智能电话软件平台上的法律之争。此次诉讼主要内容是 Google 侵犯了 Oracle 的 7 项专利,这些专利是年初 Oracle 收购 Sun Microsystems 时所获得的。所有这些专利都与 Java 有关。此次诉讼也标志着 Oracle 在使用 Java 专利上的首次尝试。Oracle CEO Larry Ellison 认为收购 Sun 是正确的主要原因在于这使得 Oracle 能够控制 Java 了。 Google 随后对此做出了反驳:“Oracle 选择以无事实根据的法律诉讼攻击 Google 和开源 Java 社区,我们感到失望。开源 Java 社区的发展不受任何一家公司的约束,每天都在致力于让世界变得更加美好。我们将坚决捍卫开源标准并继续与业界合作发展 Android 平台”。

模块化、集成性和可维护性是未来 Java SE Java EE Java 嵌入式平台的主要目标。2010 年 9 月,Mark Reinhold、Roberto Chinnici 和 Greg Bollella 在 JavaOne 2010 大会上阐述了 JSE、JEE 和 Java 嵌入式平台的新技术和新特性。Mark 谈到了一些新的项目和特性,如 Coin 项目 PLambda 项目 DaVinci Machine 项目(JSR 292)和 Jigsaw 项目。这 些功能将随着 Java SE 7(计划 2011 年中发布)和 Java SE 8(2012 年中期)发布。他同时提到了其他特性如在 Collections API 新的类(Predicate 和 Extractor)中使用 filter 和 map 操作符添加块数据操作逻辑,以通过 Lambda 表达式简化代码。另一个语言新特性是给类似 Collection 的接口添加了默认方法。

2010 年 10 月,Apple 发布了 Mac OS X 10.6 的 Java 更新版本,但是表示未来不会继续维护该平台上的 Java。随着 Java for Mac OS X 10.6 Update 3 的发布,Apple 公司移植到 Mac OS 平台的 Java 运行时将不再鼓励使用。开发人员在未来版本的 Mac OS X 系统中不应该依赖 Apple 提供的 Java 运行时。Mac OS X 10.6 Snow Leopard 和 Mac OS X 10.5 Leopard 平台上的 Java 运行时将在产品的支持周期内继续得到支持和维护。这意味着,Apple 可能在未来对 Java 停止支持,不鼓励用户在 Mac 平台上使用 Java 应用。不仅如此,有国外消息称,在 Mac App 商店即将发布的开发人员规范中,有一条准则明确指出:“采用不受推荐的技术(如 Java)开发的 Mac 应用将被拒绝在网上商店销售”。

2010 年 12 月,Apache 软件基金会宣布离开 JCP 执委会,这也意味着他们彻底与 JCP 断绝了关系。根据他们此前围绕着JCP 的声明以及关于Apache Harmony TCK 的纷争,大多数观察家都认为Apache 的这个举动应该在意料之内。在Apache 软件基金会发布这个声明前,有很多人已经选择了离开,比如十月份离开的 Doug Lea ,他说 “我认为 JCP 已经不再是可信赖的规范和标准了”,还有最近离开的 Tim Peierls ,他对 Java SE JSRs 投了反对票。这个人们意料之中的决定反映出了这样一个事实:Oracle“没能履行其在 JSPA 中的职责”——为 Java SE TCK 提供合理、无差别的许可。事实上,Oracle 最近在法庭上承认他们过去一直支持 Apache 拥有开放的 TCK,同时声称“符合要求的大学、学院、 非营利组织以及个人”可以免费使用许可。

Java 技术

即使是 Java 系统也会变成“遗留”系统。每当我们想起遗留系统时,就会想起那些存储着大量文件数据并只能用 COBOL 访问的嘎吱嘎吱作响的大型主机。但事实是,Java 已经是一门具有 15 年历史的开发语言,用 Java 写就的成千上万的系统已经成功运行了十年甚至更久。因此,考虑到许多读者都会工作在某个遗留的 Java 系统上,作者根据自己的经验特地攒了这八个技巧,来帮助团队更新和激活他们的遗留 Java 应用。

Hibernate 是最流行的对象关系映射(ORM)引擎之一,它提供了数据持久化和查询服务。在你的项目中引入 Hibernate 并让它跑起来是很容易的。但是,要让它跑得好却是需要很多时间和经验的。通过作者的使用 Hibernate 3.3.1 和 Oracle 9i 的能源项目中的一些例子,本文涵盖了很多 Hibernate 调优技术。其中还提供了一些掌握 Hibernate 调优技术所必需的数据库知识。

Tellurium 自动化测试框架是由方剑在 2007 年 6 月创建的用于测试 Web 应用的框 架,并在 2008 年 6 月移步到 Google Code 成为一个开源项目。项目的核心已经历时两年,并繁衍出了多个子项目,包括:UDL、Core、Engine、Widget 扩展、Maven Archetype、Trump、Tellurium IDE、TelluriumWorks 以及参考项目。这个框架是从 Selenium 框架发展而来,但又具有不同的测试理念。大多数 Web 测试框架,比如 Selenium,主要致力于单独的 UI 元素。而 Tellurium 恰好相反,它把多个 UI 元素看作一个 Widget 整体,并将其称作 UI module。

Java 类文件中包含的字节代码可以被不同平台上的 JVM 所使用。Java 字节代码不仅可以以文件形式存在于磁盘上,也可以通过网络方式来下载,还可以只存在于内存中。JVM 中的类加载器会负责从包含字节代码的字节数组(byte[])中定义出 Java 类。在某些情况下,可能会需要动态的生成 Java 字节代码,或是对已有的 Java 字节代码进行修改。这个时候就需要用到本文中将要介绍的相关技术。

本文将通过具体的实例(使用 Scala、Spring 和 JPA 编写)阐述如何借助于隐式转换和特征(traits)等 Scala 的强大概念来增强 Spring 应用。此外,本文还将介绍如何平滑填充 Java 框架与 Scala 之间的沟壑。

内存屏障,又称内存栅栏,是一组处理器指令,用于限制对内存操作的顺序。本文介绍了内存屏障对多线程程序的影响,将研究内存屏障与 JVM 并发机制的关系,如易变量、同步和原子条件式。

过去几年,Java 模块化一直都是一个活跃的话题。从 JSR 227(现已废止)到 JSR 291,以及正在进行中的 JSR 294,模块化看起来是 Java 进化过程中的必经一环。即便是基于 JVM 的未来语言,比如 Scala,也考虑了模块化的问题。那么,模块化意味着什么?为什么要关注它呢?专题文章分别从入门静态模块化动态模块化声明式模块化四个方面详细分析该问题。

把大型系统移植到 OSGi 架构上常常意味着解决复杂的类加载问题。这篇文章专门研究了面向这个领域最难问题的几个框架:有关动态代码生成的框架。这些框架也都是些超酷的框架:AOP 包装器,ORM 映射器以及服务代理生成器,这些仅仅是一些例子。

Java 社区迷你书

Maven——这一 Java 社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。本书内容全面而系统,Maven 的原理、使用方法和高级应用尽含其中;注重实战是本书的另一个特点,不仅在各个知识点都辅有大量的小案例,而且还有一个综合性的案例贯穿全书。如果你想使用 Maven,或正在使用 Maven,本书将给你绝佳的指导。

Grails 是基于 Java 和 Groovy 的快速 Web 开发框架。得益于 Grails 提供的脚手架和“惯例优于配置”,初次接触的新手会非常惊讶地看到可以快速地搭建 并运转起一个以页面为中心的 MVC Web 站点。高级的 Web 开发者则往往对可以轻易地利用他们现有的 Spring 和 Hibernate 经验而惊喜万分。《Grails 入门指南》可以加速你对这一现代 Web 框架的了解。诸如 LinkedIn、Wired、Tropicana 和 Taco Bell 这样的公司都已经在使用 Grails 了。你是否也准备好开始了呢?

最后,InfoQ 中文站 Java 社区感谢读者长久以来的厚爱和关心,在 2011 年我们将努力向大家奉献更具价值的新闻和文章,敬请关注。

2011-01-09 04:293255
用户头像

发布了 501 篇内容, 共 256.0 次阅读, 收获喜欢 60 次。

关注

评论

发布
暂无评论
发现更多内容

投稿开奖丨轻量应用服务器征文活动(5月)奖励公布

阿里云弹性计算

nginx OSS MySQL 数据库 轻量征文

远程办公期间,项目小组微信群打卡 | 社区征文

IT蜗壳-Tango

6月月更 初夏征文

leetcode 474. Ones and Zeroes 一和零(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

远程办公如何保持高效协同,实现项目稳定增长 |社区征文

三掌柜

初夏征文 7月月更

手把手带你快速入门Electron

是乃德也是Ned

7月月更

主流实时流处理计算框架Flink初体验

百思不得小赵

大数据 flink 7月月更

Go Web 编程入门:一探 GoConvey 测试库

宇宙之一粟

Go web Go 语言 7月月更

架构实战营 毕业总结

热猫

数据中台咋就从“小甜甜”变成了“牛夫人”?

雨果

数据中台

Windbg调试工具介绍

dvlinker

c++ windbg 调试工具

8253A寄存器浅析

乌龟哥哥

6月月更

让企业数字化砸锅和IT主管背锅的软件供应链安全风险指北

FN0

安全性 沙箱实验 开源软件供应链

无需zookeeper安装kafka集群(kakfa3.0版本)

字母哥哥

大数据 kafka 消息队列

架构实战营 模块九:设计电商秒杀系统

热猫

云原生到底是什么?它会是未来发展的趋势吗?

Albert Edison

7月月更

这样的商城系统全开源免费商用,还要什么自行车!

CRMEB

rxjs Observable of 操作符的单步调试分析

汪子熙

typescript 前端开发 angular RXJS 7月月更

CleanMyMac X4.11最新版本号

茶色酒

CleanMyMac X

《你的灯亮着吗》开始解决问题前,得先知道“真问题”是什么

图灵教育

【Python技能树共建】requests-html库初识

梦想橡皮擦

7月月更

Android Studio Arctic Fox | 2020.3.1、Gradle 7.0升级记录

yechaoa

android Android Studio Gradle 6月月更 AGP

Ubuntu环境编译OpenJDK11源码

程序员欣宸

Java Openjdk 6月月更

面试必答题“聊聊Java中线程的生命周期状态”如何破?

博文视点Broadview

兼容10个浏览器HTML头部配置

写程序的小王叔叔

html 浏览器 浏览器插件 7月月更

软件产品管理平台有哪些?12个最佳产品管理工具盘点

爱吃小舅的鱼

产品经理 产品管理 PingCode

HashMap分析-扩容

zarmnosaj

6月月更

一次革命、两股力量、三大环节:《工业能效提升行动计划》背后的“减碳”路线图

脑极体

什么是反向代理?Nginx反向代理如何配置?

wljslmz

nginx 反向代理 6月月更

【LeetCode】找树左下角的值Java题解

Albert

LeetCode 7月月更

电商秒杀系统

Dean.Zhang

密码学进阶(一):浅谈常见的七种加密算法及实现

No Silver Bullet

加密 文本摘要 数字签名 7月月更

2010年InfoQ中文站Java社区回顾:让Java飞一会_Java_崔康_InfoQ精选文章