Java 学习路线图(如何快速学 Java),java 数据结构与算法面试题
如何快速学 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 站有没有。
慕课网:(imooc.com)里头也有挺多的视频资源。
公众号/混 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 基础时,我简单来说一下什么东西可以不碰:
&^|
位运算符,++i
和i++
类似这种绕死人的语法内部类
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/
虽然是快速学习 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(简单过一下)
基于上面的学习,起码已经可以使用 request 对象来接收前端发送过来的数据,使用 response 对象将 Java 后端的数据返回给前端,使用 Filter 拦截器来处理中文乱码问题(Tomcat 默认的编码是 ISO-88591)。总的来说已经可以实现前后端交互了!
1.4 学习数据库
数据库这里指的是关系型数据库,一般我们以 MySQL 来入门就足够了。
在学习期间,其实很多时间都耗费在配置环境上面,比如我之前安装 JDK,安装 MySQL,安装 Oracle 就耗费了不少时间。后来我也将其写成博客,需要重新安装的时候翻一下博客就好了。
比如 MySQL 安装教程:segmentfault.com/a/119000001…
主要学习 SQL 的基本使用吧:
评论