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

欢迎来到《小5讲堂》
大家好,我是全栈小5。
这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 前言
  • 学习路线图
    • 知识点
  • 开发工具
  • 接口测试工具
  • Java版本
  • 数据库
    • mysql
    • 设计工具
  • Redis GUI
  • 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应用程序。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/239990.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HTML5】 canvas 绘制图形

文章目录 一、基本用法二、用法详见2.0、方法属性2.1、绘制线条2.2、绘制矩形2.3、绘制圆形2.4、绘制文本2.5、填充图像 一、基本用法 canvas 标签:可用于在网页上绘制图形(使用 JavaScript 在网页上绘制图像)画布是一个矩形区域&#xff0c…

决战排序之巅(二)

决战排序之巅(二) 排序测试函数 void verify(int* arr, int n) 归并排序递归方案代码可行性测试 非递归方案代码可行性测试 特点分析 计数排序代码实现代码可行性测试 特点分析 归并排序 VS 计数排序(Release版本)说明1w rand( ) …

1 python计算机基础

计算机基础和环境搭建 1 计算机基础和环境搭建1.计算机基础1.1 基本概念1.2 编程语言1.3 编译器/解释器 2.学习编程的本质3.Python的介绍3.1 语言的分类3.2 Python3.3 Python的解释器种类(了解)3.4 CPython解释器的版本 4.环境搭建4.1 安装Python解释器4…

前端架构师需要具备哪些能力?

文章目录 公司一工作职责岗位要求 公司二岗位职责任职要求 公司三岗位职责任职要求 公司四工作职责任职要求 公司五职位职责任职要求 前端架构师需要具备的能力 我们先看看前端架构师的招聘要求。 公司一 工作职责 1、参与项目需求分析评审,负责核心功能详细设计…

计算机网络-VLAN间通信

之前复习了VLAN的概念以及几个接口类型。VLAN在二层可以实现广播域的划分,VLAN间可以实现二层通信,但是不能实现三层通信,需要借助其它方式。 一、概述 实际网络部署中一般会将不同IP地址段划分到不同的VLAN。同VLAN且同网段的PC之间可直接进…

1月17日代码随想录合并二叉树

617.合并二叉树 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两…

ElasticSearch概述+SpringBoot 集成ES

ES概述 开源的、高扩展的、分布式全文检索引擎【站内搜索】 解决问题 1.搜索词是一个整体时,不能拆分(mysql整体连续) 2.效率会低,不会用到索引(mysql索引失效) 解决方式 进行数据的存储(只存储…

支持华为GaussDB数据库的免费开源ERP:人力资源管理解决方案概述

开源智造所推出的Odoo SuperPeople数字化解决方案将HR和薪资数据与财务、项目规划、预算和采购流程连接起来,消除了多套系统给企业带来的信息孤岛问题。 ——复星集团 人力资源中心 高经理 一种更具吸引力、更有洞察力的人员管理方式 什么是开源智造Odoo的人力资源…

信驰达科技参与《汽车玻璃集成UWB数字钥匙发展研究白皮书》编制工作

为进一步探索汽车数字钥匙技术路线及开发思路,中国智能网联汽车产业创新联盟(CAICV)、福耀玻璃工业集团股份有限公司联合发起了《汽车玻璃集成UWB数字钥匙发展研究白皮书》研究工作。 2023年12月20日,由中国智能网联汽车产业创新…

Linux--部署 Tomcat 及其负载均衡

1.案例前置知识点 1)Tomcat简介 名称由来:Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书,并且将其封面设…

2024年第二届“华数杯”国际大学生数学建模竞赛 (A题 MCM)| 废水扩散分析 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看华数杯的A题! 完整内容可以在文章末…

OpenCV-Python(34):FAST算法

目标 理解 FAST 算法的基础使用OpenCV 中的FAST 算法相关函数进行角点检测 介绍 FAST算法(Features from Accelerated Segment Test)是一种用于在图像中快速检测角点的算法。它是一种基于像素的检测方法,具有高效、准确的特点,常…

基于信号完整性的PCB设计原则

最小化单根信号线质量的一些PCB设计建议 1. 使用受控阻抗线; 2. 理想情况下,所有信号都应该使用完整的电源或地平面作为其返回路径,关键信号则使用地平面作为返回路径; 3. 信号的返回参考面发生变化时,在尽可能接近…

压力测试+接口测试(工具jmeter)

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因 为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是…

几内亚ECTN是什么?怎么办理?建议收藏!

几内亚ECTN是什么?怎么办理?建议收藏! 一、去往几内亚的货物,从六月一日开始强制实施ECTN制度,取消原来并行的ENS制度。如若货物到港前没申请ECTN,几内亚海关将会强行扣货。 ECTN是英文:ELECTR…

Angular系列教程之自定义指令

文章目录 前言指令的基本概念在模板中使用指令总结 前言 在Angular中,指令是一种非常强大的工具,用于扩展HTML元素的功能和行为。它们允许我们创建可重用的组件,并在应用程序中的多个地方使用它们。本文将介绍Angular指令的基础知识&#xf…

散列函数,哈希表hash table

附上一句话:我知道大家可能曾经了解过这个散列表了,我发现,如果多看几个相关的视频,从不同的表述方式和不同的理解角度来理解这个问题,我会明白的更透彻,也有更多新的收获,尤其是对这个算法的应…

ElasticSearch降本增效常见的方法 | 京东云技术团队

Elasticsearch在db_ranking 的排名不断上升,其在存储领域已经蔚然成风且占有非常重要的地位。 随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法&#x…

Android 仿快手视频列表,RecyclerView与Banner联动效果

这是看到群里讨论过快手APP的一个观看他人视频列表的一个联动效果,但是并不是完全按照这个软件的效果来做的,只是参考,并不是完全仿照这个软件来做的,没时间去优化排版问题了,请见谅,如图: 实现…

ADA-YOLO:YOLOv8+注意力+Adaptive Head,mAP提升3%

生物医学图像分析中的目标检测和定位至关重要,尤其是在血液学领域,检测和识别血细胞对于诊断和治疗决策至关重要。虽然基于注意力的方法在各个领域中目标检测方面取得了显著的进展,但由于医学影像数据集的独特挑战,其在医学目标检…