【Java】十年老司机转开发语言,新小白从学习路线图开始

欢迎来到《小5讲堂》

大家好,我是全栈小5。

这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解,

特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。

温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

目录

前言

虽然学习的知识点很多,可选择的开发工具也很多,但是在实际开发或者团队里,最好能够选择同一款,保持开发一致。

学习路线图

知识点

目前网上有很多关于Java基础知识点的文章以及视频,针对不同经验的人,可以选择不同的学习方式。

对于老司机,基础知识点基本几天或者一个星期就基本了解,后端开发语言基本都是大同小异。

  • Java基础

    语法基础、面向对象、数据类型、泛型、注解、异常、反射(IOC)、SPI机制(解耦思想、动态接口实现、implements)

  • Java集合

    Collection、List、Set、Map、Queue、Deque、Stack

    ArrayList、LinkedList、HashSet、TreeSet、Vector、HashMap、TreeMap、LinkedHashMap

  • Java并发

    理论基础、线程基础(单线程、多线程)、JMM(内存模型、可见性,有序性,原子性)、锁、

  • Java流

    字节流、字符流、阻塞、非阻塞、同步、非同步

  • JVM调优

    JVM(Java Virtual Machine,虚拟机)、类加载机制、内存结构、GC垃圾回收、问题排查工具

  • 算法

    数据结构、算法思想、常见排序、大数据处理、加解密

开发工具

推荐使用IntelliJ IDEA,JetBrains 是一家专注于创建智能开发工具的前沿软件公司,包括:行业中领头的 Java IDE -- IntelliJ IDEA,以及 Kotlin 编程语言。

此款开发工具是收费的,但功能强大,开发C#多年,开发工具收费还是第一次听说,之前苹果开发开发者需要收费,只能说学习永不止步,否则就落后了。

  • 常见的 Java 开发工具:
    1.Eclipse
    Eclipse 是一款开源的集成开发环境(IDE),提供了丰富的功能和插件,支持 Java 开发以及其他多种编程语言。它有强大的代码编辑器、调试器、自动补全、构建工具等功能,广泛用于 Java 开发。

2.IntelliJ IDEA

IntelliJ IDEA 是一款功能强大的商业化 Java IDE,拥有智能代码编辑器、代码检查、重构工具、版本控制集成等特性。它的智能化编辑功能和强大的插件生态系统使得开发者能够更高效地编写代码。

3.DataGrip

DataGrip 是 JetBrains 公司开发的一款功能强大的数据库集成开发环境(IDE),它专注于提供数据库开发和管理工具。

4.NetBeans

NetBeans 是一个开源的综合性 IDE,支持多种编程语言,包括 Java。它提供了代码编辑器、调试器、图形界面设计工具等功能,适用于各种类型的 Java 开发。

5.Visual Studio Code

Visual Studio Code 是一款轻量级的跨平台文本编辑器,可以通过安装插件的方式支持 Java 开发。它具有强大的代码编辑功能、内置的调试器和丰富的扩展库,是许多开发者喜爱的选择之一。

6.Apache Maven

Apache Maven 是一个构建工具,用于管理和构建 Java 项目。它使用 XML 配置文件来定义项目的结构和依赖关系,并提供自动化构建、测试和部署功能。Maven 还具有强大的依赖管理和插件系统。

7.Gradle

Gradle 是另一个流行的构建工具,它支持多种编程语言,包括 Java。Gradle 使用 Groovy 或 Kotlin 作为配置文件语言,具有灵活的自动化构建功能,适用于小型和大型项目。

8.Git

Git 是一个分布式版本控制系统,被广泛用于管理和协同开发代码。在 Java 开发中,通过 Git 可以轻松进行代码版本控制、团队合作和代码分支管理。

接口测试工具

  • 推荐使用Insomnia
    1.Insomnia
    Insomnia是一款流行的跨平台的 API 测试工具。它提供了一个直观且功能强大的用户界面,使开发人员能够轻松地创建、调试和测试各种类型的 API

2.RestAssured

RestAssured 是一个流行的 Java 库,专门用于测试 RESTful 接口。它提供简洁的 API,可以方便地

发送 HTTP 请求、验证响应结果,并支持各种断言、身份验证和数据处理功能。

3.Apache HttpClient

