基本Java资源

自1995年将Java平台引入整个编程社区以来,Java平台已经远远超出了早期Java专家和传道者所想象的Java世界所具有的“无处不在的小应用程序”的愿景。 取而代之的是,Java世界上升到了Swing,围绕servlet合并,加入J2EE,偶然发现EJB,避开了Spring和Hibernate,添加了泛型,变得更加动态,然后实现了功能,并继续朝着各种有趣的方向发展即使我写这个。

这使得没有随语言一起成长的Java程序员有些不知所措。

作为演讲者,博客作者,顾问和指导者,Java领域的初级和中级程序员经常向我要资源,以帮助他们掌握这个广阔,复杂,看似无穷无尽的世界。 几年前,我通过发布“ 推荐读物清单”来回答这个问题,但是最近developerWorks的Java编辑器要求我整理更广泛的资源清单,而不仅仅是书本,这是一个好主意,考虑到清单已经发展到一个潜在的消费者可以在接下来的十年中轻松阅读它们而仍然不会影响内容的程度。

为了避免出现偏见或过度影响,我决定致电Blogo寻求资源:网站,会议,书籍,博客,工具,以及Java开发人员在开发过程中可能会感兴趣并使用的任何东西在空间中,可能会有助于导航巨大的可用内容。

回应是巨大的(我感谢所有答复的人)。

快速说明的解释之前,我们开始:这些资源不一定是Java生态系统中最流行,最强大或最有影响的资源- 该名单可能是完全不同的(虽然我怀疑很多资源将在这两个地方出现); 相反,这些是每个新兴Java开发人员都应该在浏览器,书架或日历上拥有的资源。 与任何此类列表一样,对于应包含哪些不应该包含的内容或应包含哪些不应该包含的内容,总是存在合理的辩论空间。

没有进一步的仪式,让我们继续。

网站和开发人员Web门户

Web显然改变了共享材料和出版物的性质(您现在正在Web上阅读本文档并没有让我迷失),因此从关键Web站点和开发人员门户开始对关键Java资源进行调查似乎是合理的每个Java开发人员都应该关注。

在许多情况下,网站和/或开发人员门户的价值不仅在于所提供的资源或其中张贴的文章,而且还在于该门户或网站周围的社区中。 静态网页和文件下载的时代Swift淡化到论坛,主题文章以及更频繁访问该站点并组成其社区的开发人员之间的交互式讨论这一更“活跃”的模型背后的背景门户的成员和所有者。 正如技术发展和开发人员必须发展以跟上技术发展一样,门户网站也必须发展以适应社区不断变化的需求。 与社区保持开放的关系对于保持门户网站的活力至关重要。

网站列表(带有URL):

  • java.sun.com
    这是JDK的来源,通常是Java开发人员下载JDK和文档副本的第一个站点。 但是除此之外,它还是整个Java平台上信息的良好来源,其中包括有关JVM本身的一个非常丰富的部分(热点),该部分以惊人的深度描述了JVM的内部结构。
  • InfoQ
    由ServerSide的主编Floyd Marinescu创建,InfoQ与此处列出的许多其他资源不同,因为它明显是技术中立的,不仅涵盖Java代码,还涵盖.NET和Ruby,并且涵盖了敏捷的方法和见解。 尽管有关InfoQ的评论社区没有TheServerSide的社区那么大,但讨论通常更为温和,没有敌意。
  • 服务器端
    TheServerSide通常被称为“ Java的Slashdot”,是企业Java主题受到公开质疑,热烈讨论和积极追求的第一个地方。 关于轻量级容器(以Spring为代表)的一些最早的想法就出现在这里,现在在Java社区中出现了许多现在被认为是“思想领袖”的个人。 尽管最近关于争吵大喊大叫的争论有时在争论中,但TSS始终是我们如今生活在其中的许多Java生态系统的原始归宿。 因此,它将永远是信息的来源,如果没有其他的话,它将是历史的信息。
  • 区域
    DZone最初是作为Java开发人员的资源而使用的,但是最近开始扩展到其他技术领域,包括.NET和Ruby,以及其他几个涉及主题的“区域”。 这样,尽管Java开发人员可以完全专注于Java专区,但确实会发生一些交叉授粉,明智的开发人员可以利用这一优势。
  • IBM?developerWorks
    如果您正在阅读本文,那么您已经找到了dW。 为了充分公开,我必须注意,除了此文章之外,我还为该站点撰写过文章,但是我可以很完整地说,dW是Java编码和JVM文章和资料的重要资源。 特别是,一定要检查一下Java理论和实践 ,这是Brian Goetz长期运行的系列文章,其中包括对JVM垃圾收集器的三部分描述,以令人惊讶的可接近方式介绍了GC的核心概念。
  • JavaWorld :经过漫长的休假, JavaWorld通过重新设计的外观,高质量的技术内容以及便捷的主题分类法,重新焕发了年轻的荣耀,可快速找到所需的文章类型。 不要错过广泛的档案资料 ,该档案资料可以追溯到其成立之初,其中包括一些Java社区最著名的贡献者的文章。
  • 阿蒂玛
    由Bill Venners创建的Artima已经演变成大量的文章,博客和访谈,但并非全部都完全专注于Java开发,并且在Java领域有一些著名的人物。 (请查看Bill Joy在Java 5发布后对Java语言的复杂性的怀疑,以及他用来证明自己的担忧的示例Enum <>作为经典示例。)非常值得一游。

