java - 我如何最好地 catch Java 的最新发展?

标签 java

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




我正在申请一份 Java 开发人员的工作。我在 2001 年之前用 Java 编写了一些业余应用程序,之后我主要使用 C++ 和其他语言工作。同时,感觉java成长了很多,各种缩写(EJB,spring等)我都不知道。

我在哪里可以找到对最近(5 年)java 发展的简洁明了的解释?要理解的关键要素是什么?

最佳答案

2001年?哇,时代变了。那是什么? Java 1.3?

一、语言特点:

  • 泛型:Java 在 2004 年的 5.0 版本中添加了泛型,基本上是作为一种语法糖来阻止你从集合中的对象中进行所有这些转换;
  • 注释:也在 Java 5 中。广泛用于持久性框架、Spring 和其他地方;
  • 类型安全的枚举:Java 5 添加了一个枚举类型,它基本上是一个类(有点);
  • 并发:Java 5 添加了大量的并发工具,因此多线程发生了很大变化;和
  • 断言:Java 1.4 中添加的一种高度未充分利用的语言功能。如果在运行程序时启用,则 Assets 可以检查各种条件,如果不正确则将其炸掉。您可以在运行程序时打开或关闭它们的事实非常适合诊断。

  • 事情是,以上甚至不是大的变化。在这十年的早期,Java 经历了彻底的架构和哲学变革。

    早在 2001 年,最重要的是 EJB、Swing 和 servlets/JSP。他们都不再是了(至少不是直接的)。

    在 Java 中发生的最重要的事情(恕我直言)是 Spring,而 Spring 大约在 5 年前真正变得大了。 Spring 是一个轻量级容器,它也试图隐藏不同提供者和 API 之间的实现差异。然而,Spring 最大的特点是“控制反转”或“依赖注入(inject)”的原则。这个想法是类(“beans”)是从外部配置(“应用程序上下文”)组装而来的。

    早期 J2EE 时代的典型模式是服务定位器。它现在在很大程度上被视为一种反模式。基本上你会看到这样的代码:
    public MyClass() {
      this.dataMember = ServiceLocator.locate("some service");
    }
    

    如果你现在到处提倡这种方法,你会被视为不合时宜、级别业余、疯子或三者的某种组合。

    依赖注入(inject)以其最简单的形式将必要的行为注入(inject)到类中,而不考虑实际的实现。这种分离看似强大,是太阳(仍然)没有真正捕获的深刻转变。它还大大增强了单元测试。

    Swing 仍然存在,但不再那么大了。最近几个月,Sun 发布了 JavaFX 作为 Flash 的竞争对手和小程序的替代品。我个人认为它没有太大的 future (正如 Joel 在他最近的播客中所说,桌面上的 Java 基本上已经死了)但其他人会不同意。

    EJB 在 2001 年很大。不再那么多了。它被(正确地)视为 XML 配置的噩梦,应用程序服务器的差异使它们在很大程度上不可移植(或者,如果您愿意,则不可移植)并且它们是重量级的解决方案(3.0 之前)真的没有那么多应用程序。

    EJB 3.0 采用了一种更类似于 Spring 的依赖注入(inject)(某种程度上)和 POJO(普通 Java 对象)注释的方法。

    Servlets 和 JSP 在 2001 年大行其道。Struts 那时或此后不久就开始流行,直到几年前才大行其道。它现在已经被其他更现代的 Web 框架超越(例如 Struts 2——尽管名称为 Spring MVC、Seam 等,但与 STruts 1 没有真正的关系)。

    当今最重要的事情——不仅仅是在 Java 中——是与 Web 和 RIA 相关的。 Flash/Flex 和 Javascript/HTML/CSS(加上框架)如今在这里占据主导地位(是的,有 GWT,但它有一小部分追随者)。

    Weblogic 和 Websphere 没有 2001 年那么大。JBoss 仍然有很大的动力,但我最近选择的应用程序服务器是 Sun 的 Glassfish v2 或 v3 Prelude。

    IDE 也发生了变化。 JBuilder 在 2001 年非常大。现在只有三个:Eclipse、Netbeans 和 IntelliJ(可能按流行程度排序,但我更喜欢 IntelliJ,这也是其中唯一的商业版本)。

    关于java - 我如何最好地 catch Java 的最新发展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/638192/

    相关文章:

    java - 使用 ListModel 来隐藏 TreeSet

    java - Spring 3.0 设置和获取 session 属性

    java - Spring Security OAuth2授权流程

    java - Glassfish 管理控制台在创建 JDBC 池时抛出 java.lang.IllegalStateException

    java - 如何在Android 5.0 Lollipop 中检测前台服务

    java - 使用 Gson 的自定义 JSON 反序列化器

    java - Mapstruct 自定义映射器并自动生成一个

    java - JOptionPane 上的图标

    java - 如何将txt文件数据读入arraylist

    java - java的用户注册框架