如何系统全面地自学Java语言？
你不过是在看视频的时候以为自己看懂了，实际上并没有懂！ 另外，视频应该挑选比较全的那种，而不是到处找一些零零散散的视频来看，这样对学习效果不好！比如，Java基础可以看刘意或者毕向东的。 多方向发展我认为以初学者来说还是早了一点，但巩固知识是必须的，那怎么巩固知识？很简单，做笔记吧 我曾经也写过一篇如何初学Java的文章，这里给你贴一下，希望可以帮助到你。  最后，我告诉这同学："你去找视频看吧，你现在学这些对你的毕业设计没有什么帮助的啊"。然后让他去B站找视频看了 自身经历： 我学习Java也是自学的，在大学期间也是一直一个人在学(身边的同学可能家里有矿)。即便我在学习的时候也去搜了不少的意见，例如在知乎上找<Java如何快速入门>，<Java应该怎么样学？>，<给刚开始学Java的年轻人一些建议>等等类似的话题，但是现在回过头来看，我还是走了不少的"弯路"了。 比如说，当时我花了蛮多的精力去学JSP，最后整理成博客发到网上去。网友的评论：   嗯...那篇文章我当时在2018.02.07发布。我学JSP的时候是在2017年初吧，其实在2017年JSP也已经是落后的技术了，但我还是花了不少的时间去学习JSP的各种用法(自定义标签，JSTL，EL表达式等等)。 网友们其实说得都没有毛病，对我来说：在2017年花了不少时间去学如何使用JSP(过期的技术)，这就是我认为的"弯路"。 以这篇文章回复我部分的读者： 写博客以来，还是有部分读者是零基础学Java的，有转行的、也有年轻的师弟师妹的。一般他们也问我应该怎么学Java比较好，学习Java的路线应该是怎么样的。 emmmm，我一般都是比较简单的回复一下：让他们多做笔记啊，接下来应该花时间学什么，不学什么...就完了.. 所以，写完这篇文章，遇到再问我如何学习Java的时候，我直接发个链接就完事了(懒人必备).. 如果你： 那么可以看一下我下面所写的不成熟的建议。 学习Java EE(Jakarta EE)总体来说会有以下三大模块：   在我看来，无论学习什么技术都好，在学习该项技术的细节之前都得知道：这项技术是什么，为什么我要学习这项技术，学习了这项技术有什么好处。 简单来说：如果你不知道学习某项技术是干嘛用的，那先不要学。 如果你是零基础学习Java并理解力不是爆棚的话，我建议以视频学习为主。 可能你会看到这样类似的言论： 但是，那都是对有经验的人或者高智商的人群来讲的。 如果是零基础普通人，看视频学习/看不懂源码/用百度/看中文博客来学习不丢人。 我在学习Java的时候也收集了很多的视频资源，并不是每个都有看过。只是在混群的时候发现有人发了，就复制下来整理一下罢了。 视频资源： 零基础学习Java的路线我简单总结为以下：  在学习Java基础时，我简单来说一下什么东西可以不碰： 需要深入理解的知识点： 简单过一遍的知识： 对于上面所说深入理解的知识点，我个人是非常建议在学习期间写笔记(博客)的。如果你想写笔记的话，最好直接就用markdown语法来编写，而不是用word/简单的记事本。 markdown语法非常好学，几分钟跟着就可以学习了，几乎所有的it博客网站都支持markdown： 如果喜欢画思维导图的，我这里推荐processOn就可以了。无需下载Xmind这么麻烦了： 有的时候并不需要使用IDEA打开一个.java或者.xml这样的文件，可以使用notepad++记事本： 学会科学上网和使用Chrome浏览器，比如说下载拦截广告插件，英语翻译插件 虽然是快速学习Java，但学完上面的估计得一个月了(:.. 一个月发现都是面向控制台编程(console)，输入输出一些数据来玩。   期间可能就学习IO的时候可以复制文件，修改文件名有点意思。但好日子就要来临了！ 首先我们可以学习一下Web前端的知识(此部分都简单过一下就好了) 到目前为止，学完上面这些可以搭建“能看”的静态网页了。曾经看过一段话来总结上面的技术： 随后学习JavaWeb的路线如下： 基于上面的学习，起码已经可以使用request对象来接收前端发送过来的数据，使用response对象将Java后端的数据返回给前端，使用Filter拦截器来处理中文乱码问题(Tomcat默认的编码是ISO-88591)。总的来说已经可以实现前后端交互了！ 数据库这里指的是关系型数据库，一般我们以MySQL来入门就足够了。 在学习期间，其实很多时间都耗费在配置环境上面，比如我之前安装JDK，安装MySQL，安装Oracle就耗费了不少时间。后来我也将其写成博客，需要重新安装的时候翻一下博客就好了。 主要学习SQL的基本使用吧： 到这里，我们Java Web、数据库、Web前端的基础都已经基本学完了，但此时Java和数据库是相互独立的。我们想要以程序的方式来对数据库的数据进行操作，那就要学习一下Java连接数据库(JDBC)。 JDBC这项技术并不难呀，就是模板代码，来来去去就几个步骤： 由于这些代码可能会重复出现，那我们可以学习一下DbUtils这个组件：可以帮我们减少编写JDBC的模板代码。 经过上面的学习，已经是可以在本地写一个Web项目了。 为了让写代码变得更爽，我建议用半天学一下Maven(项目管理工具)，用几天学一下SpringBoot。 最后，我们在本地上写完的项目想要让其他人都看得见，一般都会部署在Linux环境下的。(此部分的学习可以等到将项目写完，想要部署项目才学习) 总结一下我认为学习Java的路线： 最后我们的项目是这样的： 当然了，我的Java路线不一定就是对的，我这里只是给出一种路线。 再次说明：这套路线是以“快速”学习Java的，如果你想要找到一份好工作，上面的知识点是不够的！  