前言

1.理解JVM外部和Java性能调优

如果您真的想成为优良的Java Developer,那么您必须首先花工夫学习JVM外部,例如JVM的不同局部,它们如何工作,JIT,JVM选项,垃圾收集和收集器等。

如果您十分理解JVM,则能够编写强壮且高性能的Java应用程序,这就是Rockstar Java开发人员所做的。

作为此过程的一部分,您还应该学习如何配置Java应用程序,如何发现性能瓶颈,例如哪些对象占用了您的大部分内存,并且耗费了CPU。

对于结构化学习,我举荐周志明撰写的《 JVM高级个性与最佳实战》,这是我近几年读过的一本好书。

2.学习微服务和云

架构在一直变动,许多公司正在从繁多应用程序迁徙到微服务。

当初是Java开发人员学习微服务体系结构以及如何利用Java创立微服务以利用这一最新浪潮的时候了。

侥幸的是,Spring框架提供了Spring Cloud和Spring Boot,它们大大简化了Java中的微服务开发。

如果您正在寻找一门课程,那么《Master Microservices with Spring Boot and Spring Cloud》是一个很好的终点。

3.学习Spring Framework(Spring Boot)

现在,Java开发人员必须学习Spring框架,因为大多数公司更喜爱应用Spring框架(如Spring MVC,Spring Boot和Spring Cloud)进行开发,以开发Web应用程序,REST API和Microservices。

它还促成了依赖注入等最佳实际,并使您的应用程序更具可测试性,这是古代软件的要害要求。

如果您是一名新的Java开发人员,那么我建议您从Java和Spring教程开始,以学习该弱小框架的基础知识;如果您曾经相熟Spring,则应该摸索Spring Boot和Spring Cloud以开发下一代Java应用程序。

4.学习Java API和库

如果您与优良的Java开发人员一起工作,您可能曾经留神到他们对Java生态系统的全面理解,而API是其中的次要局部。

Java是世界上最风行和最成熟的编程语言,并且有大量的库和API能够用于简直所有可能的事件。

当然,您不应该全副理解它们,然而您应该相熟一些要害的API,例如JSON解决API(例如Jackson和Gson),XML解决API(例如JAXB和Xerces),单元测试库(例如Mockito和JUnit)等。

如果您不理解它们,则能够学习或至多取得它们的概述。首先,您能够查看我每个Java开发人员都应该晓得的20个Java库的列表,其中涵盖了要害畛域的库,例如解析,字节码操作,并发,汇合等。

5.学习Java 8+(Java 13)

对于Java开发人员而言,这是最重要的事件。已有4年的历史了,甚至6个月后Java 13才公布,人们都在议论Java 10性能,我晓得许多程序员还没有应用Java 8性能(如lambda和Stream API)编写任何代码。

可怜的是,他们中的大多数都是经验丰富的Java开发人员。我理解您的职业学习有时会变慢,然而如果您当初不采取行动,您将被抛在后面。

当初,简直所有Java开发工作都须要Java 8技能,如果您没有这些技能,那么在Java面试中很难做好并表现出色。

当初,如果您决定学习Java 8,但又放心从哪里开始,我建议您查看Udemy上的Complete Java MasterClass,它将教您Java 8性能的所有基础知识。

6.学习设计模式和编码最佳实际

如果你是从头开始编写Java应用程序,而后大部分的工夫你正在编写面向对象的代码和设计模式是久经考验的常见问题的解决方案。

通过理解它们并将它们合并到您的代码中,能够使您的应用程序更灵便,未来更容易更改。

因为其余Java开发人员也相熟设计模式,并且他们将很快地理解您的解决方案,所以它还改善了整体代码品质和文档。

然而,不要只专一于代码局部,了解精力并施展创造力。应用lambda和Streams之类的Java 8性能重写诸如Strategy模式之类的模式。

7.学习开发工具和IDE

更好的Java开发人员的最重要特色之一就是他们在工具方面十分杰出。他们不仅比一般开发人员理解更多的工具,而且对工具的理解也很高。

因为Eclipse,NetBeans和IntelliJ IDEA之类的IDE是Java程序员最重要的工具,因而花一些工夫来学习更好是很有意义的。

您能够理解一些使您的工作变得容易的插件,或一些有助于您更好地导航的键盘快捷键。

即便是一些小技巧也能够帮上大忙,因为您应用的技巧比您想像的要多得多。

8.学习DevOps

对于古代Java开发人员,DevOps的常识至关重要。他至多应该相熟继续集成和继续部署以及Jenkins如何帮忙实现这一指标。

对于高级Java开发人员来说,这一点变得尤为重要,他们通常负责设置编码最佳实际,创立环境,构建脚本和准则。

我还建议您花工夫,从总体上理解DevOps以及Docker,Ansible,Kubernetes等工具以及Maven和Jenkins的更多信息。

如果您须要一些资源,那么在Udemy中应用Pipelines和Docker与Jenkins一起学习DevOps:CI / CD可能是最好的入门课程。您不仅会深刻理解CI和CD,而且还将深刻理解Maven和Jenkins。

我想特地举荐一门课程,特地是针对Docker和Kubernetes的是Stephen Grider的Docker和Kubernetes:残缺指南,您将在一门课程中学习这两个重要工具。

9.学习单元测试

如果有一个一般的事件将优良的Java开发人员与一般的Java开发人员辨别开,那么这肯定是他的单元测试技能。

一个优良且业余的Java开发人员简直总是为他的代码编写单元测试。

当初,测试曾经有了很长的路要走,Java开发人员能够应用多种工具进行单元测试,集成测试和自动化测试。

您能够破费大量工夫来磨难Java的测试技能,然而对于Java世界和单元测试的老手来说,JUnit是最好的入门库。最新版本的JUnit 5既弱小又灵便,每个Java开发人员都应该晓得这一点。

如果您还不理解它们,那么能够先学习诸如学习Java 8和Learning Spring Framework等更重要的内容,然而如果您擅长于这些,则能够抉择其余主题,例如单元测试,JVM外部和DevOps。

参考:《2020最新Java根底精讲视频教程和学习路线!》

链接:https://juejin.cn/post/692150...