Apache HttpClient 是 Apache 软件基金会提供的一个 HTTP 客户端库。它提供了丰富的功能和配置选项,可以用于发送 HTTP 请求并处理响应。虽然它并非专门为接口测试设计的,但在实际测试中仍然被广泛使用。

4.WireMock

WireMock 是一个用于模拟和测试 HTTP 接口的库。它可以创建一个模拟服务器,以模拟接口的预期行为,并返回自定义的响应。WireMock 可以用于对接口进行单元测试、集成测试和端到端测试。

5.Postman

Postman 是一种流行的 API 开发和测试工具。它提供了一个用户友好的界面,可以轻松地创建和发送 HTTP 请求,并可视化和验证响应结果。Postman 支持多种功能,如请求历史记录、环境变量、数据驱动测试等。

6.JUnit

JUnit 是 Java 领域最常用的单元测试框架之一。尽管它不是专门用于接口测试,但它可以用于编写接口测试的单元测试用例。JUnit 提供了一组注解和断言,可以方便地编写和运行测试,并生成测试报告。

每个工具都有其特定的用途和适用场景,选择合适的工具应根据具体项目的需求和测试目标来确定。

Java版本

Java 8 和 Java 11 是两个主要版本的 Java 发行版,它们带来了许多重要的变化和改进。

  • 两者之间的主要对比
    1.特性增加
  • Java 8 引入了许多重要的特性,包括 Lambda 表达式、函数式接口、Stream API、默认方法、新的日期和时间 API 等。这些特性对于编写更简洁、更灵活的代码非常有帮助。
  • Java 11 引入了一些新的特性,包括本地变量类型推断(var 关键字)、HTTP/2 客户端、响应式流编程(Reactive Streams)等。此外,还有一些性能和安全性方面的优化。

2.性能改进

  • Java 8 引入了一些性能优化,如开启了默认的 G1 垃圾收集器、Stream API 的并行处理等,提升了程序的执行效率。
  • Java 11 进一步优化了性能,包括对 G1 垃圾收集器的改进、对字符串连接操作的性能优化等。

3.安全性增强

  • Java 8 引入了一些新的安全性特性,如安全性增强的哈希算法、强随机数生成器、安全性增强的 RSA 实现等。
  • Java 11 在安全性方面也有一些改进,例如删除了一些弱密码算法、增加了一些安全性增强的算法实现等。

4.废弃与删除的 API

  • Java 8 废弃了一些不推荐使用的 API,如 Date 和 Calendar 类中的一些方法。
  • Java 11 进一步删除了一些过时的和不推荐的 API,如 Applet API、Java Web Start 等。

*5.其他改进:

  • Java 8 引入了一些语言和工具方面的改进,如重复注解、类型注解、Nashorn JavaScript 引擎等。
  • Java 11 引入了一些工具和库方面的改进,如 JEP 330 中的新的 Java Flight Recorder 事件流、JEP 331 中的新版 HTTP 客户端等。

Java 11 是一个长期支持(LTS)版本,而 Java 8 目前也在维护期限之内。因此,根据具体项目需求和兼容性要求,开发者可以选择使用 Java 8 或者 Java 11 进行开发。

数据库

数据库

mysql

  • Java 开发普遍使用 MySQL 数据库的原因有以下几点
    1.成熟和稳定
    MySQL 是一款成熟且广泛应用的开源数据库,具有长时间经受考验的稳定性和可靠性。它已经在各种规模和复杂度的项目中得到广泛应用,成为了 Java 开发的主要选择之一。

2.开源和免费

MySQL 是一款开源数据库,可以免费获取和使用。这使得小型项目或个人开发者可以方便地使用它,同时也减少了项目开发和维护成本。

3.良好的兼容性

MySQL 提供了与 Java 开发语言及其相关技术栈的良好兼容性。它支持 JDBC(Java 数据库连接)标准,可以与 Java 应用程序无缝集成。此外,像 Hibernate、Spring 等流行的 Java 框架也提供了对 MySQL 数据库的良好支持。

4.高性能和扩展性

MySQL 在性能和扩展性方面表现出色。它支持多线程处理、连接池技术和高效的查询处理,因此在处理大量数据和高并发请求时表现可靠和高效。

5.社区支持和生态系统

由于 MySQL 是一款开源数据库,拥有庞大和活跃的社区支持。社区提供了大量的文档、教程和问题解答,使开发者能够更好地学习和使用 MySQL 数据库。

设计工具

1.PowerDesigner

