【.com快译】很多Java开发者希望通过某种Java成长路线图来回答以下问题:学习哪些技术,使用哪些工具和框架。在这里,我将根据我多年的经验向您展示一个路线图。在保持简单可行的同时,该路线图引入了符合行业标准且易于大多数人遵循的工具和库。路线图如下,希望对大家有所指导和参考。Java开发者必备技能下面,我们将根据上述Java路线图,讨论开发者必须学习和掌握的工具、框架、库和API。1.工具在路线图中,工具部分主要分为两部分。第一部分是以IDE为主要工具。它可以编译、运行、调试、分析、测试、比较文件和代码以及重构。第二部分是构建工具。您需要Maven和Gradle等工具来构建和部署您的项目。当然,您也可以选择使用更传统甚至更老的ANT。然而,我个人的偏好是在处理所有新的Java项目时使用Maven或Gradle。2.JDKAPIJDKAPI是下一个需要学习和掌握的方面。根据其对大多数Java开发者的重要性,我将Java集合框架(CollectionsFramework)、Java并发(Concurrency)、JavaIO和Java8API的核心领域归纳为这一类。下面一一讨论:2.1Java集合框架这是每个Java开发者都应该认真学习的重要JavaAPI之一。该API提供了Java中标准数据结构的实现,例如链表、集合、栈、队列、哈希表和优先级队列。您至少应该了解的一般对象包括:ArrayList、HashMap、HashSet、LinkedHashSet和TreeSet。它们都有自己不同的属性。例如:ArrayList是一个可以增长的动态数组;HashMap是哈希表的标准实现,可以用来存储各种键值对;而HashSet是一个不允许重复元素出现的实现类集合。2.2Java并发在Java集合之后,另一个关键的JavaAPI是多线程和并发。个人观点:要想成为一名合格的Java开发者,必须对JavaConcurrencyAPI有扎实的理解和掌握。不仅要对Thread、Runnable、Objectlocking和synchronization等基本概念有扎实的理解,还应该熟悉死锁、活锁、竞争条件等相关概念以及如何处理它们。同时,你还应该了解一些Java高级概念,例如:如何在Java5及其后续版本中添加各种同步器,包括:CyclicBarrier、CountDownLatch、Phaser、CompleteableFuture等,以及如何在Java中进行异步操作JavathroughFutures等2.3JavaIO在采访了100多位Java程序员后,我注意到并发现:与Java集合和Java多线程API相比,他们对JavaIO和NIOAPI的了解真的是少之又少。虽然大多数人已经花了很多时间学习前两个API,但我们不应该忽视其他关键API。写过Java核心应用的读者应该知道,经常需要用到java.io包中的File、InputStream、OutputStream、Reader、Writer等类。它们都是JavaIOAPI的核心。同样,如果要编写基于socket的应用程序,则需要通过java.nioAPI了解ByteBuffer、FileChannel、Selector等关键类。但是,Internet上没有太多用于教授JavaIO和JavaNIOAPI的资源。您可以使用TheCompleteJavaMasterclass课程资源来完全掌握此类API。当然,本课程还将涉及JavaAPI的许多其他基本概念。2.4Java8的特性Java程序员应该学习和掌握的下一个重要API是Java8的特性。可以毫不夸张地说,这些特性彻底改变了当今Java的编程方式。因此,作为Java开发人员,您不应错过了解和使用Lambda表达式、StreamAPI、Optional类以及新的日期和时间API的机会。Java8已经发布5年多了,现在大多数库已经停止支持低于Java8的版本。因此,如果你想成功实现Java应用程序的编写和调试,请抓紧时间学习Java8的新功能。3.FrameworkJava的魅力在于它拥有一个生机勃勃的生态系统,这意味着它的众多框架和库几乎可以用于所有领域。目前,Java开发者经常使用的框架和库包括:Spring、SpringBoot、Hibernate、Log4j和JUnit。3.1SpringFrameworkSpringFramework是最流行的Java框架之一。事实上,在过去五年里,我几乎在我开发的每个Java应用程序中都使用了这个框架。SpringFramework不仅可以让开发者编写简洁的代码,还可以通过DependencyInjection和InversionofControl等特性实现代码的轻松测试和维护。它具有适用于大多数日常任务的丰富API,恐怕这就是Java开发人员应该学习Spring框架的原因。3.2Hibernate在我的路线图中,第二个推荐Java开发人员学习的框架是Hibernate。它基于Java持久性API(JPA,JavaPersistenceAPI)。更准确地说,Hibernate早于JPA,但由于JPA是在Java中实现持久层的标准API,因此Hibernate也能够实现它。由于大多数Java应用程序都需要与数据库进行交互,因此开发者可以通过JavaHibernate等框架,使用JDBC来处理Java中与数据库相关的操作。此外,由于Hibernate提供了开箱即用的缓存和事务等基本功能,开发人员可以有更多的时间专注于应用程序的逻辑,而无需考虑如何实现缓存。显然,Hibernate极大地提高了Java应用程序的性能。3.3SpringBoot这里推荐的第三个框架是SpringBoot。正如Spring可以让Java应用的创建变得更简单一样,SpringBoot延续了Spring的简化理念,通过自动配置等功能省去了创建和配置基于Spring的Java应用的各种繁琐步骤。此外,其入门级POM功能将常见的依赖项分组为多个简单且可重用的POM。4、测试测试,尤其是单元测试、集成测试和自动化测试,是任何Java开发人员都必须具备的一项基本技能。其中,JUnit和Mockito是Java开发人员最熟悉和流行的两个单元测试和模拟库。当然,你也可以学习更高级的库,比如:业务驱动测试的Cucumber,集成测试的RobotFramework,JUnit,这些你肯定绕不过去。在PowerMock、Mockito和EasyMock这三个常用的仿真库中,我强烈推荐大家学习Mockito。由于目前被许多Java开发人员和公司使用,它逐渐成为Java中创建mock对象的标准库。如果您想了解有关JUnit和Mockito的更多信息,可以访问以下链接:https://javarevisited.blogspot.com/2014/08/top-5-books-to-learn-unit-testing-junit-tdd-Java程序员。html#axzz5E2uHdG3w和https://hackernoon.com/5-courses-java-programmers-can-join-to-learn-junit-and-mockito-in-2019-h74t38r4获取相关书籍和更多课程资源。5、实用程序库Java一直拥有丰富的开源库,可以帮助开发者做几乎所有事情,从日志记录到机器学习,从发送HTTP请求到解析JSON。值得一提的是:ApacheCommons和GoogleGuava是两个实用程序库,它们是对JavaJDK库的有效补充。在这里,我还为Java开发人员列出了20个常用的JavaAPI和库--https://javarevisited.blogspot.com/2018/01/top-20-libraries-and-apis-for-java-programmers.html。希望这份清单可以帮助您编写出更好、更高效的Java程序代码。原标题:The2019JavaDeveloperRoadmap,作者:JavinPaul
