一个很变态但可以让你迅速掌握Java的方法

从业十年,我想根据自己的行业经验给大家提一些建议。

跟其他行业相比,做Java开发的岗位确实算是高薪职业,我们那个时候起步的工资并不高,而看现在很多毕业的学生薪资都是8k、10k起步,工资越来越高是肯定的,因为现在都伴随着通货膨胀。

目前Java程序员如果拥有两年开发经验,他的薪资范围最少都要在15K这个阶段,所以就导致来转行学习Java的人越来越多,毕竟现在做其他很多行业都赚不到什么钱。

但是高薪并没有像大家想的那样容易拿到,很多人都认为身边的朋友有做Java开发月薪都几万几万的,但是我们往往忽略了他们在学习技术上付出了多少辛苦,只是看到了别人表面的风光而已。但我认为问题的关键还是很多人忽略了学习Java语言的难度,想转行学习Java的人虽然不少,但最后真正能成功的也就是百分之一二的概率,这些人往往学习能力强,有强烈的赚钱欲望,并且不怕吃学习的苦,肯付出时间去研究学习。而很多人都想走捷径,以为参加个培训班就可以高薪就业,有这样想法的人都想的太简单了,线下培训班的水有多深,懂行的人都明白。

我用了十五天的时候整理了今年我认为Java就业的主流技术栈大纲,由于内容实在太多,我就能弄成了一张长图,私信哪吒,直接管我要。

一、自学的初学者学习Java过程中的误区

1、学习Java之前没有制定合理系统的学习规划,不了解初级就业水平应该学习什么主要技术,造成学习没有目标,很盲目的学,后面造成的结果就是对自己产生怀疑,最终放弃。

2、学习的内容过于陈旧,都是已经被企业淘汰的方法,无法满足企业招聘的标准,在面试中很难回答上面试官的问题,最终找不到工作。

3、整个过程的学习效率很低,罪魁祸首是遇到问题无法在短时间内解决,严重拖延了后面的学习,浪费了很多时间。当这类问题多的时候,学习者就会萌生退缩的想法,因为总是遇到坎坷,人的内心都受不了,最终放弃学习。

4、不了解学习编程最终要干什么,像无头苍蝇一样没有方向。其实学习编程最终的目的是为了开发出好的软件产品,最终给大众使用从而方便生活,但很多学习者并不知道这点。

5、无脑的刷视频,却很少写代码,不懂得最终要把学到的知识落实到键盘上编程代码。总是认为自己会了,但是让他写却写不出来,这是由于学习方法错误造成的,所谓的学了其实和没学并没有太大区别。

二、正确的学习步骤如下

1、 首选要去了解清楚初步的就业标准是什么,应该学习什么内容,把整个过程的目标明确。

2、 规定好自己每天在什么时间段进行学习,每天的这个时间只留给自己学习Java,不要被其他事情所干扰。

3、 一天的时间内,只学两个小时的新知识,其他的时间要进行大量的代码编写,提高自己编码的能力,把大量的时间都用在写代码中。

4、 就目前的就业标准来看,我之前带我弟弟学习Java,大概用了150天的时间,带他把Java就业的主要知识学会,在北京找到了一份11K的工作(仅代表本人个人收益)。对于那些工作的人来说,能坚持学习150天并不容易,所以这非常考验人的毅力。

5、如果你遇到了解决不了的难题,立刻先去百度进行查找,由于目前Java技术的生态圈比较成熟,大部分的问题在百度都可以解决。如果你解决不了,可以加一些氛围好的Java交流学习群,多认识一些大佬可以让你少走很多弯路,即使花点钱也是值得的,毕竟能就业后一个月的工资都不低。

6、 要对项目有所重视,学习编程不做项目的人与没学过的人并没有太大额差别,所以在每个阶段学完后,必须要进行项目的练习,如果你不知道去哪里找项目实战,可以向我索要。

7、 当你学完所有主流框架后,要把之前的项目都重做一遍,用框架搭建至少两个大型项目才能去找工作,没有项目作品,别想着有公司会要你。

8、 学完全部内容,恭喜你距离成功之差最后一步,尽快入职一家公司,在工作中才是提升最快的。

