JavaRush /Java 博客 /Random-ZH /爪哇。行动计划

爪哇。行动计划

已在 Random-ZH 群组中发布
爪哇。 行动计划 - 1

内容:

  1. 第 0 节 - Java 核心
  2. 工具
  3. JDK API
  4. Java 8 的新增功能
  5. SQL、数据库、JDBC
  6. 构架
  7. 用于测试的库和框架
  8. 服务库
  9. API客户端
  10. 设计模式
  11. 附加知识
潜在的 Java Junior 应该了解什么才能获得第一份工作或至少申请一家好公司的实习生职位?哪些工具可以帮助 Java 程序员达到新的水平?哪些技术需要研究,哪些技术可以留到以后再研究?这些问题没有标准答案,就像没有绝对适合所有人的单一行动计划一样。一些公司努力发展,不断引入新技术并测试新版本语言的功能,而另一些公司则顽固地坚持旧版本。还有“中间”选项,而且也许还有更多。不过,我们为有抱负的 Java 开发人员整理了一份路线图或路线图。为了使其尽可能简单,我们仅指出了绝大多数“javistes”所需的技术和主题。应该记住,并不是所有的事情都需要详细研究(上面的一些内容只能通过团队合作才能掌握),但对它们有一个大致的了解也无妨。

0.第零节-Java核心

我们在文章中插入了第 0 节,以防万一,一个刚打算学习 Java 却不知道从哪里开始的人进来了。Java Core 即使是初学者也应该非常了解。也就是说,了解基本知识,以语言提供的内容为指导来解决特定问题,并在简单的情况下能够应用这些知识。您可以在 JavaRush 上练习 Java Core,如果您还没有这样做,我们邀请您参加该课程!好吧,对于其他人,让我们提醒您 Java Core 的主要里程碑:
  • 基本 Java 结构、运算符和数据类型
  • OOP 及其在 Java 中的实现
  • 例外情况
  • Java集合
  • 泛型
  • 多线程

1. 工具

IDE或集成开发环境

现代开发人员的主要工具是 IDE。如今市场上有很多这样的名称,但在专业 Java 开发中通常只有两个名称。这是免费的Eclipse ,它基于插件构建,连续多年占据主导地位,而IntelliJ IDEA近年来一直在积极取代 Eclipse,尽管事实上需要订阅 Ultimate 版本专业人士是要花钱的。让我们提醒您,在 JavaRush 课程中我们使用 Community IntelliJ IDEA 的免费版本,与 Ultimate 相比,它有一定的功能限制。“我了解IDE”意味着你熟悉开发环境的基本功能,知道如何编译、运行、调试和测试文件,以及重构代码。掌握热键将对加快你的工作速度有很好的帮助。不要偷懒,花几个小时学习您不知道的 IDE 功能,并开始在实践中使用它们。并且不要忽视调试,这是一项非常有用的技能。所有这些操作将有助于显着提高您的工作速度和质量。

自动装配工具

如今,Java 项目最常使用 Maven 和 Gradle 等工具。没有必要彻底研究它们,但了解它们之间的差异、它们基于什么、任务是什么(在 Gradle 中)以及 Maven 中的目标阶段将很有用。了解这些系统并在其上部署几个小项目就足够了。这很简单,您会在实际工作条件中了解细节。

版本控制系统和在线托管服务

版本控制系统可以帮助程序员在一个团队中处理一个共同的项目,而不会“破坏”它,同步不同人编写的不同代码段,回滚不成功的更新并添加新的更新。最常见的是两个版本控制系统。其中一种是分布式的,称为 Git,第二种是集中式的,称为 SVN(又名 Subversion)。如今,Git 已成为事实上的标准。使用该系统更加方便和容易;所有 IDE(以及 SVN)都支持它。可以快速、轻松地尝试使用 Git;幸运的是,Internet 上有很多关于此主题的信息。例如,交互式教科书GitHowTo,有俄语版本(很快就能读完)。对于新手开发人员来说,掌握版本控制系统的在线托管服务非常重要。大多数情况下,它们基于 Git,并被称为 Git 平台(尽管其中一些可以与不同的版本控制系统配合使用)。其中最受欢迎的是 GitHub。BitBucket 和 GitLab 也很常见。这些系统可以帮助您存储和检索代码,并且还可以执行 Git 可以执行的操作,只是不是通过命令行,而是通过界面。GitHub 还允许您直接在网站上检查代码并提供问题的解决方案。在那里您还可以找到其他人的开源项目,并尝试提供自己的解决方案来改进它。本质上,GitHub 是一种面向开发者的社交网络。因此,如果您还没有这样做,请务必在 GitHub 上创建一个帐户并在那里托管您的项目。另请阅读有关 GitLab 和 BitBucket 的信息,如果您有时间,可以尝试它们,它们有免费版本。顺便说一句,所有这些平台都与现代 IDE 完全集成。 爪哇。 行动计划 - 2

2.JDK接口