请注意,对于上述许多内容,要充分利用站点/门户将需要某种形式的注册。 在撰写本文时,所有这些工具基本上都是免费的,并且仅需要用户名/密码登录,因此他们可以唯一地标识访问者和电子邮件地址,从而可以定期发送主题新闻或电子邮件。 (据我所知,所有这些都将允许您选择退出电子邮件,但是我没有尝试过,因为我发现每隔一段时间,时事通讯就会告诉我一些我觉得很有趣并且还不了解的信息,使它们成为真正有用的东西,可以放入我的收件箱。)

网志

博客是让开发人员随时了解有关技术的思想,模因,概念,想法,辩论和其他智力讨论,并了解那些似乎在特定技术领域具有影响力的“思想领袖”的简便方法。 更好的是,博客可以通过提要阅读器在本地消费,提要阅读器可以在本地下拉文章/条目,以便即使离线也可以消费。 实际上,博客已变得无处不在,以至于专用设备(例如Amazon Kindle)可以轻松地获取开发人员想要的信息。

关键是要确定要阅读的数百万个博客中的哪个。 每个开发人员在阅读哪些博客和不阅读哪些博客方面都有自己的喜好,但有些博客应从以下几个方面考虑:

  • Java Posse
  • Java专家通讯
  • “网站”一节中列出的网站提供的任何RSS feed

请记住,这些(大部分)是个人观点; 有时,在那里共享的观点在以后会变成事实上的错误-切勿仅根据博客条目中的信息做出生产决策。 但是,如果使用博客来消除思维过程的混乱,博客可以成为一种非常强大的技能增强资源。

包和/或库

跟踪Java生态系统中的所有库和程序包是一件繁琐的事情,对于Java开发人员来说,这很容易忽略。 结果,开发人员有时会错失一个事实,即他们正在手工编写的东西已经存在于平台中(如果只有他们停止发现它的话!)。

以下是我的清单:“每个Java开发人员应至少了解的十大Java包(理想情况下知道如何使用)”:

  • java.lang.reflect
    Java的许多库和工具都依赖于Reflection软件包,因此学习它几乎已成为一项要求(如果出于其他原因,除了了解何时使用它,由于安全策略或其他基础设施不匹配而失败)。 与Reflection紧密结合的还有Java 5 Annotations和java.lang.annotation
  • javax.script
    随着对遍及Java生态系统的动态语言的重视,知道如何在Java代码中使用脚本语言可以使开发人员扩展系统,而不必经历昂贵的compile-link-run-test周期。
  • javax.managementjava.lang.management
    该管理软件包,也称为Java管理扩展(JMX),是监视Java应用程序运行的强大工具。 因此,开发人员应该熟悉并熟悉JMX,以便构建系统管理员实际可以使用的软件。 不要忘了将JDK附带的jconsole工具视为应用程序运行状况仪表板的示例,既可以作为构建示例,也可以作为有用的工具使用。 (请密切注意构建jconsole插件的脚本演示,以启用jconsole内部的脚本支持,这是任何有能力的系统管理员都可以使用的强大工具。)
  • java.util.concurrent。*
    并发是开发人员在未来十年中将面临的最大挑战,而Java开发人员将针对并发错误使用的主要武器将是此包及其子包( .atomic.locks )中的类。 学习使用它与学习如何编写类同样重要,甚至更重要。 学习,生活,热爱它。
  • java.util
    java.util中的类也是如此。 这些是如此频繁地被引入,尤其是Collections类,以至于它像java.lang一样被自动导入可争论的java.util.*
  • java.beans
    毫无疑问,JavaBeans是整个Java生态系统中使用的核心元素之一,以“ POJO”(普通的旧Java对象)的较少营销名称命名。 它们仍然基于JavaBeans代码,API和规范,因此花一点时间在java.beans的类上只能帮助编写更好的POJO。
  • java.util.logging
    诊断和审核日志很快成为强大的工具,可用于跟踪正在运行的程序的执行情况,无论是出于调试目的还是出于管理和监视目的。 我的建议:学习使用此软件包及其开源表亲log4j 。
  • java.security。*
    Java安全性API,策略机制和权限类是使Java环境成为安全的计算平台的核心部分,但前提是开发人员知道如何利用它。 避免使用加密API-在用尽所有其他可用选项之前,请不要使用它们。 它们并不难使用,但是正确使用加密货币(意味着没有巨大缺陷)需要花费很多年的时间,并且需要其他加密货币专家进行很多同行评审。 首先使用其他机制,例如SSL / TLS和GuardedObject/SignedObject/SecureObject类。
  • javax.xml.parsers。*javax.xml.bindjavax.xml.transform。*
    XML很大程度上出现在Java开发人员的思维中,并且能够解析它(直接通过对象XML库)和转换(使用XSLT)是一项强大的技能,即使不是绝对必要的。
  • javax.sound。*
    好的,这不是必需的技能,但是每隔一段时间就知道如何弹出声音效果可以帮助恢复原本平凡的代码。 此外,当没有方便的显示时,有时可以使用声音在系统上提供信号和反馈。 除此之外,关于机器抛出堆栈轨迹并播放您最喜欢的恐怖电影中的尖锐尖叫声,让用户知道发生了一些不好的事情,这真是令人生病的乐趣。

当然,JDK内部和JDK外部还有许多其他软件包值得学习,但是掌握这些软件包将使您在大多数项目中都处于良好的信誉,更不用说大多数工作面试了。

会议活动

在Java开发人员的教育中,会议继续发挥着重要作用,特别是对于那些尚未聚集到足够大的临界数量以至于还没有被大型培训公司收集的主题的主题。 对于开发人员来说,它们也是与其他所有技能和职责的开发人员会面的绝妙机会,使与会者有机会做一些相当有力的事情(而且是完全必要的):发泄工作环境有多糟糕。

参加会议也有一个有益的副作用(如果积极地进行按摩,可以将其分解为更大更好的东西): 建立与会者的开发人员同级小组。 由于电子邮件,邮件列表(例如GoogleGroups或Yahoo Groups)和其他轻量级组件通信工具的广泛使用,比以往任何时候都更容易跟踪会议中遇到的人。 那些在午餐或晚上聚会上建立起来的友谊可以持续一生,并随着时间的流逝而有所回报,尤其是在评估新技术时。

让30年经验丰富的会议参与者,演讲者,组织者和崩溃者(不是我,而是我的朋友)的话成为您的指导:“会议的新手参加会议;退伍军人去参加聚会和人民。各方可以帮助您结识新朋友,而人们可以帮助您发展事业。”

