如果有一天我醒来时,发现自己的几年Java开发经验被抹掉,重新回到了一个小白的状态。我想要重新自学Java,然后找到一份自己满意的Java工作,我想大概需要7个月的时间,如果顺利的话,5个月可能就够了。如果我再想重新回到我高级Java工程师的职位上,或许3年的时间就足够了,当然这是让我带着记忆重新学。
我说上面这段话的意思其实只想表达一个重要的观点,那就是我的工作经验被抹掉,但是我带着记忆重新学,我就不会走弯路,我知道哪里是坑,怎么提高自己的学习效率,让自己学的内容更有用,能更加快速的就业。每个人都知道自学Java是很困难的,大部分人在没有好的师傅带的情况下,一定会走非常多的弯路,所以就造成了大部分人自学几个月便放弃,他会觉得自己越学越迷茫,看不到任何能学成就业的希望,他自然就没有信心学的下去。所以自学Java多久能找到一份工作,取决于你是否走了太多弯路,如果弯路走的太多,可能你很快就会有放弃的想法,就更别提能不能找到工作了。
根据我几年的Java工作经验来看,零基础的人学好Java的基础尤为重要,无论是以后做安卓开发还是服务器端开发或者大数据,都是基于Java平台。想要成为技术大佬,了解底层原理,必须把IO、多线程、线程池等底层原理深入了解,如Spring底层原理其实都是JavaSE里面的基础内容,技术研究的越深入就会发现基础学好越重要。既然想要进入这行,就从开始给自己搭建一个Java知识体系框架,让你对于整体的技术栈有明确的全局观,了解自己目前处于哪个阶段,不过对于小白来说,这可能有一点难,所以我首先给大家准备了一套完整的Java技术体系图以及相关的Java视频课程,想要获取的同学,点击下面获取。
点击获取Java知识体系图以及视频教程
以下内容是为大家列出的应该学习的技术,这些内容全部掌握后,在一线城市找工作的薪资不会低于15K,二线城市不会低于10K,我下面列的这些内容算是比较多的,对于初学者来说是一个比较大的考验,所以任重而道远。能不能坚持学的下去,就看每个人想要拿高薪的决心有多大了。
第一步:夯实Java基础语法
1. Java语言的发展史
2. JDK的下载和安装
3. DOS命令的介绍和使用
4. Path环境变量的配置
5. 第一个代码HelloWorld案例
6. NotePad++软件的安装和使用
7. Java中的数据类型
8. 常量的使用
9. 变量的定义与使用
10. Java中代码的书写规范
11. 数据类型之间的转换
12. Java中的各种运算符操作
13. if分支语句的灵活使用
14. switch分支语句
15. for循环结构
16. while循环结构
17. do..while循环结构
18. 各种循环语句的区别和应用场景
19. 循环跳转控制语句
20. 嵌套循环的应用
21. 使用循环嵌套打印直角三角形
22. IDEA开发软件
23. 数组的动态初始化
24. 数组的访问格式
25. 数组的静态初始化
26. Java的内存划分和作用
27. 分析数组在内存中的存储
28. 方法的定义和调用
29. 方法的参数和返回值问题
30. 方法的重载(Overload)
31. 参数是基本类型和引用类型的区别
32. Debug断点调试的使用
第二步:接触面向对象基础
1. 类和对象的概述
2. 分析对象在内存中的存储
3. 成员变量和局部变量的区别
4. private关键字的应用
5. this关键字的应用
6. this关键字的内存原理
7. 面向对象特性之封装
8. 构造方法(Constructor)
9. 构造方法的注意事项
10. 标准类的定义规范
第三步:初识API基础
1. API的使用方式
2. String类的特点
3. String类的常用构造方法
4. 字符串的比较规则
5. 用户登录的案例
6. 遍历字符串的方式
7. 字符串的拼接
8. 字符串的反转操作
9. StringBuilder类的作用
10. StringBuilder类的构造方法
11. StringBuilder类的常用方法
12. 用StringBuilder完成字符串拼接和反转
第四步:初识集合基础
1. ArrayList集合的特点
2. ArrayList的构造方法
3. ArrayList的常用操作
4. 集合存储自定义类型并遍历
5. 学生管理系统的业务介绍
6. 学生管理系统的创建
第五步:掌握Git的使用
1. Git概述和特点
2. Git的下载安装
3. Git基本概念
4. Git操作入门
5. Git历史版本控制
6. Git分支版本控制
7. Git远程仓库的操作
8. Git远程托管平台应用(GitHub,码云)
9. Git解决冲突
10.IDEA中集成Git应用
11.Git常用操作命令
第六步:深入理解面向对象原理
1. 面向对象特性之继承
2. 继承的好处和弊端
3. super关键字的作用
4. 继承时子父类的访问特点
5. 方法的重写(Override)
6. package关键字的作用
7. import关键字的作用
8. final关键字的作用
9. static关键字的作用
10. static关键字内存分析
11. 面向对象特性之多态
12. 多态的好处和弊端
13. 多态中成员访问的特点
14. 多态中的数据类型转型
15. instanceof关键字的使用
16. 抽象类的特点
17. 抽象类的成员特点
18. 模板设计模式
19. 接口的概述
20. 接口的特点和注意事项
21. 类、抽象类、接口之间的关系
22. 内部类的概述
23. 成员内部类的使用
24. 局部内部类的使用
25. 匿名内部类的使用
26. 匿名内部类在开发中的应用
第七步:了解Web服务器
1.JavaEE规范概述
2.网络资源分析之静态资源和动态资源
3.系统结构分析之C/S和B/S
4.Tomcat概述
5.Tomcat下载与安装
6.Tomcat各版本所需支持
7.Tomcat启动及启动问题分析及解决
8.Tomcat目录结构详解|9.IDEA集成Tomcat
9.JavaEE工程概述
10.IDEA创建JavaEE工程
第八步:掌握异常
1. 异常的概述
2. JVM默认处理异常的方式
3. 异常处理方式之try..catch
4. 异常处理方式之throws
5. Throwable的常用方法
6. 异常的分类和区别
7. 异常的注意事项
8. 自定义异常的使用
第九步:掌握集合
1. 集合体系结构
2. 单列集合体系的详细讲解
3. 迭代器的使用
4. 增强for循环的使用
5. forEach方法遍历
6. 并发修改异常的产生原因和解决办法
7. 数据结构之栈和队列
8. 数据结构之数组和链表
9. ArrayList集合源码分析
10. LinkedList集合源码分析
11. 双列集合体系的详细讲解
12. Map集合的遍历方式
13. TreeSet的自然排序和比较器排序
14. 数据结构之树
15. 数据结构之二叉树
16. 数据结构之二叉平衡树
17. 数据结构之红黑树
18. TreeSet(TreeMap)底层源码分析
19. 数据结构之哈希表
第十步:掌握IO流
1. File类对文件的操作
2. IO流的概述和分类
3. 字节流写数据的方式
4. FileOutputStream和BufferedOutputStream源码分析
5. 字节流读数据的方式
6. FileInputStream和BufferedInputStream源码分析
7. 字节流完成视频文件的复制
8. 编码表
9. 字符流写数据的方法
10. 字符串读数据的方法
11. 字符缓冲流的使用
12. 字符缓冲流的特有方法
13. 标准输入输出流
14. 打印流的使用
15. 对象序列化流
16. serialVersionUID&transient
17. Properties的用法
18. 内存操作流的使用
19. RandomAccessFile使用
20. SequenceInputStream的使用
21. 压缩流/解压缩流
第十一步:深入理解多线程
1. 进程和线程的区别
2. Java实现多线程的三种方式
3. 线程API之线程名称
4. 线程API之线程休眠
5. 线程API之线程礼让
6. 线程API之线程优先级
7. 线程API之线程中断
8. 线程API之后天线程
9. 线程的安全问题
10. 同步代码块
11. 同步方法
12. Lock锁
13. 死锁概述以及现象演示
14. 死锁诊断(jstack工具的使用)
15. 线程通讯之生产者消费者问题
16. 线程通讯代码实现之同步代码块
17. 线程通讯代码实现之Condition实现通信|
18. 线程通讯代码实现之阻塞队列(BlockingQueue)实现
19. 线程的状态
20. 线程池概述
21. 自定义线程池
22. Executors创建线程池
23. ThreadPoolExecutor创建线程池
24. ThreadPoolExecutor原理介绍以及任务拒绝策略介绍
25. volatile关键字
26. JMM内存模型
27. 原子性概述
28. 原子类AtomicInteger类的使用
29. CAS算法
30. 并发容器ConcurrentHashMap原理讲解
31. 并发工具类(CountDownLatch,Semaphore,CyclicBarrier,Exchanger)的使用
第十二步:学习网络编程
1. 网络编程的概述
2. 网络编程的三要素之ip地址(ipv4,ipv6)
3. InetAddress类的操作
4. 网络编程的三要素之端口和协议的详细解释
5. 网络参考模型
6. UDP协议发送与接收数据
7. 聊天小程序案例
8. UDP协议中广播与组播
9. TCP协议发送与接收数据
10. 多线程下文件的上传
11. NIO概述
12. NIO之Buffer的使用
13. NIO之Channel的使用
14. NIO之Selector的使用
15. 自定义非阻塞式的HTTP静态服务器
第十三步:了解反射
1. 虚拟机类加载机制(概述,类加载过程,类的初始化时机)
2. 类加载器(概述,分类,双亲委派机制,ClassLoader类,自定义类加载)
3. 反射机制的概述
4. 获取Class类的对象
5. 反射获取构造方法并使用
6. 反射获取成员方法并使用
7. 反射获取成员变量并使用
8. 自定义非阻塞式的HTTP动态服务器
以上内容是Java语言基础部分,所有人必须要夯实掌握,以后能达到什么高度,完全取决于基础掌握到什么水平,很多自学的人不信邪,对于JavaSE基础不重视,相信我,你以后绝对走不远。学完这部分内容后,我建议大家做一个ATM取款器的项目作为阶段性检测。
以上内容可以观看下面的视频进行学习
https://ke.qq.com/course/2707599
以下内容是为大家列出的应该学习的技术,这些内容全部掌握后,在一线城市找工作的薪资不会低于15K,二线城市不会低于10K,我下面列的这些内容算是比较多的,对于初学者来说是一个比较大的考验,所以任重而道远。能不能坚持学的下去,就看每个人想要拿高薪的决心有多大了。
第一步:熟练掌握MySQL基本操作
1. 数据库的概念
2. 常见的数据库软件
3. MySQL数据库的安装卸载
4. MySQL数据库的登录退出
5. MySQL的目录结构
6. SQL语句的分类
7. 数据库和数据表的操作
8. 数据的添加(insert)
9. 数据的删除(delete)
10. 数据的修改(update)
11. 数据的查询(select)
12. 数据的复杂查询
13. 约束的使用
14. 多表关系(一对一、一对多、多对多)
15. 数据库的还原和备份
16. 多表查询操作
17. 事务介绍
18. 事务的隔离
19. 数据库的用户管理和权限管理
20.视图的使用
21.存储过程的使用
22.触发器的使用
23.存储引擎原理
24.索引高效查询
25.锁机制
26.数据库集群
第二步:了解JDBC
1.JDBC基本概述
2.JDBC入门和步骤分析
3.DriverManager详解
4.Connection详解
5.Statement详解
6.ResultSet详解
7.Driver接口介绍
8.JDBC的CRUD操作
9.SQL注入分析
10.PreparedStatement详解
11.JDBC的使用案例
12.连接池基础
13.自定义连接池
14.装饰者模式和默认适配器
15.代理模式-动态代理技术
16.C3P0连接池的使用
17.druid连接池的使用
18.Jdbc操作模板的封装-自定义JdbcTemplate
19.数据库中的元信息
20.策略模式的运用-结果集的封装处理器
第一步:了解HTML&CSS
1.HTML基本使用
2.HTML常用标签
3.CSS选择器
4.常用样式
5.盒子模型与布局
6.HTML5新特性
7.CSS3新特性
8. Nginx服务器介绍
9. Nginx 下载和安装
10. Nginx 编译和启动、访问
11. Nginx中部署静态网站
第二步:深入理解Servlet底层原理
1.Servlet概述
2.Servlet编码步骤
3.Servlet执行过程分析
4.Servlet的实现方式分析
5.Servlet的类试图详解
6.Servlet的生命周期
7.Servlet的线程安全问题分析
8.Servlet的映射方式及优先级
9.Servlet的多路径映射
10.Servlet的启动时创建配置
11.默认Servlet
12.Servlet的配置对象ServletConfig
13.Servlet的上下文对象ServletContext
14.域对象概念
15.请求对象介绍
16.请求对象的生命周期
17.HttpServletRequest的常用方法
18.获取请求参数
19.BeanUtils详解
20.请求参数的乱码问题
21.请求转发的使用
22.响应对象介绍
23.HttpServletResponse的常用方法
24.响应的乱码问题
25.设置响应消息头的使用
26.重定向的概念和使用
27.请求转发和重定向的区别
第三步:了解Cookie&Session
1.会话管理概述
2.会话管理分类
3.Cookie概述和实现机制
4.Cookie的组成
5.Cookie的使用细节
6.Cookie的使用案例
7.HttpSession概述
8.会话域概念及使用场景分析
9.HttpSession的常用方法
10.HttpSession实现原理分析
11.客户端禁用Cookie的会话保持
12.HttpSession的钝化和活化
13.HttpSession的使用案例
第四步:了解JSP
1.JSP语法
2.JSP原理
3.JSP脚本片段&表达式
4.JSP声明&指令
5.JSP九大隐含对象
6.域对象使用
第五步:了解EL和JSTL
1.EL表达式简介
2.EL使用
3.EL取值原理
4.EL的11大隐含对象
5.EL执行运算
6.EL函数库
7.JSTL-核心标签库
8.JSTL-函数标签库
第六步:精通JavaScript
1.JavaScript嵌入方式
2. JavaScript基本语法
3. ECMA6新特性
4.JavaScript流程控制
5.数组、函数、对象的使用
6. JavaScript面向对象
7. 常用内置对象
8.JavaScript事件绑定/触发
9.JavaScript DOM操作及API
10.JavaScript BOM对象及API
第七步:了解JQuery
1.JQuery快速入门
2.JQuery语法详解
3.JQuery核心函数
4.JQuery对象/JavaScript对象
5.JQuery选择器
6.JQueryDOM操作
7.JQuery事件
8.JQuery动画效果
9.JQuery遍历
第八步:掌握Ajax
1.同步与异步应用场景
2.JS原生方式实现异步
3.JQuery方式实现异步
4.JSON数据格式介绍
5.JSON转换工具使用|
6. 异步实现分页案例
第九步:了解VUE
1.VUE概述
2.VUE入门案例
3.VUE模板语法
4.VUE的文本插值
5 .VUE的绑定属性
6 .VUE的条件渲染
7. VUE的列表渲染
8. VUE的事件绑定
9. VUE的表单绑定
10.VUE的组件
11.VUE的生命周期
12.VUE的axios异步
13.VUE与Element整合案例
第十步:熟悉Redis
1.NoSQL&Redis入门
2.Redis优势
3.Redis安装&启动
4.Redis五大数据类型和基本操作命令
5.Redis总体配置Redis.conf
6.Redis持久化(RDB和AOF)
7.Jedis
8. Redis数据删除策略
9. Redis数据淘汰策略
10.集群主从复制
11.集群哨兵模式
12.企业级解决方案
第一步:掌握Spring
1.框架简介
2.Spring概述
3.耦合与解耦
4.工厂设计模式
5.IoC概述及作用
6.Spring基于XML的IoC配置入门
7.Spring基于XML的IoC配置详解
8.依赖注入的概念
9.Spring中的依赖注入
10.Spring中多配置文件配置及问题分析
11.Spring基于XML和Mybatis的整合
12.Spring基于注解的IoC配置
13.常用注解的使用
14.Spring整合Junit
15.Spring高级分析之-IoC容器说明
16.Spring高级分析之-组件扫描器TypeFilter
17.Spring高级分析之-Import注解和自定义导入器
18.Spring高级分析之-BeanFactoryPostProcessor
19.Spring高级分析之-BeanPostProcessor
20.Spring高级分析之-InitializingBean
21.Spring高级分析之-FactoryBean
22.AOP编程思想,作用,优势及实现原理分析
23.代理模式和动态代理实现AOP思想的案例
24.Spring中的AOP简介和常用术语
25.Spring基于XML的AOP配置
26.5种通知类型分析
27.切入点表达式详解
28.Spring基于注解的AOP配置
29.Spring中AOP的高级分析之-EnableAspectjAutoProxy注解的解析分析
30.Spring中AOP的运行期增强的执行过程分析
31.Spring中事务的API详解
32.Spring基于XML的事务配置
33.Spring基于注解的事务配置
34.Spring事务高级分析之-TransactionTemplate源码分析
35.Spring事务高级分析之-DataSourceUtils源码分析
36.Spring事务高级分析之-TransactionSynchronizationManager源码分析
37.Spring事务高级分析之-TransactionEventListener注解的加载过程分析
38.Spring中的模板对象介绍
39.JdbcTemplate和NamedParameterJdbcTemplate的使用
40.RedisTemplate的使用|41.Spring事务设计的设计模式分析
第二步:掌握SpringMVC
1.SpringMVC概述
2.SpringMVC基于XML的环境搭建
3.SpringMVC基于Servlet3.0规范的纯注解环境搭建
4.纯注解环境搭建的入门案例执行过程分析
5.SpringMVC常用组件介绍
6.SpringMVC的 @RequestMapping注解详解
7.SpringMVC中的请求参数封装
8.SpringMVC中的表单校验相关注解
9.SpringMVC中和ServletAPI相关的注解使用详解
10.SpringMVC中控制器方法的返回值详解
11.SpringMVC中的异步交互和相关注解介绍
12.Rest风格URL详解
13.@PathVariable注解详解
14.Postman工具
15.跨域访问详解和 @CrossOrigin注解的使用
16.SpringMVC中的请求参数封装源码分析和运用的设计模式介绍
17.SpringMVC中的父子容器
18.SpringMVC中的异常处理
19.SpringMVC中的拦截器使用
20.SpringMVC中的文件上传|21.Spring SpringMVC Mybatis的整合
第三步:掌握MyBatis
1.概述
2.4MyBatis的快速入门
3.源码剖析
4.全局配置文件详解
5.映射配置文件详解
6.的相关API
7.增删改查案例
8.参数深入
9.结果集封装
10.连接池与事务深入
11.动态sql语句
12.多表查询
13.延迟加载策略
14.的注解开发
15.新增@SelectProvider@UpdateProvide
16.新增@InsertProvider@DeleteProvide
17.新增分页插件
18.新增学生系统改造
19.两种方式实现CRUD
20.日志集成
第四步:掌握Maven基本操作
1.Maven环境搭建
2.Maven构建&自动化构建
3.本地仓库&中央仓库
4.Maven创建Java、Web工程
5.pom.xml、依赖管理
6.坐标、依赖、生命周期等
7. IDEA下的Maven使用
8. pom文件依赖传递介绍
9. 依赖冲突的解决
10. Maven项目继承的关系
11. Maven项目聚合的关系
12. 分模块搭建聚合项目
13. 私有服务器仓库介绍和搭建
14. 本地资源上传到私有服务器
15. 从私有服务器下载资源到本地
16. 安装第三方资源到本地仓库
17. 安装第三方资源到私有服务器仓库
18. Maven多环境开发
19. 单元测试
20. 自定义插件
第五步:了解Zookeeper
1、初识ZooKeeper
2、ZooKeeper数据模型
3、ZooKeeper安装与配置
4、日志可视化
5、ZooKeeper常用命令(服务器、客户端命令)
6、ACL常用命令
7、四字常用命令
8、ZooKeeper集群搭建
9、ZooKeeper12306售票实战
10、Observer使用
11、ZooKeeper机制讲解(ZooKeeper选举、ZooKeeper脑裂效应等)
第六步:了解Dubbo
1.软件架构的演进过程
2.Dubbo简介
3.Dubbo架构
4.Dubbo服务提供方开发
5.Dubbo服务消费方开发
6.Dubbo-admin使用
7.Dubbo相关配置说明
8、监控中心
9、升级版Dubbo-admin使用
10、12种Dubbo高级特性
11、架构原理
12、工作原理与服务治理
13、心跳与通信
14、支持的注册中心和协议
第七步:掌握Spring Boot
1. SpringBoot介绍
2. SpringBoot的核心功能
3. SpringBoot的优势
4. SpringBoot入门程序
5. 起步依赖原理分析
6. 自动配置原理解析
7. 自定义起步依赖并实现自动配置
8. SpringBoot配置文件类型
9. 配置文件与配置类的属性映射方式
10. SpringBoot整合Mybatis
11. SpringBoot整合Junit
12. SpringBoot整合Redis
13. 自定义Starter
14. 事件监听
15. 初始化流程
第八步:了解RocketMQ
1、RocketMQ概述
2、搭建RocketMQ
3、RocketMQ-Console管理控制台
4、RocketMQ模式
5、SpringBoot 整合 RocketMQ
6、集群安装部署
7、基于MQ的分布式事务解决方案说明
第九步:掌握Spring Cloud
1. SpringCloud介绍和Dubbo对比
2. 服务注册中心Eureka介绍
3. Eureka服务端开发
4. 微服务开发并注册到Eureka服务注册中心
5. Eureka保护模式介绍
6. 客户端负载和服务端负载的介绍
7. Ribbon实现客户端负载均衡
8. Feign的介绍和实现
9. Feign工作原理和注意事项
10. 雪崩效应与熔断器介绍
11. 熔断器Hystrix使用
12. 网关介绍
13. 基于Gateway构建网关服务
14. 通过Gateway网关访问微服务
15. Spring Cloud Config介绍
16. 使用Git存储的方式实现配置管理
17. 微服务改造从配置中心获取配置信息
18. 服务总线Spring Cloud Bus介绍和应用
19、Eureka集群|20、Eureka Web介绍
21、Consul服务治理与配置管理
22、Nacos动态服务发现与配置管理
23、Sleuth链路追踪
24、Zipkin展示
25、config本地读取
26、Stream消息驱动
27、微服务Docker部署
第十步:了解Docker
1. Docker简介
2. 容器与虚拟机比较
3. Docker的安装和启动
4. Docker镜像命令介绍和应用
5. Docker容器命令介绍和应用
6. Docker部署Mysql
7. Docker部署Tomcat
8. Docker部署Nginx
9. Docker部署Redis
10. 容器保存转为镜
11. 镜像备份
12. 镜像恢复和迁移
13. Dockerfile介绍和常用指令
14. Docker Compose 常用命令
15. Docker私有仓库使用
第一步:了解数据结构
1. 顺序表
2. 链式表
3. 合并链表
4. 循环链表
5. 双向链表
6. 多项链表合并
7. 顺序栈
8. 栈的应用
9. 循环队列
10. 链式队列
11. 串的堆分配
12. 数组
13. 矩阵压缩
14. 矩阵压缩
15. 树
16. 图
17. 查找
18. 排序
第二步:刷算法题
以上技术栈的对应教程可以点击下面进行获取,相关进阶技术内容我会不断的进行更新,希望大家多点赞收藏关注。
点击获取上面Java系列教程地址
开发工具推荐:
Eclipse链接:https://pan.baidu.com/s/15jKXZ9Yeau7E6sj_K6uoag
提取码:a50w
IDEA链接:https://pan.baidu.com/s/1mVt_4iu0McpOxDGubJ9pMg
提取码:mq4x
Notepad工具链接:https://pan.baidu.com/s/1Hyyr4cz12fTXcZyEtSr8Jw
提取码:liep
所有版本JDK链接:https://pan.baidu.com/s/1zokDEBl0MqW770MNY_3o2A
提取码:hgpj
JavaWeb相关工具软件链接:https://pan.baidu.com/s/1xwIvRAaNGFyxWQFss_gQ1Q
提取码:061s
代码协作器工具链接:https://pan.baidu.com/s/11A-BCZ88-2XjK20KtoZQ5g
提取码:0dh0
数据库安装链接:https://pan.baidu.com/s/15rjI83T83m0DYhj3Tl3hZg
提取码:ym97
数据库GUI客户端工具链接:https://pan.baidu.com/s/1JtFJBeM_-sFqWketPEY4sQ
提取码:lq1r
项目管理工具链接:https://pan.baidu.com/s/1NDylRTrk8BIJgvgLwWBhZQ
提取码:vkg6
如果遇到链接失效的情况,请单独联系我获取新的链接。
点击进入Java大佬交流基地