龙空技术网

2019年Java开发者的成长之路:路径图上有什么?

读芯术 162

前言:

眼前兄弟们对“java路径字符”大体比较注意,兄弟们都需要了解一些“java路径字符”的相关知识。那么小编在网摘上收集了一些对于“java路径字符””的相关文章,希望朋友们能喜欢,兄弟们一起来学习一下吧!

全文共3627字,预计学习时长7分钟

Java开发者需要学习哪些技术?哪些工具可以使你成为更好的开发者?哪些框架又是开发者必须掌握的?本文将为Java开发者绘出一条成长为专家的路径图,并回答一些亟待解决的问题。

Java开发者的必备技能

现在,让我们细看这份Java开发者成长路径,看看我们究竟要学习哪些工具(tools),框架(frameworks),库(libraries)和应用程序接口(APIs)。

1. 工具

工具章节主要分为两个部分。第一部分介绍集成开发环境(IDE),这是最基础的工具,你几乎可以用它做任何事,如编译(compile),运行(run),调试(debug),性能分析(profile),测试(test),比对文本(compare file),和编码(code),重构(refactoring)等。

第二部分介绍开发工具,你需要用它进行项目开发与设计,如Maven(一种项目对象模型)和Gradle(一种构建工具),这些都很好用。我之前有提过ANT(一种跨平台构建工具),但这是为旧程序设计的。如果要开发新程序,我更推荐Maven和Gradle。

2. Java开发工具包应用程序接口(JDK APIs)

JDK APIs对多数Java开发者都十分重要。这部分内容有点多,所以我将其分为Java集合框架,Java并发机制,Java IO和Java 8 APIs这几大核心来讲解。往下看。

2.1 Java集合框架

这是最为重要的Java应用程序接口之一,每个Java开发者都应学会。它定义了Java标准数据结构的执行方式,如链表(linked list),集合(set),栈(stack),队列(queue),哈希表(hash table),优先队列(priority queue)等。

开发者还至少需要了解一些最常用的数据结构,比如ArrayList,HashSet,LinkedHashSet,TreeSet等。不同数据结构属性各不相同,如ArrayList是可以增长的动态数组;HashMap是哈希表的标准数据结构,用于储存键值对;而HashSet则是只能储存不重复对象的集合数据结构。

2.2 Java并发机制

重要性仅次于集合的API是多线程技术(multithreading)和并发机制(concurrency)。一位称职的Java开发者必须熟练掌握Java并发机制。

你不仅需要深入理解线程(Thread),对象锁(Object locking)和同步器(synchronization)这类基本概念,还需要熟悉 死锁(deadlock),活锁(livelock),竞争条件(race conditions)等,并且知道如何操作。

同时,你需要了解一些进阶概念,如Java 5及之后的版本中加入的循环栅栏(Cyclicbarrier),多线程条件通行工具(CountDownLatch),相位器(Phaser),异步编程(completeable future)等同步装置(synchronizers),Feature(一种异步处理接口)以及如何在Java 中实现异步操作。

2.3 Java IO

采访了上百位Java开发者后,我们发现:跟集合或者多线程相比,他们普遍缺乏Java IO和NIO的知识。我理解大多数人会花更多时间在学习前两者上,但是IO和NIO也不能忽视。

当编写一个实践性的核心程序时,你会需要java.io包中的类(classes),如文件流(file),字符流(InputStream & OutputStream),字节流(Reader & Writer),这也是Java IO接口的核心。同样,如果要编写套接字应用,你也需要了解Java NIO接口中的字节缓冲区(ByteBuffer),文件通道(FileChannel),选择器(Selector)等重要的类。可惜现在并没有很多针对Java IO和NIO的公共学习资源,我找到一个不错的学习资源——The Complete Java Masterclass,从这里你能学习到这两种接口的一些重要概念。

2.4 Java 8 Features

