Java学习路线图(如何快速学Java)

2023-05-16

不知不觉从初学Java到现在已经8年了,今天在这里给刚入门和入门不久的小伙伴们一些建议。可能总结的不是很详细,但给出了一个大概的学习路线。希望对大家有帮助哈~

如何快速学Java

这里我以Java EE(Jakarta EE)/Java Web的经验来说哦。(都把你们看做是零基础入门的了)

学习Java EE(Jakarta EE)总体来说会有以下三大模块:

  • Java
  • 数据库
  • Web前端

在我看来,无论学习什么技术都好,在学习该项技术的细节之前都得知道:这项技术是什么,为什么我要学习这项技术,学习了这项技术有什么好处

  • 看似好像我在说多余的话,但如果你在学习某项技术的时候无法回答上面的三个问题。再过几天,你很大程度上会忘记这项你所“学过”的技术。
  • 比如说,如何你连“为什么要用多线程”你都无法用通俗的话来解释清楚。即便你当时学习的时候知道多线程可以用xxx方式来创建,多线程的xxx的api。那再过两个月,人家问你”Java多线程有什么用啊?”。你想想你还能答什么,我认为你是记不住“多线程可以用xxx方式来创建、多线程的xxx的api”这些知识点了。
  • 再比如说,如果学习Spring时不知道IOC和new对象有什么区别,那我为啥不直接new对象而要那么麻烦去学Spring呢?

简单来说:如果你不知道学习某项技术是干嘛用的,那先不要学


如果你是零基础学习Java并理解力不是爆棚的话,我建议以视频学习为主。

可能你会看到这样类似的言论:

  • “看视频学习太慢了”
  • “直接看源码啊,源码就是最好的解释”
  • “有问题直接Google啊,用什么百度”
  • “最好的资料是官网文档”
  • .....

但是,那都是对有经验的人或者高智商的人群来讲的。

如果是零基础普通人,看视频学习/看不懂源码/用百度/看中文博客来学习不丢人

ps:如果看的视频讲师的语速不是特别快,建议以1.5或者1.75倍速观看。

1.1 关于视频资源

我在学习Java的时候也收集了很多的视频资源,并不是每个都有看过。只是在混群的时候发现有人发了,就复制下来整理一下罢了。

 

注:如需完整的视频下载点击此处链接☛☛☛【完整视频下载】

其他的视频资源:

  • B站:(bilibili.com)一个神奇的网站。如果你想看哪个视频,可以先搜一下B站有没有。
  • 公众号/混qq群/微信群:不少人手里都有几t的资源,如果跟群友的关系不错,一般都会免费给你发的
  • ......

1.2 学习Java基础

零基础学习Java的路线我简单总结为以下:

  • 首先去官网下个JDK,按现在常用的版本JDK1.8就够学习了
    • 下载地址:JDK1.8下载:www.oracle.com/technetwork…
  • 随后去下载现在Java常用的编辑器IDEA(也可以用eclipse,但现在IDEA的确是好用)..
    • 下载地址:IDEA下载:www.jetbrains.com/idea/
  • 1.5/1.75倍速观看Java基础视频(以刘意为例)

刘意视频

在学习Java基础时,我简单来说一下什么东西可以不碰

  • &^|位运算符,++ii++类似这种绕死人的语法
  • 内部类
  • AWT,SWING编程
  • 注解

需要深入理解的知识点:

  • 流程控制
  • 面向对象的概念
  • Java语法
    • this指针、重写和重载、final、static等等这些基础的东西
  • 集合(包括泛型)
    • 常用的集合类
  • IO流
    • IO流代码的编写
  • (理解这些知识点,能够在有提示的情况下码出代码,但不要为了一些细节钻牛角尖)

简单过一遍的知识:

  • 异常
  • 多线程
  • 网络编程
  • 反射机制
  • (你得知道这个知识点是干嘛用的,为什么要学这个知识点,能看懂具体的代码!)

对于上面所说深入理解的知识点,我个人是非常建议在学习期间写笔记(博客)的。如果你想写笔记的话,最好直接就用markdown语法来编写,而不是用word/简单的记事本。

markdown语法非常好学,几分钟跟着就可以学习了,几乎所有的it博客网站都支持markdown

  • markdown学习:www.jianshu.com/p/q81RER

如果喜欢画思维导图的,我这里推荐processOn就可以了。无需下载Xmind这么麻烦了:

  • ProcessOn来画思维导图:www.processon.com/i/5815483ce…

有的时候并不需要使用IDEA打开一个.java或者.xml这样的文件,可以使用notepad++记事本:

  • NotePad++记事本:notepad-plus-plus.org/