本节重点介绍现代 Java 开发人员需要非常自信地了解的 JDK API。对于程序员来说,时不时地查看这些库的源代码、浏览它们并了解何时需要使用它们以及为什么使用它们并没有什么坏处。副作用:如果您精通这些 API,您可能会更轻松地在面试中取得好成绩。

Java集合框架

Java Collection Framework 是 Java 语言最重要的 API 之一,每个开发人员都应该了解它。它表示 Java 中标准数据结构(例如列表、链表、集合、堆栈、队列、哈希表等)的接口和实现的层次结构。开发人员必须充分了解 ArrayList、HashMap、HashSet、LinkedHashSet、TreeSet 等类,并了解它们的属性。特别是,您需要了解特定集合的标准操作(索引、搜索、插入、删除)的时间和内存成本,并在此基础上正确地将它们应用到您的项目中。Java中的集合实现得很好,但是如果有需要,开发人员可以提供自己的实现。精通集合的程序员可以扩展或重新定义已编写的类中的逻辑,或者从头开始实现所有内容。

Java并发API

Java 最初设计用于支持并行编程,从 5.0 版本开始,该语言包含用于并行线程的高级 API。因此,一个称职的 Java 开发人员必须对多线程有很好的了解,并了解java.util.concurrent.*包中的主要 API 。至少,你需要知道并清楚地理解什么是Thread、Runnable、对象锁定和同步。请务必了解死锁、活锁、竞争条件的概念以及如何处理它们。要充满信心,请学习 java.util.concurrent.* 中的同步器,例如 Semaphore、CyclicBarrier、CountDownLatch、Phaser、Exchanger<V>、CompleteableFuture 等。还有 Callable 和 Future 接口。

Java I/O API

新手开发者往往会忽略对Java I/OJava Non-blocking I/O的深入学习。但这是徒劳的:这些 Java API 使线程处理变得更加容易,并且经常在实际应用程序中使用。特别是 java.io 包中的 File、InputStream、OutputStream、Reader 和 Writer 等类,它们是 Java IO API 的核心。Java 非阻塞 I/O (java.nio) 是旨在实现高性能 I/O 操作的应用程序编程接口的集合。其中特别包括 ByteBuffer、FileChannel 和 Selector 等。花点时间去了解这些 API,你不会后悔的。

设备类对象

一旦理解了 Object 超类,从某种意义上说,您就成为了“Java 母语人士”,可以更好地了解 OOP 结构和许多流程。java.lang.Object 类位于类层次结构的最顶层。除了更好地理解正在发生的事情之外,了解类的方法将使面试变得更加容易——面试官只是喜欢使用 Object 类及其对象来测试候选人。

3.Java 8的新特性

尽管 Java 8 发布已经过去了很多年,而且其他编号的更新也已经出现,但第八个版本才成为标志性的。它引入了重要的创新,这些创新简化并在某种意义上改变了 Java 编程方法。您必须了解如何使用 lambda 表达式,以及 Java 8 中的 Stream API 以及新的日期和时间 API。

4. SQL、数据库、JDBC

很少有 Java 开发人员在工作中不会遇到 SQL 查询和数据库。因此,了解什么是 SQL 和关系数据库、它们如何工作以及能够编写简单的查询来连接两个表非常重要。对于训练,您可以尝试使用其中一种 DBMS,例如PostgreSQLMySQL。获得非关系数据库、noSQL 方法的基本知识以及对面向文档的 DBMS MongoDB的肤浅熟悉也将是一件好事。要使用纯 Java 操作数据库,您可以使用JDBC标准以及同名的 API。它作为 java.sql 包实现,包含在 JDK 中。如今,它很少以其纯粹的形式使用,但通常可以在较旧的支持应用程序中找到它,而更现代和普遍接受的工具通常基于此标准。

5. 框架

如今,在对初级 Java 开发人员的要求中,您可以越来越多地找到“Spring、Hibernate、Spring Boot 的知识”。自己学习这些技术是一项非常困难的任务,但尽管如此,这是可能的,尤其是在表面水平上。当你工作时,会有更深刻的理解。所以。

Spring框架

如今,几乎所有用 Java 构建的应用程序都使用 Spring 框架。这个强大的框架提供了一个特定的坐标系,这是构建应用程序的支柱。Spring 应用程序更容易测试和维护。这一切都归功于依赖注入。

休眠

对于 Java 开发人员来说另一个最重要的框架是 Hibernate。它实现了 JPA(Java Persistence API)规范,解决了对象关系映射(ORM)问题。大多数 Java 应用程序都与数据库交互,如果我们谈论的是关系数据库,那么在没有 Hibernate 的情况下使用它们会很不方便。该框架为开发人员提供了许多重要的功能,特别是开箱即用的缓存和事务,这反过来又使他们能够将精力集中在开发应用程序逻辑上,并将程序员在使用关系数据库时从许多低级任务中解放出来。 。这显着提高了开发人员的工作效率。

