总听到一些人在说自学Java有多难多难,确实,Java不是那么容易能够掌握的语言,可自己都没有尝试学过,就只听别人的一面之词,岂不是要错过这门前途似锦的开发语言了。
自学难,其实跟你的学习能力,和学习计划有关的。关于学习能力,只能从自身上着原因了,如果你足够努力,都可以攻破重重知识点的。关于学习计划,如果你还没有,可以参考小编的这一套开始学,保你从入门到精通。
1.工具
工具部分分为不同的部分。首先,您的IDE,它是您的主要工具,几乎可以完成您要求的所有操作,例如编译、运行、调试、分析、测试、比较文件和代码、重构等等。
第二部分是构建工具,您需要使用它来构建和部署Maven和Gradle等项目。这些中的任何一个就足够了。我刚刚列出了ANT,但那是针对遗留项目的。对于所有新的Java项目,首选Maven或Gradle。
而且,第三个也是最关键的部分包括像Docker和Kubernetes这样的容器,像Jenkins和TeamCity这样的CI/CD工具,以及像Ansible这样的基础设施自动化工具。
2.JDK API
下一个要学习的重要事情是JDK API,这对任何Java开发人员来说都非常非常重要。这是一个相当大的部分,这就是为什么它被划分为Java集合框架、Java并发、Java IO和Java 8 API等核心领域,让我们逐一探讨
1)Java集合框架
这是每个Java开发人员都应该学习的最重要的Java API之一。该API提供类Java链表、集合、堆栈、队列、哈希表、优先级队列等标准数据结构的实现。
至少你应该了解所有日常对象,如ArrayList、HashMap、HashSet、LinkedHashSet、TreeSet等。它们每个都有其不同的属性,如ArrayList是一个可以增长的动态数组,HashMap是哈希表的标准实现并且可以用于存储键值对。
2)Java并发
在Java Collections之后,接下来,Java中最关键的API就是多线程和并发,我坚信,如果你想成为一名称职的Java开发人员,你必须对Java Concurrency API有扎实的理解和掌握。
您不仅应该深入了解线程、可运行、对象锁定和同步等基本概念,还应该熟悉死锁、活锁、竞争条件等概念以及如何处理它们。
3)Java IO
与Java Collections和Java Multithreading API相比,他们都对Java IO和NIO API知之甚少。我可以理解很多人花费大量时间学习这两个API,但您不能将这些关键API抛在后面。
如果您必须编写真实世界的核心Java应用程序,则需要使用http://java.io包中的File、InputStream、OutputStream、Reader、Writer等类,这些类是Java IO API的核心。同样,你还需要从java.nio了解ByteBuffer、FileChannel、Selector等关键类API。
3.框架
Java最好的一点是它有一个充满活力的生态系统,这意味着几乎所有东西都有很多框架和库。通常,我不建议Java开发人员学习框架,直到他需要在他的项目中使用它。尽管如此,还是有一些框架和库,我相信每个Java开发人员都应该知道,例如Spring、Spring Boot、Hibernate、Log4j、JUnit等。
1)Spring框架
如果你想在2021年成为Java开发者,我强烈建议你先学习Spring Framework。这是最流行的Java框架之一。
Spring Framework可以编写干净的代码,通过提供依赖注入和控制反转等功能,它更易于测试和维护。它还为大多数日常任务提供了丰富的API,这就是为什么每个Java开发人员都应该学习Spring框架的原因。
2)Hibernate框架
它基于JPA(Java Persistence API)。准确地说,Hibernate在JPA之前出现,但是因为JPA是Java中实现持久层的标准API,所以Hibernate实现了它。
现在,为什么要学习Hibernate?嗯,因为您将使用的大多数Java应用程序将与数据库交互,并且使用JDBC在Java中处理数据库并且没有像Hibernate这样的适当框架是非常痛苦的。
它提供了一些基本功能,例如开箱即用的缓存和事务,这意味着您有更多时间专注于应用程序逻辑,然后在应用程序中实现缓存。这极大地提高了Java应用程序的性能,也是迄今为止我使用Hibernate的最重要原因。
3)Spring Boot
采用了Spring的简化哲学,并使其易于使用Spring本身。就像Spring使创建Java应用程序变得更容易一样,Spring Boot使创建基于Spring的Java应用程序变得更容易。
自动配置等功能消除了与配置Spring应用程序相关的大部分痛苦。类似地,入门POM功能将常用的依赖项分组为简单的可重用POM。
推荐学习课程:
java基础: Java300集课程-Java必备优质教程_手把手图解学习Java,让学习成为一种享受_
java游戏项目: