Java学习路线图(如何快速学Java)
不知不觉从初学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站有没有。
- 慕课网:(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/
- 拦截广告插件: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(简单过一下)
基于上面的学习,起码已经可以使用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)
- 对于存储过程、触发器这些了解一下即可
- 对于索引、锁后面再学(此部分很重要,但以快速入门来说,可以先不看)
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路线不一定就是对的,我这里只是给出一种路线。
再次说明:这套路线是以“快速”学习Java的,如果你想要找到一份好工作,上面的知识点是不够的!
参考:
Java学习路线图(如何快速学Java)的更多相关文章
- 2020最精细的Java学习路线图
在吾爱破解发布的Java学习路线图自我感觉良好,之后看到动力节点Java学院的这份学习路线图感觉专业的东西还得专业的人来做,这份专业的学路线图把我上次的Java学习路线图秒成渣,虽然内容差不多,上份是 ...
- Java学习路线图,专为新手定制的Java学习计划建议
怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...
- 转:Java学习路线图,专为新手定制的Java学习计划建议
转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...
- 一份Java学习路线图
Java学习路线图 本文会持续更新,敬请关注.下划线的文字会在这个博客继续更新. 回顾自己的Java学习经历,从学校的课堂到现在每天的项目开发,一份路线路线图浮出来. 其中有未做好的地方,也有自我感觉 ...
- 转:Java学习路线图
作者: nuanyangyang 标 题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内 [以下肯定是不完整的列表, ...
- 2018年如何快速学Java
前言 只有光头才能变强 提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获. 一.为什么我要写下这篇文章 1.1直接缘由: 在今天(2018年11月4日)有个同学给我 ...
- Java学习路线图,Java学习计划建议
怎么学习Java,这是很多新手经常遇到的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...
- 新手如何学习Java——Java学习路线图
推荐初学者阅读:新手如何学习Java——Java学习路线图
- 最新java学习路线:含阶段性java视频教程完整版
最新java学习路线:带阶段性java视频教程版本 第一阶段:Java基础 学习目标: 掌握基本语法.面向对象.常用类.正则.集合.Io流.多线程.Nio.网络编程.JDK新特性.函数式编程 知识点细 ...
随机推荐
- 【WPF】屏幕右下角消息提示框
WPF做一个仿QQ的右下角消息提示窗,网上找到几个Demo后,选了一个比较好用的. 博客 http://blog.csdn.net/huangli321456/article/details/5052 ...
- ORA-12705 解决方法
问题:创建Oracle数据库出现ORA-12705:Cannot access NLS data files or invalid environment specified. 环境:重置系统,无Or ...
- flume中HdfsSink参数说明
flume到hdfsSink: type hdfs path 写入hdfs的路径,需要包含文件系统标识,比如:hdfs://namenode/flume/webdata/ 可以使用flume提供的日期 ...
- PHP与Java进行通信的实现方法
缘起: 最近做了一个电商平台与网银整合的小东西,程序是开源的 Ecmall的,网银的接口也很规范,给出的文档很全,唯一的小问题是,网银使用的签名和验签的lib是只有java和c的,对java还熟悉一些 ...
- Matlab基本用法
转至:http://blog.sina.com.cn/s/blog_8354dda801012dyn.html 目录: 一.说明 二.数据类型及基本输入输出 三.流程控制 四.循环 五.数组.数组运算 ...
- Java 应该被记住的8位大人物
这里列举了 8 个 Java 人物,他们创建了对 Java 社区贡献很大的框架.产品.工具和图书,也因此改变了 Java 的编码方法. 8. Tomcat 和 Ant 创办人 James Duncan ...
- js动态加载图片核心代码
objMapHeart.src = obj.getAttribute("ItemImage"); //==============图片预加载处理================== ...
- [spark 快速大数据分析读书笔记] 第一章 导论
[序言] Spark 基于内存的基本类型 (primitive)为一些应用程序带来了 100 倍的性能提升.Spark 允许用户程序将数据加载到 集群内存中用于反复查询,非常适用于大数据和机器学习. ...
- IT 运营架构杂谈【前言】
[ 什么是IT 服务 ?] OGC官方的ITIL 服务定义: 中文定义:实施和管理 IT 服务,满足业务的需要.IT 服务管理由IT 服务提供方通过人员.流程和信息技术的适当组合而进行. [ ...
- qualcomm lk gpio
关于高通平台lk中控制gpio的记录 http://blog.csdn.net/loongembedded/article/details/72834761 http://blog.csdn.net/ ...