写点什么

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:293239
用户头像

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

关注

评论

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

想学Python高级编程?这个技巧你不能错过!

程序员晚枫

Python 高级编程

如何进行高效的代码审查

小万哥

程序员 程序人生 后端 软件开发 代码审查

JavaScript入门基础

timerring

JavaScript

Linux系统修改ssh端口教程。

百度搜索:蓝易云

云计算 Linux 运维 SSH 云服务器

javascript数据类型详解

timerring

JavaScript

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

股市老人

Linux系统Redis性能优化详细教程。

百度搜索:蓝易云

redis 云计算 Linux 运维 云服务器

最高1000万元基金直投!2023年中国(宁波)创新创业大赛

科兴未来News

腾讯会议搭桥铺路

B Impact

2023网络与边缘产业高层峰会拉开帷幕,英特尔联合生态伙伴以创新技术破局数智化转型挑战

E科讯

AJAX - 创建 XMLHttpRequest 对象

雪奈椰子

Servlet学习:监听器、过滤器

java易二三

编程 程序员 计算机

iOS 应用上架的步骤和工具简介

雪奈椰子

精益思维在项目管理中的应用

乐思项目管理

项目管理 精益

车内语音识别数据:驾驶体验升级与智能出行的未来

来自四九城儿

Java教学之空指针异常、构造方法、封装

java易二三

Java 编程 程序员 计算机

如何配置 Sublime Text4为 C++ 编辑器

芯动大师

数据驱动的项目管理:未来趋势

乐思项目管理

#数据分析 #项目管理

3DCAT实时云渲染助力VR虚拟现实迈向成熟

3DCAT实时渲染

实时渲染云 VR虚拟现实

直播网站源码社区功能部署开发:连接世界的互动形式!

山东布谷科技

软件开发 社区 源码搭建 直播网站源码 直播网站

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

威廉META

文心一言 VS 讯飞星火 VS chatgpt (67)-- 算法导论6.5 6题

福大大架构师每日一题

福大大架构师每日一题

搜狐科技专访 | 澜舟科技CEO周明:不过度追求AGI,更看重大模型语言理解能力和应用落地性

澜舟孟子开源社区

自然对话语音数据:人机交互的新纪元与挑战

来自四九城儿

浅析嵌入式GUI框架-LVGL

巫山老妖

嵌入式开发 LVGL FrameBuffer

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

鳄鱼视界

Linux 防火墙配置(iptables和firewalld)详细教程。

百度搜索:蓝易云

云计算 Linux 运维 Firewalld iptables

自然对话语音开启人机交互的未来之窗

来自四九城儿

代码随想录 Day27 - 回溯(三)

jjn0703

Go 语言 select 都能做什么?

AlwaysBeta

Go golang 面试 select

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