会议包括:

  • 没有绒毛,只有东西
    我特别衷心地赞同这一观点,这不仅是因为我经常在那里发言,还因为JavaOne 2007十大发言者中有七个是NoFluffJustStuff发言者(当前或以前)。 Java开发人员在其他任何地方都不会以更高的价位或将其放在更方便的位置来关注技术主题:您的家乡。 (每年在北美大陆举办超过30场演出,并且将业务扩展到欧洲和亚洲,您很有可能可以开车去NFJS演出,而不用花数千美元去一些遥远的地方。同样,毫不奇怪的是,本文中推荐的许多书都是由出现在NoFluff展览上的作者撰写的,或者是:NFJS的组织者竭尽全力地寻找“主要来源”。讨论各种Java和敏捷开发主题。
  • Java一
    它很大,没有人情味,总是在旧金山举行(根据您公司的旅行预算,这是赞成还是反对,但在地球上没有其他聚会可以带来如此多的关键Java推动者和摇动者像JavaOne一样集中到一个地方。
  • OO
    JAOO每年在丹麦的奥尔胡斯举行一次,为了不让我们的欧洲Java弟兄们冷落,它已经运行了近二十年,并且没有放缓的迹象。 JAOO不仅吸引了一些顶尖的演讲者和作者,而且还具有作为跨技术会议的相对罕见的区别,这意味着与会者可以在早上参加Java会话,并与一些C ++开发人员聊天。午餐,在下午了解Microsoft?Silverlight(或其他新功能)的最新动态,并在晚上与Smalltalkers分享一些啤酒。 如果您想扩展自己的观点,那么JAOO或其姊妹会议QCon(与InfoQ人士联合举办)是一个不错的起点。 对于住在“下山下”的Java弟兄们来说,JAOO是今年(2008年)第一次来到布里斯班和悉尼。 所有迹象表明,它们将在未来几年再次回来。
  • Devoxx
    以前在比利时安特卫普召开的JavaPolis大会,正以惊人的速度增长,是与欧洲同行会面的好方法(在您喝啤酒的同时品尝一些优质的比利时啤酒)。 演讲者是顶尖的,专注于前沿话题。 还有一个宽敞的贸易展厅,以及与您的其他开发商互动的许多机会。
  • 贾祖恩
    Jazoon会议是一个相对较新的会议,于2007年在瑞士苏黎世开幕。名列榜首的是Martin Odersky(Scala的创建者),Neal Gafter和Simon Phipps(Sun的首席开源官)。吸引大量演讲者。 Jazoon完全专注于Java主题,并且正坐在欧洲的快餐中心,对于欧洲的Java弟兄来说,这是一个很好的会议,可以在他们的日历上做标记。

还有其他各种目标受众的会议,但以上会议直接针对Java开发人员。 希望扩展世界视野的开发人员应考虑参加“替代性”技术会议,例如在世界各地举行的各种Perl,Python,Ruby甚至.NET聚会。 保持思想开放的新思维有时需要研究一系列全新的问题。

图书

对于开发者而言,没有比传统书籍更容易获得的更多资源了。 只有在您本地书店(或者如果您住在腹地,Web浏览器和Amazon )最远的地方,才有大量技术知识和经验的宝库……只要您能对无数的“ me-too”“ Java”进行分类用于“傻瓜”克隆。

这些主题假定读者已经对Java语言和工具集有所了解; 刚开始的Java书籍非常普遍,几乎所有书籍都包含相同的基本材料。 选择一种方法可以选择一种方法,作者的写作风格,甚至有时可以选择练习的解决方案(如果包括练习)是否包含在本书的CD中。

掌握基础知识后,请考虑以下事项:

  • Joshua Bloch撰写的有效Java (第二版)
    第一本应该放在每个Java开发人员的书架上,不停出版,不放手,没有障碍的书。
  • Brian Goetz的Java并发实践
    第二本应该放在每个Java开发人员的书架上,因为每个Java开发人员(无论喜欢与否)都在多线程环境中运行。
  • Justin Gehtland和Bruce Tate编写的Java更好,更快,更轻量
    这篇简短的文章成为许多Java开发人员采用“轻量级容器”环境的“网关药”,这些环境是Spring所倡导的,填补了大多数大型EJB服务器(例如WebSphere或其他事务处理中间件)留下的空白。 作者在完成基于POJO的开发周期方面做得非常出色,指出了该想法的优点和缺点,以及采用轻量级方法通过Spring和Hibernate之类的工具构建企业应用程序并不意味着减少了开发成本。功能或最终系统的功能。
  • Ted Neward撰写的有效企业Java (我)
    有75种方法来确保您的企业Java应用程序(无论它们是使用Spring,EJB,Web服务编写的,还是使用上述任何一种方法编写)都不会出错。 正如Effective Java不适合入门的Java程序员一样, Effective Enterprise Java也不适合仅学习“企业Java”领域基础知识的开发人员。
  • 释放它! 迈克尔·尼加德(Michael Nygard)
    任何想要编写用于生产服务器的软件的人都需要阅读本书-这是对生产中可能出错的事情以及如何处理潜在故障(从故障中恢复或完全避免)的深刻见解。
  • 由Bill Venners 在Java 2虚拟机内部或由Stuart Halloway 为Java平台开发组件
    Java开发人员学习了该语言后,基础平台-Java虚拟机本身即意味着诸如垃圾回收和Reference对象,ClassLoader,线程和监视器等主题,将成为下一个探索的下一个前沿领域。 这些书(或两者)都可以作为实现此目的的有用指南。 每个组件的最大缺点是它们的相对年龄: Inside在Java 1.2的时间范围内发布,此后不久就基于组件 。 幸运的是,自那时以来,大多数Java虚拟机都保持不变,因此,当读者发现与JDK 1.2不同的细节时,他们将随时准备将书抛在脑后,继续进行下一个主题。
  • Martin Fowler 的企业应用程序架构 模式和Gregor Hohpe和Bobby Woolf的企业集成模式
    这两本书都是模式书,涉及设计方法和思想,因此,假定大多数读者都阅读了原始的“四人帮”一书,即Gamma,Helm,Johnson和Vlissides的设计模式 。 模式书通常通过为开发人员提供一些基本的概念构建基块来扭曲和转移到适当位置,从而帮助开发人员创建更强大的设计,但是当被视为自身目标时,很容易失去其有效性。
  • John Smart的Java Power Tools
    有人建议这本书,这是对Java生态系统中可用的各种工具的简要介绍。 Smart还提供了有关本书的培训课程(Java Power Tools Bootcamp),但是大多数开发人员获取信息的最简单方法是通过死树版本。
  • 实用程序员 ,安迪·亨特(Andy Hunt)和戴夫·托马斯(Dave Thomas)
    无论使用哪种实际语言或平台,这本书都应该放在每个程序员的桌子上。 这是一本很久以前的书,并且一个程序员将??在未来几十年中引用它。 在与弗雷德·布鲁克斯(Fred Brooks)的经典小说《神话人月 》( The Mythical Man-Month)相同的课堂上思考它。
  • Neal Ford 的生产程序员
    这个最新版本看起来像Pragmatic Programmer一样经典,它着重于程序员可以用来提高生产力的各种技巧,窍门和技术,远远超出了IDE的范围。
  • 实用入门套件
    这包括实用单元测试(使用JUnit) , 实用项目自动化和实用源代码控制(使用Subversion) 。 每个主题都以简短,集中的讨论涵盖了每个主题的核心,而这些讨论直接切入了主题的核心,而没有太多的干扰。 特别是Project Automation,是《行动中的蚂蚁》一书的绝佳开胃菜,但它也涵盖了良好构建过程的原因和内容。
  • Erik Hatcher和Steve Loughran的《行动中的蚂蚁》 (第二版)
    Ant是Java平台的首屈一指的构建实用程序(有关更多详细信息,请参见下一部分工具),并且这本书是迄今为止Ant所代表的强大功能的最佳介绍。 除了学习如何使用Ant之外, Ant in Action还从实用的Java开发人员的日常实践的角度演示了单元测试,持续集成和生产部署实践。

工具类

就像盖房子不只是“抢锤子并钉钉子”一样,Java开发也比“抢IDE和开始吊牌”要多。 当然,好的IDE可以极大地帮助您编写Java代码,但其他工具可以提供与IDE相同的(甚至更多)价值。

没有特别的顺序...

  • IDE
    当然,工具讨论始于IDE。 为了避免商业认可,Eclipse和NetBeans都是开源和免费的,因此提供了有吸引力的“第一步”选项。
  • 单元测试
    长期以来,这里最喜欢的是开始单元测试革命的原始人JUnit ,但是其他一些人已经开始流行起来,包括TestNG和JUnitPerf等。
  • 持续集成
    持续集成服务器会不断从源代码管理中检查代码,对其进行构建,针对该代码运行单元测试,并通常通过电子邮件将任何构建失败报告给开发人员。 有几种开放源代码版本,但吸引了很多关注的是Hudson,这是一种具有大量插件和高可扩展性的持续集成服务器。 原始的是CruiseControl ,因此仅凭这个原因就值得尊重。
  • 静态分析
    FindBugs是一个开放源代码的静态分析工具,它基于Java代码运行,执行深度n分析以找出所有可能的代码路径,并根据一组可扩展的规则报告其发现的各种错误和警告。 FindBugs由William Pugh(与发现Java内存模型中的错误的William Pugh相同)开发,FindBugs最大的成名之处在于它能够分析Java代码中的并发性错误,这是每个程序员都可以理解的。
  • 网络数据包跟踪
    Wireshark的 (这以前曾经被称为抓包)为程序员提供了什么在网络上传播,给他们一个机会来验证什么跨线动是什么应该是跨线动的观点,并认为什么是不应该那里(例如敏感信息或明文密码)不是。
  • 虚拟化
    诸如VMWare,Xen,VirtualBox或VirtualPC之类的虚拟化工具(或称其为平台)可能使程序员能够创建与生产机器将要运行的环境相同的环境,而不会损失环境的生产力主机PC。 它还提供了一种方便的途径,使您可以在家中试用“实验性”软件,而不必冒险必须保持生产效率的机器。 如果不是完全开源项目,则大多数都具有某种免费选项。

其中一些是商业工具这一事实不应该吓到您。 如果某个工具每周只为您节省一个小时,那么该工具需要多长时间才能收回成本呢? 而且,如果管理层不接受这种说法,那么仔细考虑一下特定工具可以节省的时间(开发人员时间或生产诊断或执行时间)通常可以说服他们一分钱的愚蠢。精打细算/笨拙的观点。

感谢贡献者

感谢我的博客(blogs.tedneward.com)的所有读者,他们抽出了自己的时间来建议应包含在此列表中的资源; 一些(但不是全部)包括Greg Ostrovich,Ryan Slobojan,Hamlet D'Arcy(被要求列为“另一位流亡于IT领域的赚钱者来购买零件并修补他的超级助推器,到那时他将修复他的太空护卫舰,然后回到他的家乡星球”),皮埃尔·马克·拉洛克克,普拉珊特·拉恩,马克·斯托克,埃里克·科温,莫滕·安德森,亚历克斯和伊冯娜·米勒,拉胡尔·拉杰,布莱恩·斯莱滕和尼尔·福特。

未来趋势值得关注

当然,如果完成了明天的技术并且使所有学到的知识突然过时了,那么Java开发人员就不会把所有的时间都花在研究当今的技术上。 保持关注作为“未来之潮”而被抛弃的事物也同样重要,只要如此,当公司的CTO恰好站在电梯旁紧挨着您并问:“这是我的全部吗?还是听说过功能语言?我们应该研究一下吗?”,您可以获得一个连贯的答案。

Java平台的一些“未来”没有特别的顺序,包括:

  • 动态语言
    诸如Groovy和JRuby之类的语言催生了其他值得关注的项目,例如Clojure和Fan,他们尝试了一种观念,即类型较少的环境可以提供更高的生产率并提供更多选择。 但是,这并不是放弃Java语言的呼吁:最好的效果是两者的结合。
  • 功能语言
    函数式语言因Scala而引人注目,其优点是具有隐式并发友好性,这是由于它们倾向于鼓励可组合函数和缺乏共享状态(尽管它们有时有时可以具有只有母亲才能喜欢的语法)的总体趋势。 Jaskell是Haskell-on-JVM的实现,而Clojure(再次)适用于此,从而提供了软件事务性存储器在生产形式中的外观的愿景。
  • Java中的闭包
    添加闭包支持(也称为lambdas或匿名方法)将简化Java编码体验的某些部分,并且对于是否包含在Java 7版本中也引起了激烈的争论。 鉴于此讨论对社区的划分有多深,所以Java程序员应该进行一点研究,看看这一切引起了什么。
  • 达芬奇机
    JVM的新版本旨在与其他语言(例如上面提到的动态和功能语言)更友好,后者可能最终也可能不会退回到主流JVM版本中。 密切注意这一点将有助于了解在当前JVM上运行动态/脚本语言的优缺点。
  • 用户界面开发
    在Flash / Flex,Silverlight和JavaFX之间,Web浏览器即将完成惊人的(可能令人震惊的)比例转换。 甚至不考虑Java空间中的新服务器端Web框架或Google Web Toolkit(GWT)之类的奇怪工具。 用户界面一直(并在可预见的将来仍将)保持彻头彻尾的性感。 在尝试构建比HTML页面可提供的交互性更高的内容时,了解一两个,更不用说像Swing或SWT这样的“富客户端”库了,这将带来巨大的好处。

与任何与“未来”相关的事物一样,请记住,今天正在讨论的东西可能是错误的方向,泛滥成灾,一时的分心,对行业的影响或下一件大事; 保持同等的态度,保持开放的心态和健康的怀疑态度。

摘要

请随时为该列表做出贡献-它只会产生更好的资源列表。 甚至时间的流逝也会改变其内容,因为生态系统将继续发展,变化和增长。 这是一件好事。 如果我们不得不使用1995年获得的Java环境,那么我们已经转向了其他东西。

在生态系统中保持活跃:贡献补丁,提出增强建议,如果所有其他方法都失败了,那就建立自己的更好的捕鼠器。 谁知道? Your project might make it onto this list five years from now.


翻译自: https://www.ibm.com/developerworks/java/library/j-javaresources/index.html