接下来介绍的这个接口所有Java开发者都会用到——Java 8 features,这奠定了现今Java 编写和编程的方向。在2019年,想要成为一个Java开发者,必须了解Lambda表达式(Lambda expression),流接口(the Stream API),可选类(Optional classes)和新的时间日期接口(Date and Time API)的用法,不然开发Java程序会变的十分艰难。现在很多的库都不能支持Java 8以下的版本,也就是说最好现在就开始学习Java 8 features。Java 8已经发布5年了,你没什么理由不学习它。

3. 框架

Java最大的优点就是它的生态系统十分全面,也就是说它的框架和库几乎能支撑开发者来完成所有事。通常我会建议开发者在需要时再学习一个新的框架,但是还有一些框架和库是每一个开发者都必须知道的,像Spring,Spring Boots,Hibernate,Log4j和JUnit等。

3.1 Spring

如果你想成为一个经验丰富的Java开发者,我强烈建议你从学习Spring框架开始,因为这是最流行的Java框架之一,过去5年我在做Java开发时几乎都会用到这个框架。

Spring使开发者写出的代码整齐明了,并且依赖注入(Dependency Injection)和控制反转(Inversion of Control)使测试和维护更为简单。这个框架同时拥有一个大型API用于日复一日的工作,这也是开发者需要学习这一框架的一个理由。

3.2 Hibernate

我推荐学习的第二个框架是Hibernate,这是基于Java持久化API(Java Persistence API,JPA)的对象关系映射框架。确切说来,Hibernate诞生于JPA之前,但由于JPA是应用在Java持久化层面的标准API,所以对象关系映射框架也会用到它。

那为什么需要学习这一框架呢?这是因为绝大部分Java应用都会用到数据库,而如果不借助任何对象关系映射框架,只用Java数据库连接(JDBC)来处理数据库,是非常痛苦的。

而且现在对象关系映射框架还能提供一些重要功能,如高速缓冲储存(caching and transactions),这也就意味着开发者可以有更多的时间专注在应用程序的逻辑上,而不是缓冲上了。这确实显著改善了Java应用程序的表现,也是我使用Hibernate的最主要原因。

3.3 Spring Boots

我推荐学习的另一框架是Spring Boots,2019年以后Java开发者都应该学习这个框架。它借鉴了Spring的简化哲学,使和Spring的交互变得简单。就像Spring简化了开发Java程序,Spring Boots也简化了基于Spring的Java程序开发程序。

自动配置这类的features使配置Spring应用程序变得简单。同样地,POM(项目对象模型)启动器的features将常用的依赖(类之间的调用关系)分成简单可重复利用的不同组别。

4. 测试

每个Java开发者都必须会测试,尤其是单元测试,综合测试和自动化测试。因此每个Java开发者至少要熟悉JUnit和Mockito这两个最流行的单元测试和模块库。

如果你认识这两个库,也知道如何借助它们来有效实现单元测试,那么你将成为一个更好的Java开发者。还有很多进阶的库,像商业导向测试的Cucumber,综合测试的Robot Framework,但还是没有库可以替代JUnit,所以还是需要学习。

对于模块库来说,选择会更多一点,像PowerMock,Mockito,和EasyMock。我最推荐的是Mockito,因为这是一个很大的库,也有很多开发者和公司在使用,它也正在逐渐变成Java中建立模块的标准库。

如果你想学习JUnit和Mockito,可以参考我曾经分享的书籍和课程,你会学到更多。

5. 实用工具库

Java最强大的地方就在于它强大的开源库。库在Java中几乎可以应用到任何领域,从日志工具到机器学习,从发送HTTP请求到解析JSON等。除此之外,Java还拥有像Apache Commons 和Google Guava这样的实用工具库来补足JDK库。20个Java API和库的列表我已经分享给广大开发者了。建议大家可以先去浏览那份列表,你们已经抓住了一半的机会,就差潜心学习了。这些API和库非常实用,可以使开发者写出更好的程序及提高编码速度。

留言 点赞 关注

我们一起分享AI学习与发展的干货

如需转载,请后台留言,遵守转载规范

标签: #java路径字符