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

news2025/6/17 2:43:25

欢迎来到《小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.coloradmin.cn/o/1391671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV-Python(43):姿势估计

目标 学习了解calib3D 模块学习在图像中创建3D效果 calib3D模块 OpenCV-Python的calib3D模块是OpenCV库中的一个重要模块,用于摄像头标定和三维重建等计算机视觉任务。该模块提供了一些函数和类,用于摄像头标定、立体视觉和三维重建等方面的操作。 下…

利用Lambda表达式实现vector中pair/结构体的排序

众所周知&#xff0c;对于vector<pair<int, int> >若直接使用sort排序&#xff0c;会默认按照pair的第一个关键字从小到大进行排序&#xff1a; #include <bits/stdc.h>using namespace std;int main() {vector<pair<int, int> > p;p.push_back…

Asp .Net Core 系列:集成 Ocelot+Consul实现网关、服务注册、服务发现

什么是Ocelot? Ocelot是一个开源的ASP.NET Core微服务网关&#xff0c;它提供了API网关所需的所有功能&#xff0c;如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关&#xff0c;它可以与现有的服务集成&#xff0c;并帮助您保护、监控和扩展您的微…

编写RedisUtil来操作Redis

目录 ​编辑 Redis中文网 第一步&#xff1a;建springboot项目 第二步&#xff1a;导依赖 第三步&#xff1a;启动类 第四步&#xff1a;yml 第五步&#xff1a;Redis配置类 第六步&#xff1a;测试类 第七步&#xff1a;编写工具类 RedisUtil 第八步&#xff1a;编写…

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

基于python集成学习算法XGBoost农业数据可视化分析预测系统

文章目录 基于python集成学习算法XGBoost农业数据可视化分析预测系统一、项目简介二、开发环境三、项目技术四、功能结构五、功能实现模型构建封装类用于网格调参训练模型系统可视化数据请求接口模型评分 0.5*mse 六、系统实现七、总结 基于python集成学习算法XGBoost农业数据可…

国内小白最靠谱的充值chatgpt的方法是什么?

在AI越来越火得时代&#xff0c;大家都想尝试以下ChatGPT与ChatGPTPlus有什么不同&#xff0c;那么我们如何使用靠谱得方式来充值ChatGPT呢&#xff1f; 充值注意事项&#xff1a; 1、一个干净得环境 2、Fomepay得虚拟卡&#xff0c;5347/5561/都可以 3、登录ChatGPT 按图片…

LLM:Training Compute-Optimal Large Language Models

论文&#xff1a;https://arxiv.org/pdf/2203.15556.pdf 发表&#xff1a;2022 前文回顾&#xff1a; OpenAI在2020年提出《Scaling Laws for Neural Language Models》&#xff1a;Scaling Laws(缩放法则&#xff09;也一直影响了后续大模型的训练。其给出的结论是最佳计算效…

工具推荐 |Devv.ai — 最懂程序员的新一代 AI 搜索引擎

介绍 伴随 GPT 的出现&#xff0c;我们可以看到越来越多的 AI 产品&#xff0c;其中也不乏针对程序员做的代码生成工具。 今天介绍的这款产品是一款针对中文开发者的 AI 搜索引擎&#xff0c;Devv.ai 使用 Devv.ai 的使用非常简单&#xff0c;就是传统的搜索场景&#xff…

高级分布式系统-第10讲 分布式控制系统

高级分布式系统汇总&#xff1a;高级分布式系统目录汇总-CSDN博客 自动化是关于一切人造系统自动、智能、自主、高效和安全运行的科学与技术 计算机控制技术是实现自动化的主要方法和手段 分布式控制技术是伴随着机器大工业生产而诞生的特殊计算机控制技术 计算机控制系统 …

rust获取本地ip地址的方法

大家好&#xff0c;我是get_local_info作者带剑书生&#xff0c;这里用一篇文章讲解get_local_info的使用。 get_local_info是什么&#xff1f; get_local_info是一个获取linux系统信息的rust三方库&#xff0c;并提供一些常用功能&#xff0c;目前版本0.2.4。详细介绍地址&a…

MSSQL-识别扩展extended event(扩展事件)中的时间单位

经常使用sqlserver extended event(扩展事件)&#xff0c;但是总是忘记扩展事件使用的时间单位&#xff0c;不确定它们是 秒、毫秒、还是微秒&#xff1f; 以下下代码能够从 相关DMV中提取description字段内容来识别时间单位&#xff1a; SELECT [p].[name] [package_name],[o…

企业网站建站源码系统:Thinkphp5内核企业网站建站模板源码 带完整的安装代码包以及搭建教程

随着互联网的快速发展&#xff0c;企业对于网站的需求日益增强。为了满足这一市场需求&#xff0c;小编给大家分享一款基于Thinkphp5内核的企业网站建站源码系统。该系统旨在为企业提供一套功能强大、易于使用的网站建设解决方案&#xff0c;帮助企业快速搭建自己的官方网站&am…

探索数据的奥秘:一份深入浅出的数据分析入门指南

数据分析 书籍推荐 入门读物 深入浅出数据分析啤酒与尿布数据之美数学之美 数据分析 Scipy and NumpyPython for Data AnalysisBad Data Handbook集体智慧编程Machine Learning in Action机器学习实战Building Machine Learning Systems with Python数据挖掘导论Machine L…

LLM:Scaling Laws for Neural Language Models (上)

论文&#xff1a;https://arxiv.org/pdf/2001.08361.pdf 发表&#xff1a;2020 摘要1&#xff1a;损失与模型大小、数据集大小以及训练所用计算量成比例&#xff0c;其中一些趋势跨越了七个量级以上。 2&#xff1a;网络宽度或深度等其他架构细节在很大范围内影响较小。3&…

两道有挑战的问题(算法村第九关黄金挑战)

将有序数组转换为二叉搜索树 108. 将有序数组转换为二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个…

rust跟我学五:是否安装双系统

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么得到检测双系统的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Ru…

【JVM】常用命令

一、前言 Java虚拟机&#xff08;JVM&#xff09;是Java程序运行的基础设施&#xff0c;它负责将Java字节码转换为本地机器代码并执行。在开发过程中&#xff0c;我们经常需要使用一些命令来监控和管理JVM的性能和状态。本文将详细介绍6个常用的JVM命令&#xff1a;jps、jstat…

C语言——编译和链接

&#xff08;图片由AI生成&#xff09; 0.前言 C语言是最受欢迎的编程语言之一&#xff0c;以其接近硬件的能力和高效性而闻名。理解C语言的编译和链接过程对于深入了解其运行原理至关重要。本文将详细介绍C语言的翻译环境和运行环境&#xff0c;重点关注编译和链接的各个阶段…

含并行连结的网络(GoogLeNet)

目录 1.GoogLeNet 2.代码 1.GoogLeNet inception不改变高宽&#xff0c;只改变通道数。GoogLeNet也大量使用1*1卷积&#xff0c;把它当作全连接用。 V3耗内存比较多&#xff0c;计算比较慢&#xff0c;但是精度比较准确。 2.代码 import torch from torch import nn from t…