PowerDesigner 是一款流行的数据库建模和设计工具。它可以帮助用户可视化设计数据库架构,支持多种数据库管理系统,并提供代码生成、数据字典生成等功能。

2.ER/Studio

ER/Studio 是一个功能强大且综合的数据库设计和建模工具。它提供了直观的界面,支持多种数据库平台,并提供高级的设计和文档生成功能。

3.Navicat Data Modeler

Navicat Data Modeler 是一个直观易用的数据库设计工具,支持创建、编辑和维护数据库模型,并支持多种数据库平台。它还提供了数据字典生成、代码生成和同步等功能。

4.Vertabelo

Vertabelo 是一个基于云的数据库设计工具,它提供了可视化的数据库建模环境,支持多种关系数据库管理系统,并提供了代码生成和协作功能。

Redis GUI

常见的 Redis GUI 工具:
1.Redis Desktop Manager(RDM)

RDM 是一个跨平台的 Redis GUI 工具,适用于 Windows、Mac 和 Linux 系统。它提供了丰富的功能,包括键值对的浏览和编辑、命令行终端、性能监控以及导入/导出数据等。RDM 还支持集群管理,可以连接和管理多个 Redis 实例。

2.RedisInsight

RedisInsight 是 Redis Labs 公司提供的图形化界面工具,如上述提到的。它提供了全面的 Redis 数据库管理和监控功能,并适用于各种操作系统。

3.Medis

Medis 是一款 Mac 上的 Redis GUI 工具,专为开发人员设计。它提供了直观的界面和丰富的功能,包括键值对浏览、命令执行、Lua 脚本支持、导入/导出数据等。

4.Redis Commander

Redis Commander 是一个基于 Web 的 Redis GUI 工具,运行在浏览器中。它提供了一个简洁的界面,通过 Web 接口方便地对 Redis 进行操作和管理。
加粗样式
5.MyRedis

MyRedis 是一款 Windows 平台上的 Redis GUI 工具,它提供了键值对的 CRUD 操作、可视化的性能监控、命令行终端等功能。

Java框架

1.Spring框架

Spring是一个全面的应用程序开发框架,它提供了诸如依赖注入、面向切面编程、事务管理等功能,可以帮助简化开发过程并提高代码的可测试性。

2.Hibernate框架

Hibernate是一个ORM(Object-Relational Mapping)框架,它将Java对象映射到数据库表中,使开发者可以直接使用面向对象的方式进行数据库操作,简化了数据访问层的开发。

3.Spring Boot框架

Spring Boot是基于Spring框架的快速开发框架,它提供了自动配置和约定优于配置的方式,可以快速搭建独立的、可执行的应用程序。

4.Spring MVC框架

Spring MVC是基于Spring框架的Web应用程序开发框架,它提供了MVC(Model-View-Controller)的架构模式,帮助开发者组织和处理Web请求。

5.MyBatis框架

MyBatis是一个优秀的持久层框架,它可以将SQL语句与Java代码解耦,通过XML文件或注解配置进行数据库操作。

6.MyBatis

MyBatis 是另一个流行的Java ORM框架,它通过使用XML配置文件或注解来映射Java对象和数据库表,灵活性较高,支持自定义SQL查询。

7.Apache Struts框架

Struts是一个用于构建Java Web应用程序的MVC框架。它通过将请求、处理和视图分离,帮助开发者组织和管理Web应用程序。

温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

相关推荐
又蓝5 分钟前
使用 Python 操作 Excel 表格
开发语言·python·excel
小灰灰要减肥5 分钟前
装饰者模式
java
oneouto8 分钟前
selenium学习笔记(一)
笔记·学习·selenium
张铁铁是个小胖子17 分钟前
MyBatis学习
java·学习·mybatis
余~~1853816280018 分钟前
稳定的碰一碰发视频、碰一碰矩阵源码技术开发,支持OEM
开发语言·人工智能·python·音视频
我曾经是个程序员26 分钟前
鸿蒙学习记录之http网络请求
服务器·学习·http
m0_7482323936 分钟前
WebRTC学习二:WebRTC音视频数据采集
学习·音视频·webrtc
Am心若依旧4091 小时前
[c++11(二)]Lambda表达式和Function包装器及bind函数
开发语言·c++
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试
开发语言·青少年编程·单元测试·编程与数学·goweb
Yan.love1 小时前
开发场景中Java 集合的最佳选择
java·数据结构·链表