三、Java技术栈的东西还是非常多的,下面分享一下学习大纲。

  1. 2023最新最全的Java学习路线总结,从入门到就业(大概六个月);
  2. 给出目标、学习建议、关键知识点、最优资源以及各类资源推荐;
  3. 按学习的先后顺序,分阶段,有时间规划的持续学习。

四、Java基础

所谓基础不牢,地动山摇。有一个好的基础,才是Java学习的关键。

前期准备

  1. 开发环境:jdk1.8
  2. 开发工具:IDEA,不建议使用eclipse

1、Java 基础

Java学习路线总结(思维导图篇)

【Java基础知识 1】编程语言类型有哪些?我心中的TOP1编程语言,什么是java跨平台性?

【Java基础知识 2】配置java环境变量

【Java基础知识 3】为何要配置环境变量?

【Java基础知识 4】秒懂数组拷贝,感知新境界

【Java基础知识 5】装箱和拆箱

【Java基础知识 6】Java异常有哪几种

【Java基础知识 7】Java面向对象简介

【Java基础知识 8】Java 基本数据类型

【Java基础知识 9】java运算符简介

【Java基础知识 10】Java操作符有哪些?

【Java基础知识 11】Java控制台输入输出语句

【Java基础知识 12】Java对象、类、抽象类、构造函数

【Java基础知识 13】JDK 和 JRE 、final 与 static 、堆和栈

【Java基础知识 14】java final关键字

【Java基础知识 15】Java控制流程语句

【Java基础知识 16】禁止使用Lombok,在Lombok的加持下,“小狗”.equals(“老狗”) = true

【Java基础知识 17】Java继承和多态

【Java基础知识 18】java接口和抽象类的异同,default关键字

【Java基础知识 19】Java接口的作用和意义

【Java基础知识 20】Java初始化、构造器、对象创建的过程

【Java基础知识 21】java object类

【Java基础知识 22】java字符串简介

【Java基础知识 23】缓冲区数据结构bytebuffer

【Java基础知识 24】Java枚举类型enum用法

【Java基础知识 25】Java类加载与初始化

【Java基础知识 26】可变参数列表

【Java基础知识 27】Java代理类详解

【Java基础知识 28】Java反射机制原理详解

【Java基础知识 29】Java Date类详解

【Java基础知识 30】Date类、Calendar类、date转calendar

【Java基础知识 31】Java数组详解

【Java基础知识 32】this关键字、SringBuilder中的this

【Java基础知识 33】Java 中的 static 关键字详解

【Java基础知识 34】Java序列化与反序列化详解

【Java基础知识 35】一文搞定Java IO流,输入流、输出流、字符流、缓冲流,附详细代码示例

【Java基础知识 36】选择最适合自己的NIO, 一探流技术

【Java基础知识 37】Java内部类、java内部类的作用

【Java基础知识 38】Java是动态语言吗?

【Java基础知识 39】Java泛型方法的定义和使用

【Java基础知识 10】Java泛型方法的定义和使用

【Java基础知识 41】GET和POST的区别、堆和栈的区别

【Java基础知识 42】finalize、引用计数、JVM停止复制、JVM即时编译器

【Java基础知识 43】Java 字节码,javap命令,解读字节码清单

【Java基础知识 44】jd-gui反编译class文件,解决jd-gui中文乱码问题

【Java基础知识 45】类加载器,双亲委派机制

【Java基础知识 46】GET和POST的区别,java模拟postman发post请求

【Java基础知识 47】一文读懂JVM类加载机制过程及原理

【Java基础知识 48】Java日志框架,Log4j日志级别

【Java基础知识 49】探索Apache HttpClient超时时间如何设定?

3、Java8新特性

【Java8 新特性 1】java8 lambda表达式

【Java8 新特性 2】java8 lambda表达式进阶

【Java8 新特性 3】java8 supplier

【Java8 新特性 4】java8 optional

【Java8 新特性 5】Java 8 stream的详细用法

【Java8 新特性 6】java8 predicate

【Java8 新特性 7】java函数式接口

4、Java集合

【Java集合 1】java集合有哪些

