-
了解Java知识体系
-
自学Java前,要对Java和Java体系知识有一定认识,心中有个大概的轮廓去学习,方能更踏实。通过几个问题了解Java。
- 什么是Java?
- Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种跑在JVM上的语言,Java编译后是字节码,而JVM会把这些字节码解释成机器码,然后做出相应的动作。
- Java能干什么?
- Java当前用的较多的就是做后端开发、大数据开发、安卓开发,这是当前Java技术栈较为热门的三种岗位,其中以Java后端的市场需求最大。Java也可以做桌面应用开发、游戏开发,但需求相对较少。
- 国内大厂,像阿里巴巴、美团、京东、拼多多等,使用的主要语言都是Java,大部分中小企业为了成熟稳定也选择Java作为后端开发语言。此外,很多著名的中间件是由Java编写的,例如:Elasticsearch、RocketMQ、Hadoop等。
- 2.Java有哪些知识?
-
(一)、Java基础
- Java入门部分:
-
JDK、IDEA安装,了解Java编译过程
-
基础内容:输入输出、命名规范、注释
-
数据类型:基础数据类型(及其包装类)、引用类型
-
修饰符:访问修饰符、非访问修饰符
-
运算符:赋值、算数、自增自减、比较、逻辑、位、三元运算符及其优先级
-
控制流程:条件判断、循环语句
-
数组、字符型
-
类与对象
-
面向对象三大特征:继承、封装、多态
-
日期、正则、大数运算(简单了解)
- Java进阶部分:
-
IO常见文件操作
-
集合框架:ArrayList、LinkedList、HashMap、HashSet、ArrayDeque等
-
异常处理
-
泛型
-
JDBC
-
网络编程
-
Java8新特性(Lambda)
-
反射、注解(有点难)
-
(二)、Java高级
-
多线程、高并发
-
23种设计模式
-
树、红黑树、B树、散列、堆、图等
-
算法:十大排序、二分查找、分治、贪心算法、位运算、回溯、动态规划、搜索算法(bfs、dfs)、最短路径(Dijkstra、Floyd)、最小生成树(Prim、Kruskal)、并查集、KMP等算法
-
(三)、JavaWeb:
-
HTML、JavaScript、CSS
-
XML、JSON
-
Tomcat
-
Servlet/JSP(以Servlet为主)
-
JQuery、Ajax
-
MVC
-
Cookie、Session
-
过滤器、监听器
-
文件上传下载(Servlet3.0)
-
Linux
-
(四)、常见框架:
-
ORM框架:Mybatis
-
Spring全家桶:Spring、SpringMVC、SpringBoot
-
安全框架:Shiro、Spring Security(可选一种先学)
-
其他框架:Swagger(在线接口)、Log4j2(日志)、Quartz(定时)等
-
微服务:SpringCloud、Dubbo等
-
(五)、常见中间件和工具:
-
版本控制:Git、SVN
-
包管理:Maven、Gradle
-
关系型数据库:MySQL、Oracle等
-
非关系型数据库:Redis(缓存)、Memcached(缓存)、MongoDB(文档型)等
-
搜索引擎:Elasticsearch、Solr等
-
消息队列:RocketMQ、ActiveMQ、RabbitMQ、Kafka等
-
Web服务器:Apache、 Nginx
-
容器:Docker、K8S
-
大数据:Hadoop、Spark、Strom、Flink等
- 当然,上面只是罗列了大部分知识点,还有很多知识比如日志分析监控(ELK)、持续集成、分库分表等也都是热门技术,Java后端技术体系庞大。这些内容可以根据你的工作或者兴趣,选择性深入学习。
-
JavaWeb学习阶段
- JavaWeb部分,每天学习8小时,建议控制时间在30天左右,推荐学习方式以视频为主,教程网站为辅。这部分内容虽然相对简单,但涉及到很多新的技术和概念需要时间吸收理解(例如HTML,JavaScript,CSS,JQuery,MVC,Ajax等)。学习JavaWeb推荐B站狂神JavaWeb入门到实战视频(https://www.bilibili.com/video/BV12J411M7Sj?from=search&seid=5650664425103872007),大概25小时左右,同样也要倍速看。在学习JavaWeb的时候,会涉及一些其他领域的东西比如Html,JavaScript,CSS,MySQL等你不需要学的很深,先会一些基本的就可以。另外看视频的时候JSP部分可简略看,尤其是标签、EL表达式那块应用已经很少很少了,快速浏览即可。
- JavaWeb部分,如果遇到一些错误很难解决跳过,可到Github找一些可运行的项目进行跑。有些东西不一定非要死扣,资源教程很多能跑出来对于初期才是最关键的。
- 学习JavaWeb除了跟视频外,也可以跟着教程网站或者博客专栏进行学习(例如菜鸟教程的Servlet(https://www.runoob.com/servlet/servlet-tutorial.html)),因为跟着教程网站在代码学习上效率较高,当然在学习别人代码的时候要有自己的创新。
- 学习JavaWeb 中Servlet/Jsp这部分内容的时候,除了要跟着教程的案例一个一个敲代码,最后一定要动手敲一个小网站,网站内容囊括 Servlet、jsp、Session、Cookie、JDBC、Ajax等相关技术,包含具体登录注册功能、文件上传下载功能、页面访问计数等功能,可以从网络上获取一些前端页面模板或者UI框架(推荐Layui或者EasyUI)进行修改。
-
框架学习阶段
- 框架学习+项目实战,每天学习8小时,建议控制时间在60天,推荐学习方式是视频+文档资料学习。
- JavaWeb中Servlet/Jsp很少在企业直接使用,学习企业级开发框架才是重中之重,框架类如果单纯为了学习应用的话不要买书,因为主流框架技术更新迭代较快,大部分书籍跟不上技术的发展;如果为了深入理解框架设计、原理可以买对应框架的源码分析类书籍(要注意框架版本)。在寻找视频或者博客教程的时候要留意文章或者视频的发布日期,如果太早的话不建议观看。
- 在框架中,重中之重的是Spring、SpringMVC、Mybatis、SSM、SpringBoot等。学习顺序的话建议从Mybatis到Spring到SpringMVC,三个框架单独学完之后再进行整合SSM框架,利用SSM写一些小案例。之后学习SpringBoot,再利用SpringBoot完成实战项目巩固学习。
Java自学方法和路线
于 2022-06-21 16:50:05 首次发布