【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应用程序。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LINUX命令:tr cut sort uniq

目录 一.tr 1.替换 2.删除tr -d 3.压缩tr -t 二.cut 1.提取所需要的列 2.延伸——磁盘剩余空间不足发起警告 三.sort -t 指定分隔符 -k 指定列排序 四.uniq uniq压缩连续的字符 uniq -c 压缩并统计连续的字符数据信息 一.tr 1.替换 2.删除tr -d 3.压缩tr -t 二.c…

Miracast手机高清投屏到电视(免费)

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Miracast概述 Miracast是一种无线显示标准,它允许支持Miracast的设备之间通过Wi-Fi直接共享音频和视频内容,实现屏幕镜像或扩展显示。这意味着你可以…

vscode无法自动补全

前提:安装c/c插件 c/c插件功能非常强大,几乎能满足日常编码过程中常用的功能;因此也包含自动补全的功能,开启方法如下: 文件->首选项->设置: 扩展->c/c->Intellisense,找到Intell…

工业企业能源管理平台,可以帮助企业解决哪些方面的能源问题?

随着全球工业化进程的加快,工业企业在生产经营过程中消耗的能源也越来越庞大。能源成本的上升和环境保护的压力使得工业企业对能源管理的重要性有了深刻的认识。为了提高能源利用效率、降低能源消耗、减少环境污染,工业企业在能源管理方面迫切需要一套规…

JS逆向实战案例2——某房地产token RSA加密

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、 反爬分析 url1:aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94a2I/c1Byb2plY3RJZD05MzBlMDQ0MmJjNjA0MTBkYTgzNzQ0MmQ…

将PDF转换为二维码,实现手机端无缝分享的新体验

在移动互联网时代,手机已经成为我们日常生活和工作中不可或缺的工具。然而,直接在手机上分享PDF文件可能会面临格式兼容性、文件大小限制以及传输速度慢等问题。为此,Maifile.cn提供了一种创新的解决方案——将PDF转换为二维码,让…

P9842 [ICPC2021 Nanjing R] Klee in Solitary Confinement 题解(SPJ!!!)

[ICPC2021 Nanjing R] Klee in Solitary Confinement 题面翻译 给定 n , k n,k n,k 和一个长为 n n n 的序列,你可以选择对区间 [ l , r ] [l, r] [l,r] 的数整体加上 k k k,也可以不加。最大化众数出现次数并输出。 题目描述 Since the travele…

Python密码本连接wifi

有时候我们会忘记自己的Wi-Fi密码,或者需要连接某个Wi-Fi网络以满足合法需求。本文将介绍如何使用Python编程语言编写一个简单的连接Wi-Fi的程序。 一、密码本准备 在进行wifi猜测时,其实就是列出各种可能的密码,用来尝试去访问目标wifi&…

学习k8s的应用(三)

一、k8s部署ngnix 1、一些查看命令 1-1、所有命令空间 kubectl get pod --all-namespaces kubectl get svc --all-namespaces1-2、指定命令空间 kubectl get pod -n yabin kubectl get svc -n yabin2、单节点集群兼容 # 因为目前只有一个master节点,默认安装后…

Mac python爬虫学习

首先推荐几个 必须要掌握的类库 Requests: HTTP for Humans 它是以这么一句话介绍自己的,为人类使用的HTTP库 http://docs.python-requests.org/zh_CN/latest/user/quickstart.html 中文文档 Beautifulsoup 用Beautiful Soup解析网站源代码 代替正则 https://…

【计算机网络】第七,八,九章摘要重点

第七章网络管理 1.计算机网络面临的两大威胁? 恶意程序有:计算机病毒,计算机蠕虫,特洛伊木马,逻辑炸弹,后门入侵和流氓软件。 2.安全的计算机网络四个目标: 机密性,端点鉴别&…

File.mkdir与File.mkdirs区别String.replace方法返回值

1、File.mkdir与File.mkdirs区别 File fnew File("C:\\a\\b"); mkdir 只创建最后一级目录 f.mkdir();只会创建b 若没有a 创建失败 mkdirs如上所述 创建a,b 当不确定目录是否存在时,最好用mkdirs 判断文件是否存在 文件夹是否存在 2、String.replace…

保送阿里云的云原生学习路线

近期好多人都有咨询学习云原生有什么资料。与其说提供资料不如先说一说应该如何学习云原生。 Linux基础知识:云原生技术通常在Linux环境中运行,因此建议首先掌握Linux的基础知识,包括命令行操作、文件系统、权限管理等。 容器化技术&#x…

Vue-24、Vue过滤器

1、效果 2、过滤器实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>过滤器</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.…

二叉树的遍历 Java

二叉树的遍历 递归法前序遍历中序遍历后序遍历改进 迭代法前序、后序遍历中序遍历 二叉树的统一迭代法(未完成)Java 中 null、NULL、nullptr 区别 public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode(in…

大数据技术原理与应用期末复习(林子雨)

大数据技术原理与应用期末复习&#xff08;林子雨&#xff09; Hadoop的特性HBase编程实践NoSQL的四大类型键值数据库优点&#xff1a;缺点&#xff1a; 列族数据库优点&#xff1a;缺点&#xff1a; 文档数据库优点&#xff1a;缺点&#xff1a; 图数据库优点&#xff1a;缺点…

模拟瑞幸小程序购物车

是根据渡一袁老师的大师课写的&#xff0c;如有什么地方存在问题&#xff0c;还请大家指出来哟ど⁰̷̴͈꒨⁰̷̴͈う♡&#xff5e; index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-e…

新增PostgreSQL数据库管理功能,1Panel开源面板v1.9.3发布

2024年1月15日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.9.3版本。 在这一版本中&#xff0c;1Panel新增了PostgreSQL数据库管理功能&#xff0c;并且支持设置PHP运行环境扩展模版。此外&#xff0c;我们进行了30多项功能更新和问题修复。1Panel应用…

如何应对Android面试官->RecyclerView回收复用LayoutManager,实战探探划一下

前言 上章我们讲了右半部分&#xff0c;本章我们讲解左半部分&#xff1b; 如何复用原理 我们在滑动的时候&#xff0c;才会触发 RecyclerView 的回收复用&#xff0c;所以我们从 RecyclerView 的 onTouchEvent 方法入手&#xff1b;我们来看下滑动的时候&#xff0c;是怎么…

SQL实践:利用tag检索文件的多种情况讨论(二)

在上一篇文章SQL实践&#xff1a;利用tag检索文件的多种情况讨论中&#xff0c;我们介绍了在使用外键的方式为数据关联tag后&#xff0c;如何筛选&#xff1a; 如何筛选包含某一个tag的数据如何筛选包含且只包含某一个tag的数据如何筛选包含多个指定tag的数据 这篇文章主要是…