【Java集合 2】Java数组、java数组初始化、java数组赋值

【Java集合 2】list循环删除问题

【Java集合 3】List<T>和List<?>的区别

【Java集合 4】java character

【Java集合 5】HashMap + 软引用进行缓存

【Java集合 6】arraycopy方法的作用

【Java集合 7】java queue用法

【Java集合 8】Java中的queue和deque

【Java集合 9】Java集合,Collection接口,Iterator接口

【Java集合 10】Java链表、散列表、HashSet、TreeSet

【Java集合 11】Java映射Map、弱散列映射WeakHashMap

【Java集合 12】LinkedHashSet、LinkedHashMap、EnumSet、EnumMap

【Java集合 13】队列、双端队列、优先队列

【Java集合 14】Java中的ConcurrentHashMap中为什么不能存储null?

【Java集合 15】ArrayList的线程安全类CopyOnWriteArrayList

【Java集合 16】Java数组转集合list异常

5、Java高并发

【Java 多线程 1】java多线程并发编程

【Java 多线程 2】java线程池原理

【Java 多线程 3】理解ThreadLocal

【Java 多线程 4】Java守护线程

【Java 多线程 5】Java多线程之Executor框架

【Java 多线程 6】countdownlatch用法

【Java 多线程 7】通过socket、多线程、动态代理、反射 实现RPC远程方法调用

【Java 多线程 8】一篇文章带你彻底吃透Java NIO

【Java 多线程 9】Java同步代码块详解

Java高并发编程实战1,那些年学过的锁

Java高并发编程实战2,原子性、可见性、有序性,傻傻分不清

Java高并发编程实战3,Java内存模型与Java对象结构

Java高并发编程实战4,synchronized与Lock底层原理

Java高并发编程实战5,异步注解@Async自定义线程池

Java高并发编程实战6,通过AQS源码分析lock()锁机制

Java高并发编程实战7,ConcurrentHashMap详解

Java高并发编程实战8,同步容器与并发容器

Java高并发编程实战9,一文弄懂Java线程池 + Runnable多线程 + 调用WebService接口

Java高并发编程实战10,Java文件加锁机制

Java高并发编程实战11,一个关于 i++ 和 ++i 的面试题打趴了所有人

Java高并发编程实战12,越细粒度的锁越好吗?产生死锁怎么办?

Java高并发编程实战13,简单聊一聊公平锁和非公平锁,parallel并行流

Java高并发编程实战14,强制禁止,线程池不允许使用Executors创建

6、Java代码实例

【Java 代码实例 1】java反射三种方法

【Java 代码实例 2】利用Java反射实现两个具有相同属性bean赋值

【Java 代码实例 3】new BeanHandler<Student>(Student.class);《泛型,反射,一种思想》

【Java 代码实例 4】javacompiler编译多java文件

【Java 代码实例 5】HashMap转JavaBean

【Java 代码实例 6】FileUtils、StringUtil、CollectionUtils、ArrayUtils(附代码示例)

【Java 代码实例 7】jsoup解析html

【Java 代码实例 8】qrcode生成二维码

【Java 代码实例 9】Java通过Process执行C# exe程序

【Java 代码实例 10】Google核心库GUAVA

【Java 代码实例 11】利用百度语音识别技术实现文字转语音的应用

【Java 代码实例 12】java math.random()用法

【Java 代码实例 13】跟同事杠上了,Apache Beanutils为什么被禁止使用?

【Java 代码实例 14】Java BeanUtils用法详解,附源码分析

【Java 代码实例 15】为什么人们宁可用Lombok,也不把成员设为public?

【Java 代码实例 16】Java中常见的编码集问题

【Java 代码实例 17】Java操作pdf的工具类itext

五、MySQL数据库

MySQL数据库基础知识1,数据类型与三范式

MySQL数据库基础知识2,那些年学过的事务

MySQL数据库基础知识3,mysql索引详解,上篇

MySQL数据库基础知识4,mysql索引详解,下篇

MySQL数据库基础知识5,为什么查询速度会慢

MySQL数据库基础知识6,缓存表、视图、计数器表、自定义变量

MySQL数据库基础知识7,查询的执行过程

MySQL数据库基础知识8,分区表详解

MySQL数据库基础知识9,InnoDB和MyISAM的数据分布对比

MySQL数据库基础知识10,MySQL全文索引

MySQL数据库基础知识11,查询缓存

MySQL数据库基础知识12,MySQL单列索引和联合索引

MySQL数据库基础知识13,MySQL 函数、数字函数、日期函数、运算符

MySQL数据库基础知识14,mysql索引详解

MySQL数据库基础知识15,MySql基础知识总结(SQL优化篇)

MySQL数据库基础知识16,千万级数据,如何做性能优化?分库分表、Oracle分区表?

MySQL数据库基础知识17,SQL性能优化的21个小技巧

MySQL数据库基础知识18,SQL代码编码原则和规范

MySQL数据库基础知识19,学习MySQL必须了解的13个关键字,你get了吗?

MySQL数据库基础知识20,MySQL + PostgreSQL批量插入更新insertOrUpdate

MySQL数据库基础知识21,PostgreSQL数据库备份和恢复

六、Spring Boot框架(35天)

@RequestParam、@ModelAttribute、@RequestBody的区别

hibernate还有人用吗

为什么90%的开发者放弃使用Hibernate,而选择MyBatis?

为什么Mybatis-plus这么好用,反而用的不多?

mybatis是如何防止sql注入的

SpringBoot学习路线总结(附思维导图)

Spring Boot入门篇 | Spring Boot 1

springboot增删改查 | Spring Boot 2

Thymeleaf的基本语法 | Spring Boot 3

springboot整合mybatis | Spring Boot 4

Spring Boot Jpa 的使用 | Spring Boot 5

springboot自定义starter | Spring Boot 6

springboot实现增删改查实例 | Spring Boot 7

Okhttp实现GitHub第三方登录 | Spring Boot 8

springboot整合mybatis实现增删改查 | Spring Boot 9

Spring Boot + mybatis + Thymeleaf 分页示例(纯底层代码,不是pagehelper)| Spring Boot 10

springboot怎么打包部署 | Spring Boot 11

springboot整合Redis | Spring Boot 12

springboot实现热部署 | Spring Boot 13

springboot启动类原理解析 | Spring Boot 14

springboot常用注解介绍及使用 | Spring Boot 15

ApplicationContextAware使用理解 | Spring Boot 16

通过webservice实现springboot项目间接口调用与对象传递

Springboot配置两个数据库 | Spring Boot 17

springboot整合vue 实现CRUD | Spring Boot 18

springboot整合阿里云OSS实现云存储 | Spring Boot 19

springboot + Vue 整合阿里云视频点播 | Spring Boot 20

springboot部署 | Spring Boot 21

mybatis逆向工程 | Spring Boot 22

jdbctemplate使用 | Spring Boot 23

springboot 解决跨域问题 | Spring Boot 24

rabbitmq基础知识总结 | Spring Boot 25

Spring Boot整合easyExcel | Spring Boot 26

Spring Boot整合流控组件Sentinel | Spring Boot 27

springboot整合全文搜索引擎Elasticsearch | Spring Boot 28

springboot整合Nginx实现负载均衡反向代理 | Spring Boot 29

springboot整合MongoDB实现增删改查 | Spring Boot 30

mongodb文档基本操作简介 | Spring Boot 31

mongodb的优缺点及应用场景 | Spring Boot 32

Redis是干什么的,Redis常用语法每日一练 | Spring Boot 33

ShardingSphere分库分表教程 | Spring Boot 34

spring security原理和机制 | Spring Boot 35

七、微服务Spring Cloud

【微服务 Spring Cloud 1】一篇打通微服务架构,nacos + gateway + Redis + MySQL + docker

【微服务 Spring Cloud 2】为什么90%的开发者放弃传统的技术架构,而选择微服务?

【微服务 Spring Cloud 3】云原生是实现可观测平台的唯一出路?码农:夸张了

【微服务 Spring Cloud 4】Java工程师需要学习云原生吗?

【微服务 Spring Cloud 5】云原生中为什么需要API网关?

【微服务 Spring Cloud 6】服务如何拆分?使用微服务的注意事项?

【微服务 Spring Cloud 7】一文讲透微服务核心架构(注册中心、服务通信、服务监控、服务追踪、服务治理)

【微服务 Spring Cloud 8】如何对微服务进行有效的监控?

【微服务 Spring Cloud 9】分布式系统如何进行数据分区

八、Redis中间件

Redis中间件1,传统关系型数据库和NoSQL数据库有何区别?

Redis中间件2,2023年再不会Redis,就要被淘汰了

Redis中间件3,下单时如何保证数据一致性?

Redis中间件4,本地缓存、Redis数据缓存策略

Redis中间件5,兄弟,王者荣耀的段位排行榜是通过Redis实现的?

Redis中间件6,redis的五种数据类型

Redis中间件7,Redis缓存穿透、击穿、雪崩到底是个啥?7张图告诉你

Redis中间件8,图解Redis,谈谈Redis的持久化,RDB快照与AOF日志

Redis中间件9,Redis bigkeys命令会阻塞吗?怎么解决?

Redis中间件10,图解Redis,谈谈Redis的持久化,RDB快照与AOF日志

Redis中间件11,Redis集群的最大槽数为什么是16384个?

Redis中间件12,Redis单线程还是多线程?IO多路复用原理

Redis中间件13,MySQL数据库和Redis缓存一致性的更新策略

Redis中间件14,Redis分布式锁的实现方式

Redis中间件15,Redis分布式锁的实现方式、实现原理

Redis中间件16,Redis分布式缓存、秒杀

Redis中间件17,Redis布隆过滤器的原理和应用场景,解决缓存穿透

Redis中间件18,Redis缓存预热、缓存穿透、缓存击穿、缓存雪崩,Redis布隆过滤器怎么实现?

Redis中间件19,Redis主从架构、数据同步原理、全量同步、增量同步

Redis中间件20,工作5年,没用过分布式锁,正常吗?

Redis中间件21,神仙打架,事务 vs 管道,何时使用何种?

离谱!面试为啥都问Kafka?赶紧补一下

九、MongoDB数据库

MongoDB数据库1,既然有MySQL了,为什么还要有MongoDB?

MongoDB数据库2,MongoDB 4.0支持事务了,还有多少人想用MySQL呢?

MongoDB数据库3,MongoDB的基本概念与基本数据类型

MongoDB数据库4,MongoDB数据库 | 三分钟学会MongoDB索引,快来看看与MySQL索引有何不同?

MongoDB数据库5,MongoDB数据库性能监控详解

MongoDB数据库6,技术瓶颈?如何解决MongoDB超大块数据问题?

MongoDB数据库7,一次线上事故,我顿悟了MongoDB的精髓

MongoDB数据库8,MongoDB高可用与分片

MongoDB数据库9,MongoDB查询与游标,彻底玩转分布式文件存储

十、Netty网络编程

Netty网络编程实战1,搭建第一个Netty服务器

Netty网络编程实战2,使用Netty开发聊天室功能

Netty网络编程实战3,使用Netty远程传输文件

Netty网络编程实战4,使用Netty实现心跳检测机制

十一、23种设计模式

java设计模式1,单一职责原则

java设计模式2,开闭原则

java设计模式3,里氏替换原则

java设计模式4,迪米特法则

java设计模式5,接口隔离原则

Java设计模式6,依赖倒置原则

java设计模式7,一看就懂,架构灵魂,工厂方法模式

Java设计模式8,校验、审批流程改善神器,责任链模式

Java设计模式9,模板方法模式

Java设计模式10,建造者模式

【源码分析设计模式 1】JDK中的单例模式

【源码分析设计模式 2】JDK中的抽象工厂模式

【源码分析设计模式 3】JDK中的工厂模式

【源码分析设计模式 4】JDK中的原型模式

【源码分析设计模式 5】Java I/O系统中的装饰器模式

【源码分析设计模式 6】Mybatis中的组合模式

【源码分析设计模式 7】Integer中的享元模式

【源码分析设计模式 8】mybatis中的代理模式

【源码分析设计模式 9】SpringIOC中的模板方法模式

【源码分析设计模式 10】SpringMVC中的适配器模式

【源码分析设计模式 11】SpringMVC中的策略模式

【源码分析设计模式 12】JDBC中的桥接模式

【源码分析设计模式 13】命令模式

十二、Dubbo

Dubbo高手之路1,Dubbo原理和机制,Dubbo的核心组件

Dubbo高手之路2,6种扩展机制详解

Dubbo高手之路3,Dubbo服务消费详解

Dubbo高手之路4,Dubbo服务提供者详解

Dubbo高手之路5,Dubbo服务注册与发现

Dubbo高手之路6,Dubbo 服务治理详解

十三、JavaScript零基础入门

JavaScript零基础入门 1:JavaScript表格简介

JavaScript零基础入门 2:JavaScript数据类型简介

JavaScript零基础入门 3:javascript运算符有哪些

JavaScript零基础入门 4:javascript对象有哪些

JavaScript零基础入门 5:JavaScript函数详解

JavaScript零基础入门 6:JavaScript数组详解

JavaScript零基础入门 7:JavaScript基础函数

JavaScript零基础入门 8:JavaScript通过document获取节点元素

JavaScript零基础入门 9:JavaScript读取元素的样式

JavaScript零基础入门 10:JavaScript中的正则表达式

JavaScript零基础入门 11:JavaScript实现图片上传并预览

JavaScript零基础入门 12:JavaScript整合JqGrid完整实例

JavaScript零基础入门 13:DOM规范中的MutationObserver接口

JavaScript基础知识总结 14:学习JavaScript中的File API、Streams API、Web Cryptography API

JavaScript基础知识总结 15:JavaScript客户端存储

JavaScript基础知识总结 16:如何写出优雅的JavaScript代码

JavaScript基础知识总结 17:JavaScript表单脚本

JavaScript基础知识总结 18:dom基本操作

JavaScript基础知识总结 19:JavaScript的内存与性能问题

JavaScript基础知识总结 20:谈谈关于innerHTML的性能问题?

JavaScript基础知识总结 21:JavaScript看这一篇就够了,简单全面一发入魂

JavaScript基础知识总结 22:JavaScript数组

JavaScript基础知识总结 23:JavaScript 网络请求与远程资源

JavaScript基础知识总结 24:JavaScript面试题看这一篇就够了,简单全面一发入魂

十四、Vue基础知识

Vue基础知识总结 1:Vue入门

Vue基础知识总结 2:vue 动态绑定

Vue基础知识总结 3:vue常用标签

Vue基础知识总结 4:vue组件化开发

Vue基础知识总结 5:vue实现树形结构

Vue基础知识总结 6:vue双向绑定原理

Vue基础知识总结 7:插槽slot与vue导入导出

Vue基础知识总结 8:Node.js简介

Vue基础知识总结 9:vue webpack打包原理

Vue基础知识总结 10:使用vue-cli(vue脚手架)快速搭建项目

Vue基础知识总结 11:前端路由vue-router

Vue基础知识总结 12:ES6 promise的用法总结

Vue基础知识总结 13:从零开始搭建Vue项目

Vue基础知识总结 14:Vuex是做什么的?

十五、数据结构与算法

Java基础算法看这一篇就够了,简单全面一发入魂

【数据结构与算法 1】稀疏数组

【数据结构与算法 2】循环队列

【数据结构与算法 3】单链表

【数据结构与算法 4】单链表面试题

【数据结构与算法 5】环形链表解决约瑟夫问题

【数据结构与算法 6】栈实现综合计算器

【数据结构与算法 7】中缀表达式转为后缀表达式,实现逆波兰计算器

【数据结构与算法 8】递归之迷宫问题

【数据结构与算法 9】谁发明的八皇后,本宫赐你一丈红

【数据结构与算法 10】算法的时间复杂度和空间复杂度

【数据结构与算法 11】常见的八大排序算法

【数据结构与算法 12】二分查找、插值查找、斐波那契查找

【数据结构与算法 13】二叉树

【数据结构与算法 14】线索化二叉树的作用

你可能感兴趣的:(搬砖工逆袭Java架构师,微服务,高并发,云原生,学习,程序人生)