学会科学上网和使用Chrome浏览器,比如说下载拦截广告插件,英语翻译插件

  • Chrome浏览器:www.google.com/chrome/
  • 拦截广告插件:chrome.google.com/webstore/se…
  • 英语翻译插件:chrome.google.com/webstore/se…

虽然是快速学习Java,但学完上面的估计得一个月了(:..

一个月发现都是面向控制台编程(console),输入输出一些数据来玩。

控制台

期间可能就学习IO的时候可以复制文件,修改文件名有点意思。但好日子就要来临了

1.3 学习Java Web基础

首先我们可以学习一下Web前端的知识(此部分都简单过一下就好了)

  • HTML/CSS/JavaScript/jQuery
  • CSS框架(都有中文手册,很快就上手了,选一个自己喜欢的就好了):
    • BootStrap:www.bootcss.com/
    • Materialize:www.materializecss.cn/

到目前为止,学完上面这些可以搭建“能看”的静态网页了。曾经看过一段话来总结上面的技术:

  • HTML是名词,CSS是形容词,JavaScript是动词

随后学习JavaWeb的路线如下:

  • Tomcat(简单过一下)
  • XML/注解(简单过一下)
  • Servlet(重点理解)
  • HTTP协议(重点理解)
  • Filter过滤器(重点理解)
  • Listener监听器(简单过一下)
  • JSP(简单过一下)
  • AJAX、JSON(简单过一下)

注:如需完整的PDF下载点击此处链接☛☛☛【原件PDF下载】

基于上面的学习,起码已经可以使用request对象来接收前端发送过来的数据,使用response对象将Java后端的数据返回给前端,使用Filter拦截器来处理中文乱码问题(Tomcat默认的编码是ISO-88591)。总的来说已经可以实现前后端交互了

1.4 学习数据库

数据库这里指的是关系型数据库,一般我们以MySQL来入门就足够了。

在学习期间,其实很多时间都耗费在配置环境上面,比如我之前安装JDK,安装MySQL,安装Oracle就耗费了不少时间。后来我也将其写成博客,需要重新安装的时候翻一下博客就好了。

  • 比如MySQL安装教程:segmentfault.com/a/119000001…

主要学习SQL的基本使用吧:

  • 创建表(create table)
  • 增删改查(insert,delete,update,select)
  • 对于存储过程、触发器这些了解一下即可
  • 对于索引、锁后面再学(此部分很重要,但以快速入门来说,可以先不看)

注:如需完整的PDF下载点击此处链接☛☛☛【原件PDF下载】

1.5 学习Java连接数据库(JDBC)

到这里,我们Java Web、数据库、Web前端的基础都已经基本学完了,但此时Java和数据库是相互独立的。我们想要以程序的方式来对数据库的数据进行操作,那就要学习一下Java连接数据库(JDBC)。

JDBC这项技术并不难呀,就是模板代码,来来去去就几个步骤:

  • 导入MySQL或者Oracle驱动包
  • 装载数据库驱动程序
  • 获取到与数据库连接
  • 获取可以执行SQL语句的对象
  • 执行SQL语句
  • 关闭连接

由于这些代码可能会重复出现,那我们可以学习一下DbUtils这个组件:可以帮我们减少编写JDBC的模板代码。

1.6项目管理和框架的学习

经过上面的学习,已经是可以在本地写一个Web项目了。

  • 页面框架使用BootStrap/Materialize框架来搭好
  • 请求处理交由Servlet,返回的数据可以通过AJAX或者使用JSP,DAO层可以使用DbUtils。
  • 数据保存在MySQL中

为了让写代码变得更爽,我建议用半天学一下Maven(项目管理工具),用几天学一下SpringBoot

  • 从Servlet直接跳到SpringBoot可能有点难理解,但多搞几天我相信还是可以的..

1.7Linux学习

最后,我们在本地上写完的项目想要让其他人都看得见,一般都会部署在Linux环境下的。(此部分的学习可以等到将项目写完,想要部署项目才学习)

我是不推荐使用虚拟机再搞Linux的,直接买一台方便很多

  • 如果是学生的话,一个月的学生版也就10块一个月。
  • 如果是转行的大哥话,现在阿里云双十一有优惠,买起来就很便宜了。

优惠链接:m.aliyun.com/act/team111…

总结

总结一下我认为学习Java的路线:

  • Java基础-->流程控制-->面向对象(包括Java语法)-->Java集合-->Java IO流-->异常-->多线程-->网络编程-->反射
  • JavaWeb基础-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/注解->Servlet-->HTTP-->Filter过滤器和监听器-->JSP-->AJAX/JSON-->数据库(MySQL)-->JDBC和DbUtils
  • 项目管理和框架-->Maven-->SpringBoot
  • Linux基本命令

最后我们的项目是这样的:

  • 以Maven来管理我们的项目
  • 前端通过BootStrap来搭建页面框架
  • SpringBoot来搭建Java后端环境,SpringMVC处理前端请求(SpringBoot整合了)
  • DAO层使用DbUtils组件来完成,MySQL作为数据库

当然了,我的Java路线不一定就是对的,我这里只是给出一种路线。

另外小编这里 赠送一份大厂的面试PDF 学习路线

注:如需完整的PDF下载点击此处链接☛☛☛【原件PDF下载】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java学习路线图(如何快速学Java) 的相关文章

  • 串口调试助手没有显示

    用cubeMX生成工程之后 xff0c 笔者写了下面两句话 xff08 向串口发送一个字符串 xff09 xff1a 但是 xff0c 打开调试工具怎么也接受不到数据 xff0c 魔术棒里面的 芯片型号 xff0c 调试 xff08 J L
  • vscode使用gitee

    vscode使用gitee 首先选择文件夹右键用vscode打开 然后打开vscode的终端 xff1a 在终端输入命令 xff1a xff08 每行命令输入完成之后记得敲回车 xff09 xff1a git init然后敲回车就有 xff
  • 深度揭秘阿里(蚂蚁金服)技术面试流程!附前期准备,学习方向

    上半年公司的项目很闲 xff0c 很多人觉得没意思陆续走了 xff0c 我考虑到自己的发展 xff0c 从6月底开始面 xff0c 面到7月底 xff0c 三十家公司 我从不打没准备的仗 xff0c 我是一个喜欢总结经验的人 xff0c 每
  • Git 中submodule的使用,终于有人说明白了

    背景 面对比较复杂的项目 xff0c 我们有可能会将代码根据功能拆解成不同的子模块 主项目对子模块有依赖关系 xff0c 却又并不关心子模块的内部开发流程细节 这种情况下 xff0c 通常不会把所有源码都放在同一个 Git 仓库中 有一种比
  • git 工具GitEye使用

    二 xff1a 签入 右键commit 可以选择需要签入的 xff0c 要加入注释才能签入 一 xff1a 比较
  • ROS笔记十(基于Python、Kinetic):rviz基础——快速配置并渲染点云和摄像机图像数据

    前言 xff1a rviz xff08 ROS visualization xff09 xff1a 用于机器人 传感器和算法的通用3D可视化系统 rviz能够绘制多种类型的数据流 特别是三维的数据 在ROS中所有类型的数据都被关联到一个参考
  • java面试必看书单

    编程之法 https legacy gitbook com book wizardforcel the art of programming by july details 白话经典算法之七大排序 链接 xff1a https pan ba
  • Java基础 - Integer和int的区别

    一 int和Integer的区别 两者的区别主要体现在以下几个方面 xff1a 1 数据类型不同 xff1a int 是基础数据类型 xff0c 而 Integer 是包装数据类型 xff1b 2 默认值不同 xff1a int 的默认值是
  • Lua + GraphicsMagick安装

    Lua 43 GraphicsMagick安装 图片的实时缩放功能是Nginx调用Lua脚本 xff0c Lua脚本在FastDFS中下载对应的图片保存到本地 xff0c 然后Lua调用GraphicsMagick实现图片的缩放功能 1 安
  • 零基础应该选择学习 C、C++、Java、python、web前端、C#、PHP、Linux选哪个编程语言好呢?

    众多的语言 xff0c 到底哪一门才是适合我呢 xff1f 小白 xff1a 大佬 xff0c 大佬 xff0c 编程语言也太多了 xff0c 到底我应该选择哪一种呢 xff1f 大佬 xff1a 首先呢 xff0c 我们先对常见的编程语言
  • 如何看英文技术文档

    https www jianshu com p af7d39cac6b8
  • 从工具的奴隶到工具的主人

    摘要 xff1a 我们每个人都是工具的奴隶 随着我们的学习 xff0c 我们不断的加深自己对工具的认识 xff0c 从而从它们里面解脱出来 现在我就来说一下我作为各种工具的奴隶 xff0c 以及逐渐摆脱它们的思想控制的历史吧 当我高中毕业进
  • 程序员,这四个学习建议值得收藏

    大家好 xff0c 我是本周的值班编辑 江南一点雨 xff0c 本周将由我为大家排版并送出技术干货 xff0c 大家可以在公众号后台回复 springboot xff0c 获取最新版 Spring Boot2 1 6 视频教程试看 在我看来
  • 底层原理解析

    目录 HashMap底层原理 xff1a ConcurrentHashMap 底层原理 HashMap底层原理 xff1a 1 HashMap概述 xff1a HashMap是一个散列桶 xff08 数组和链表 xff09 xff0c 它存
  • Java ServerSocket & Socket 实现 单组【客户端⇄服务端】双工通信(双向通信)

    Server java 服务器端开启服务 package com example socket service import lombok SneakyThrows import java net ServerSocket import j
  • docker搭建容器过程

    docker 环境创建 配置apt国内镜像源 备份源 span class token function cp span etc apt sources list etc apt sources list backup span class
  • FreeRTOS进程间通信-消息队列

    消息队列是进程间的一种通信机制 xff0c 实际项目运用很多 1 什么是消息队列 xff1f 2 消息队列API函数 3 在进程间通信使用消息队列 4 在中断中使用消息队列 1 1 消息队列是什么 xff1f 消息队列是realtime o
  • 三十岁了从零开始学python还有前途吗?很迷茫啊

    对于学习这件事 xff0c 我一直认为没有时间先后 xff0c 啥时候学习都不晚 xff0c 不管你现在年龄多大 xff0c 只要有心想学习 xff0c 一切都好说 首先 xff0c 你要学的python是属于技术类的知识 xff0c 对于
  • SpringBoot:使用Caffeine实现缓存

    在本博客中 xff0c 我们将探讨如何使用Spring的缓存框架向任何Spring Boot应用程序添加基本缓存支持 xff0c 如果没有正确实现 xff0c 还将探讨缓存的一些问题 最后但并非最不重要的一点是 xff0c 我们将看几个在真
  • 树莓派结合PIXHAWK飞控实现四轴双目视觉避障

    树莓派结合Pixhawk飞控实现四轴双目视觉避障 灰信网 xff08 软件开发博客聚合 xff09 无人机双目视觉避障的实现 本文将介绍如何使用树莓派结合PIX飞控实现无人机双目视觉避障的功能 主要硬件 我们以双目摄像头 43 树莓派 43

随机推荐

  • ::在c++中什么意思

    好多年没有用c 43 43 了 xff0c 今天在研究深度学习部署框架ncnn xff0c 看到这个突然想不起来了 xff0c 就查了一下资料 34 34 在C 43 43 中表示作用域 xff0c 和所属关系 34 34 是运算符中等级最
  • 基于Jetson Nano嵌入式平台的YOLOV3-tiny模型部署

    1 嵌入式平台简介 嵌入式是指可以嵌入设备或装置的特殊计算机系统 一般来说 xff0c 具有数字接口的设备都有嵌入式系统 xff0c 如手机 车载电脑 智能手表等 xff0c 而嵌入式人工智能则是使人工智能算法能够在终端设备上运行的技术概念
  • 机器人操作系统ROS—深度相机+激光雷达实现vSLAM建图与导航 转载

    原文 xff1a 机器人操作系统ROS 深度相机 43 激光雷达实现vSLAM建图与导航 wx5d23599e462fa的技术博客 51CTO博客 这次将带大家学习如何使用深度相机实现机器人的视觉SLAM建图及导航 目录 一 概述 1 深度
  • 程序员教你用代码制作飞翔的小鸟--Java小游戏,正好拿去和给女神一起玩

    先点赞后观看 养成好习惯 一 写在前面 xff1a 飞扬的小鸟 是一款曾经比较火热的小游戏 语言 Java工具 IntelliJ IDEA xff0c JDK 16 二效果图 xff1a 代码部分 代码如下仅供参考 可以直接拿去复制粘贴 p
  • 深入理解Java枚举类型(enum)

    版权申明 未经博主同意 xff0c 谢绝转载 xff01 xff08 请尊重原创 xff0c 博主保留追究权 xff09 http blog csdn net javazejian article details 71333103 出自 z
  • 秋招面试上岸经验分享

    学弟学妹们好 xff0c 我是18级14班的刘文豪 xff0c 很开心能在这里给大家分享一些我最近的面试经历 从21年6月28号第一场面试金山西山居 xff0c 到21年11月29号最后一场面试理想汽车 xff0c 大大小小的面试自己也经历
  • JT905实现(一):协议的简单讲解

    目录 背景 主线 协议 1 各方关系 2 协议简介 背景 最近在做905协议 xff0c 本想着靠着度娘扒拉下代码参考一下 xff0c 发现资源非常有限 xff0c 于是就只有自己动手实现了一番 xff0c 也踩了几个坑 本着开源共享的精神
  • 世界上应用最广泛的算法之一的卡尔曼滤波算法原理-从放弃到精通-无人机/机器人应用

    导读 xff1a 随着传感技术 机器人 自动驾驶以及航空航天等技术的不断发展 xff0c 对控制系统的精度及稳定性的要求也越来越高 卡尔曼滤波作为一种状态最优估计的方法 xff0c 其应用也越来越普遍 xff0c 如在无人机 机器人等领域均
  • Java程序员面试简历模板(30套简历模板+300套简历)

    需要免费领取简历模板和简历套装欢迎加群862461829 群里还含有 xff1a Java80g学习视频 43 Java学习书籍 43 Java项目实战源码 43 安装软件等 各类资源都有哦 简历是你吸引面试官的第一步 xff0c 如何让你
  • 中国程序员之我还是一名说唱歌手

    双重身份 List item 小编虽然也是一名程序员但是我的隐藏身份其实是一名说唱歌手 xff0c 没错就是你们口中的 rapper xff0c xff0c 而对于很多人有这样的双重身份早已见怪不怪了 xff01 哈哈哈我来举个例子吧 xf
  • MapReduce小文件问题

    MapReduce小文件问题 1 小文件处理的弊端 1 每个小文件都要执行一次map任务 增加map任务的开销 2 小文件太多 会耗费很多时间去寻址 3 需要记录小文件的元数据 造成namenode的内存浪费 2 解决办法 1 尽量避免出现
  • Docker之Dockerfile

    Dockerfile介绍 构建步骤 xff1a 1 编写一个dockerfile文件 2 docker build 构建一个镜像 3 docker run 运行一个镜像 4 docker push发布镜像 xff08 DockerHub 阿
  • 编程为了什么?到底什么才是真正的程序员

    第一章 我非常幸运出生在一个电脑和电子游戏还没有普遍的时代 所以我可以和我的小伙伴们一起玩耍 xff0c 同时发明属于我们的游戏 我们十分会玩 xff1a 用树枝做成 39 x1f3f9 39 我们可以用树枝做出任何东西 xff0c 除 3
  • Spring 4 支持的 Java 8 特性

    Spring 框架 4 支持 Java 8 语言和 API 功能 在本文中 xff0c 我们将重点放在 Spring 4 支持新的 Java 8 的功能 最重要的是 Lambda 表达式 xff0c 方法引用 xff0c JSR 310的日
  • 别再问我阿里面试流程了!!!P8 面试官 花了一个月整理了这份 4000 字的 面试流程

    本文转自我的一个同事 程序亦非猿 xff0c 他是社招进入阿里的 xff0c 花了几个星期整理了一下阿里面试的全流程 xff0c 吐血推荐收藏啊 文中的我指的是 程序亦非猿 写在前面 xff0c 本文的内容不是阿里官方出品 xff0c 只是
  • 作为一技术人员,面试前都需要做哪些准备?

    前言 面试前对目标公司 xff0c 岗位要求及面试流程有所了解 xff0c 这样才可以有针对性的突破 xff0c 我们来看以下几个方面 xff0c 相信可以帮助大家解决大部分求职迷茫的问题 第一 xff0c 常见的技术人员发展路径 和竞争要
  • 面试专场:spring+jvm+微服务+kafka+MongoDB五类面试题

    三面大概九十分钟 xff0c 问的东西很全面 xff0c 需要做充足准备 xff0c 就是除了概念以外问的有点懵逼了 xff08 呜呜呜 xff09 回来之后把这些题目做了一个分类并整理出答案 xff08 强迫症的我 狂补知识 xff09
  • jsoninclude.include.non_null 不起作用问题

    在开发过程中 xff0c 遇到在属性上加jsoninclude include non null注解 xff0c 有些属性起了作用 xff0c 有些却没有起作用 xff0c 下面使用代码简要说明一下 xff1a 64 Data public
  • 手把手 从零开始学习JAVA(入门基础)

    1 搭建JAVA开发环境 卸载JDK xff08 未安装的请忽略 xff09 将JDK的安装目录删除删除JAVA HOME以及CLASS PATH 环境变量删除PATH下与JAVA HOME以及CLASS PATH有关的环境变量 安装JDK
  • Java学习路线图(如何快速学Java)

    不知不觉从初学Java到现在已经8年了 xff0c 今天在这里给刚入门和入门不久的小伙伴们一些建议 可能总结的不是很详细 xff0c 但给出了一个大概的学习路线 希望对大家有帮助哈 如何快速学Java 这里我以Java EE Jakarta