写博客以来,仍然有一些读者是零基础学习Java的,有一些转行的,还有一些是年轻的兄弟姐妹。 经常他们也会问我如何学习Java比较好,学习Java的方式应该是什么。
emmmmm,我一般都会用比较简单的方式回复:让他们多做笔记,什么该花时间学,什么不该学……就这样。
所以,写完这篇文章,遇到问我怎么学Java的时候,发个链接就搞定了(懒人必备)……
1.3 目的
如果你:
我想用Java在短短几个月内写出自己的毕业设计。 我想用Java来体验一下如何从零开始搭建一个属于自己的网站。
所以请看一下我下面写的半生不熟的建议。
2.如何快速学习Java
这里我讲的是JavaEE(JakartaEE)/JavaWeb的经验。 (大家算是零基础入门)
一般来说,学习JavaEE(JakartaEE)会有以下三个模块:
Java 数据库 Web 后端
在我看来,无论学习哪项技术,在学习该技术之前最好先了解一下该技术的细节:这个技术是什么,我为什么要学习这个技术,学习这个技术有什么用。
看起来我说的是多余的,但是如果你是学一门技术,那么前三个问题是很难回答的。 几天后,您将基本上忘记您“学到”的技术。 例如,为什么你甚至无法用通俗易懂的语言解释“为什么使用多线程”。 即使你在学习的时候就知道可以用xxx方法创建多线程,多线程xxx api. 再过两个月,人们就会问你“Java多线程有什么用?”。 想想你能回答什么,我想你已经记不住“多线程可以用xxx方法创建,多线程xxx API”的知识点了。 再比如,如果你在学习Spring的时候不知道IOC和new对象的区别,那我为什么不麻烦去学习Spring而不是直接new对象呢?
简单来说:如果你不知道学习某项技术是为了什么,那就先别学。
如果你是零基础学习Java,理解力还不全面,我建议重点关注视频学习。
你可能会看到这样的东西:
“看视频学习太慢”“直接看源码,源码就是最好的解释”“有问题去谷歌,用哪个百度”“最好的资料就是官网文档”。 ..
然而,那是针对有经验的人或高情商的人。
如果你是一个零基础的普通人,看视频学习/看不懂源码/用百度/看英文博客学习并不可耻。
ps:如果您观看的视频讲师语速不是很快,建议以1.5或1.75倍速观看。
2.1 关于视频资源
我在学习Java的时候,也收集了很多视频资源,并不是每个人都看过。 只是我进群的时候发现有人发过,就复制整理了一下。
其他视频资源:
B站:()一个神奇的网站。 如果你想观看该视频,可以先搜索Bilibili。 MOOC:()里的视频资源还蛮多的。 公众号/混合QQ群/陌陌群:很多人手里都有好几吨的资源。 如果他们和群友关系好的话,一般都会免费送给你……
2.2 学习Java基础知识
我把零基础学习Java的路线简单总结如下:
首先去官网下载JDK,按照常用版本JDK1.8就足够学习了
下载地址:JDK1.8下载:
然后去下载今天Java常用的编辑器IDEA(eclipse也可以用,不过IDEA现在确实好用了)...
下载地址:IDEA 下载:1.5/1.75倍速观看Java基础视频(以刘毅为例)
在学习Java基础知识的时候,简单说一下什么是不能接触的:
&^|位运算符,++i和i++类似这些死胡同的语句内部类AWT,SWING编程笔记
需要深入理解的知识点:
过程控制面向对象的概念Java语法
基本的东西比如 this 指针、重写和重载、final、static 等。
集合(包括基类)
常用的集合类IO流
IO流代码编译
(理解这类知识点只能在有提示的情况下敲出代码,但不要为一些细节深挖牛角)
简单知识:
非凡的多线程网络编程反射机制(你要知道这个知识点是做什么用的,为什么需要学习这个知识点,并且能够看懂具体代码!)
对于上面提到的知识点为了深入理解,我个人建议在学习期间写笔记(博客)。 如果要写笔记,最好使用markdown语句直接编译,而不是word/简单的记事本。
Markdown句型非常简单易学,几分钟就能学会。 几乎所有的it博客网站都支持markdown:
降价学习:
如果你喜欢画思维导图,我推荐这里的processOn。 不再需要下载 Xmind 的麻烦:
ProcessOn绘制思维导图:
有时不需要使用IDEA打开.java或.xml文件,可以使用notepad++记事本:
NotePad++ 记事本:
学习上网和使用Chrome浏览器,例如下载拦截广告插件、英文翻译插件
Chrome浏览器: 广告拦截插件:%20Origin?hl=zh-CN&_category=extensions 英文翻译插件:%E6%B2%99%E6%8B%89%20%E6%9F%A5%20%E8% AF%8D ?hl=zh-CN
其实这是学习Java的一个快速方法,但是恐怕要一个月才能学完(:...
一个月了,发现都是面向控制台的编程(console),输入输出一些数据来玩。
期间你在学习IO的时候或许可以复制文件。 更改文件名很有趣。 但更好的日子即将到来!
2.3 学习JavaWeb基础知识
首先我们可以了解一下Web后端的知识(这部分只是一点点)
HTML/CSS/JavaScript/jQueryCSS框架(全英文指南,可以快速上手,选择自己喜欢的即可):
引导程序::
至此java网站开发源码,学习完可以“看得见”的可以搭建的静态网页了。 之前看过一段话,总结一下之前的技术:
“HTML 是一个名词,CSS 是一个形容词,JavaScript 是一个时态”
之后学习JavaWeb的路线如下:
Tomcat(简单)XML/注解(简单)Servlet(重点了解)HTTP契约(重点了解)Filter过滤器(重点了解)监听器bug(简单)JSP(简单)AJAX、JSON(过一遍就好)
根据前面的学习java网站开发源码,至少可以使用request对象接收后端发送的数据,使用response对象将Java前端的数据返回给后端,使用Filter拦截器来处理以下问题英文乱码(Tomcat默认编码为ISO-88591)。 总体来说,已经可以实现前后端交互了!
2.4 学习数据库
这里的数据库指的是关系型数据库。 通常情况下,我们开始使用MySQL就足够了。
学习期间,虽然在配置环境上花了很多时间,比如安装JDK、MySQL、Oracle,我就花了很多时间。 后来我也把它写成了博客。 当我需要重新安装它时,我只是转向博客。
例如MySQL安装教程:
主要学习SQL的基本使用:
创建表(createtable)添加、删除、修改和检查(插入、删除、更新、选择) 对于存储过程和触发器,可以了解索引和锁(这部分很重要,但是为了快速入门,可以忽略首先)
2.5 学习Java连接数据库(JDBC)
到目前为止,我们已经基本学习了JavaWeb、数据库和Web后端的基础知识,但是此时Java和数据库是相互独立的。 如果我们想以程序的形式操作数据库中的数据,就必须了解Java连接数据库(JDBC)。
JDBC技术并不难,就是模板代码,来来去去只需几步:
导出MySQL或Oracle驱动包,加载数据库驱动,获取与数据库的连接,获取可以执行SQL语句的对象。 执行SQL语句并关闭连接
因为这种代码可能会反复出现,那么我们可以了解一下DbUtils组件:它可以帮助我们减少编写JDBC的模板代码。
2.6 项目管理和框架学习
经过前面的学习,已经可以在本地写一个web项目了。
页面框架使用BootStrap/Materialize框架来设置请求处理并将其交给Servlet。 返回的数据可以通过AJAX或者JSP传递,DAO层可以使用DbUtils。数据保存在MySQL中
为了让写代码变得更加愉快,我建议半天学习Maven(项目管理工具),几天学习SpringBoot。
直接从Servlet跳转到SpringBoot可能有点难以理解,但是相信再过几天还是可以的……
2.7 Linux学习
最后,我们在本地编写的项目希望对别人可见,通常部署在Linux环境中。 (这部分的学习可以等到项目完成后才能学习,只有要部署项目才能学习)
主要学习Linux的基本命令和部署环境。
我不建议使用虚拟机来做Linux。 直接买一个就方便多了。
三、总结
总结一下,我认为学习Java的路线:
Java基础 –> 过程控制 –> 面向对象(包括Java句型) –> Java Collection –> JavaIO Stream –> 异常 –> 多线程 –> 网络编程 –> Reflection JavaWeb基础 –> HTML/CSS/JavaScript/jQuery – >Tomcat–>XML/Annotation–>Servlet–>HTTP–>Filter过滤器和bug–>JSP–>AJAX/JSON–>数据库(MySQL)–>JDBC和DbUtils项目管理和框架–>Maven–>SpringBootLinux基本命令
最终我们的项目看起来像这样:
使用Maven来管理我们的项目。 后端通过BootStrap构建页面框架。 SpringBoot构建Java前端环境。 SpringMVC 处理后端请求(由 SpringBoot 集成)。 DAO层使用DbUtils组件完成,数据库采用MySQL。
其实我的Java路线不一定是正确的,我这里只是给出一个路线。
再解释一下:这条路线是“快速”学习Java。 如果你想找到一份好工作,里面的知识点是不够的!
包含Java前端所有知识点的开源项目(已6K+star):