春季MVC

该框架使用松散耦合的现成组件,确保根据模型 - 视图 - 控制器模式进行应用程序开发。研究这个模式(设计模式将在下面讨论)和Spring MVC的逻辑。在实践中它被经常使用。

春季启动

凭借正确的技能,Spring 可以轻松创建 Java 应用程序。反过来,Spring Boot 可以轻松创建基于 Spring 的 Java 应用程序。Spring Boot 允许您轻松创建成熟的企业 Spring 应用程序,并且可以轻松启动:自动配置消除了与配置 Spring 应用程序相关的大部分麻烦。

6. 用于测试的库和框架

一些未来的开发人员确信测试代码根本不是他们关心的,而是被称为测试人员的特殊人员关心的。实际上,情况并非如此。测试,尤其是单元测试(最常称为单元测试),对于每个程序员来说都是一项非常重要的技能。此外,刚刚开始工作的新人的任务通常是用单元测试覆盖某人的代码。因此,我们强烈建议您学习 JUnit 库并养成为代码编写单元测试的习惯。另请查看 Mockito 框架,它可以与 JUnit 一起使用来创建模拟依赖项类。

7. 服务库

Java 拥有大量的服务库,可以帮助解决开发人员面临的几乎所有问题。不可能全部研究它们,而且这样做也没有什么特别的意义。但浏览它们是个好主意。在这里,我们将重点介绍一些在实践中经常使用的方法。

用于日志记录的库

首先,我们可以提到log4jSlf4j。这些库旨在隐藏 Java 应用程序运行时发生的例行日志记录操作的实现。

JSON 库

JSON 是一种从客户端向服务器传输信息的格式,是当今最常用的格式。有几个可以使用 JSON 的优秀库,最流行的是Jacksongoogle-gson

谷歌番石榴

Guava是由 Google 开发的一个包含核心 Java 库的项目。在这里,您可以找到新类型的集合(多重映射、多重集等)、不可变集合、图形、函数式集合、并行实用程序、I/O、哈希、字符串处理等等。

阿帕奇共享区

Commons是一个巨大的项目,包含许多用于各种目的的有用的 Java 实用程序。因此,Apache Commons 库是 Tomcat、Hibernate 和许多其他大型项目的基础。Apache Commons 中有很多库。让我们提一下Commons IO,它简化了I/O操作,Commons CSV用于处理csv文件,Commons Math用于处理复杂的数学和统计操作和计算,Commons CLI用于分析命令行参数。

8.API客户端

REST 是端点的命名样式,用于以人类可读的格式通过网络访问资源。对于现代 Java 开发人员来说,最好了解 REST 思想并了解Spring RestTemplate,这是一个用于创建 REST 客户端的非常有用的库。

9. 设计模式

如果一个新手开发者熟悉了设计模式,即Java编程中的良好礼仪规则,甚至知道如何在实践中应用它们,那么他在劳动力市场上的价值就会立即增加。初学者常常低估模式,因为他们在学习时很少创建复杂的应用程序。然而,如果模式不应用于严肃的项目,维护和调整代码将成为一项极其困难的任务。因此,不要偷懒,研究这些模式并将其应用到您的个人项目中。您未来的雇主将对此非常感激。

10. 附加知识

算法和数据结构

“算法和数据结构”是技术大学教授的整个课程的名称。它揭示了构造各种数据结构的理论基础。在实践课程中,他们学习如何使用它们——放置和检索数据、搜索和排序。其实,这句话中的“算法”就是排序和搜索的意思。多年来,计算机科学家开发了许多算法。其中一些本质上是教育性的,因为尽管实施起来相对容易,但操作起来并不是很有效。例如,它们运行缓慢,这在大型数据池上会很明显。或者它们消耗大量内存。其他算法已被证明非常有效。以至于它们已被包含在大多数编程语言的官方库中。因此,今天没有必要独立开发此类算法。知道他们在哪里就足够了。 然而,大多数经验丰富的开发人员建议初学者去“算法学校”——在学习的同时自己实现它们。这培养了程序员的思维。这也有助于面试;他们真的很喜欢问排序和搜索问题。

小服务程序

servlet 是一种处理用户请求的方法。如今,它们并没有到处使用,也并非总是使用,但了解它们将会很有用。

HTML 和 CSS

每个人都应该了解布局的基础知识。这些知识很容易获得,如果您还没有这样做,请花几天时间学习本课程。同时,您将从更复杂的主题中休息一下。

XML

可扩展标记语言曾经在 Java 开发中无处不在。它逐渐被 JSON 取代,但 XML 至今仍在使用。学习起来并不难,所以你可以稍微关注一下这门语言。

JavaScript

对开发人员的调查显示,即使是那些与前端开发完全无关的人也会时不时地用 JavaScript 编写脚本。了解这种语言的基础知识可以被认为是一种良好的礼仪规则,所以不要偷懒,阅读它并创建一两个脚本。不会是多余的。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION