Java学习指南从入门到入土

Java学习指南从入门到入土

本身其实只是刚刚入门,只是经历了两年时间的风吹雨打,经历了各种bug的折磨和学习各种框架的辛酸,才有得现有的 刚刚入门。有句老话说的好叫做 从入门到放弃人生不易要及时放弃

来吧开始此次的讲话

好多事情是没有捷径的,虽然很多事情没有捷径,但是却是有一定方法的,只要掌握了方法就能比其他人快一些达到自己的目的。

  1. 善用工具 建立自己的工作集非常重要。开发中使用很多的工具,不管是编辑器、调试器还是监控工具,每个人都喜欢争论哪种IDE 更好。然而这并没有多大意义。关键是能够熟练的使用自己喜欢的工具,快速的掌握各种快捷方式和可定制的功能,从而大大的提高工作效率。;
  2. 编码习惯 在我们写代码的同时一定好考虑好以后维护这段代码的可能会不是自己。好的代码规范是必要的,清晰的注释会让你不太可能受到你的祖先的欢迎 这是重点要画圈以后要考。对于代码风格来说,有需要在线争议,最重要的是保持项目内的统一;
  3. 独立思考 合格的程序员解决问题,而不是实现解决方案。多去博客上看些文章,多留意哪些业界大佬们的动态;
  4. 先思考后行动 写代码的时候先想清楚了在下笔,而不是写出一堆代码,然后在开始修bug。尽管自己已经写了那么多bug 了,但是在修bug 的时候,多看看上下文,搞明白为什么会出现bug,修改这个bug 可能带来的影响,然后在修改。程序员成长最快的一个方法就是多修bug,修别人修不了的bug,但是在此之前要搞清楚bug 的缘由,这样才能避免类似的错误,有所收获;
  5. 不要总是说不会 作为程序员,总有一些工作是以前没有做过的,也行来自产品人员的需求,也也许来过项目自发的优化。但是在面临未知的问题时、挑战时,不要总去习惯的说:不会、没办法、不可能、实现不了这样的话语,这样的程序员算不上合格的程序员,除非你给自己已经留好了退路准备回家种地。当然也不要盲目自信,马上拍拍自己的胸脯让我来我能行,这样往往是坑自己。所以在面对新的需求,谨慎对待,即不轻易否决也不随意承诺,而是在理清需求先研究一下,评估是否能完成,需要的资源和时间;

Java 学习体系

  • Java-SE 阶段

  1. Java概述

计算机发展史;Java的诞生环境;Java名字的由来;Java版本分类;Java优缺点;JVM的概念;垃圾回收机制;Java环境搭建;JDK与JRE;Java的编译;Java的注释;Java的开发工具;JDK的常用命令

  1. 变量与常量

Java常量;二进制;八进制;十进制;十六进制;声明与复制;命名规范;关键字与保留字;数据类型;字符编码;String类;基本数据类型和引用;

  1. 运算符

算数运算符;关系运算符;赋值运算符;算数运算符优先级;类型转换;逻辑运算符;位运算符;位运算;正则表达式;

  1. 控制流程

顺序结构;分支结构;多分支结构;循环结构;递归结构;

  1. 工具类

封箱装箱;StringBuffer和StringBuilder;Scanner键盘输入;System类;Runtime类;Object类;Math类;Random类;Data类;Calendar类;Unicode编码;DataFormate类;SimpleDataFormate类;

  1. 数组

线性数组结构;一维数组;二维数组;多维数组;数组的遍历;数组的扩容;数组的拷贝;数组的内存;选择排序;冒泡排序;快速排序;二分查找法;

  1. 面向对象

面向过程与面向对象;类与对象;属性和方法;this关键字;super关键字;final关键字;对象内存的分配;封装;构造器;类的继承;方法调用过程;类的初始化过程;方法重载;方法重写;接口;抽象类和抽象方法;内部类;枚举类;对象于垃圾回收机制;修饰符的适用范围;

  1. 异常

Throwable;Exception;Error;异常的处理;异常的声明;异常的重写;自定义异常;主动抛出异常;异常的捕获;try、cacha、finally的执行过程;

  1. 泛型

泛型的语法;泛型的通配符;自定义泛型类;自定义泛型方法;

  1. 集合

Collecation;Map;List;Set;ArrayList;LinkedList;Vector;HashSet;TreeSet;SortedSet;HashMap;HashTable;SortedMap;TreeMap;Properties;分析底层源码;Collections工具类;Iterator迭代器;

  1. IO流

File;FileReader;FileWriter;BufferRead;BufferWriter;FileInputStream;FileOutputStream;ObjectInputStream;ObjectOutpuStream;InputStreamRead;OutputStreamWriter;DataOutputStream;DataInputStream;BufferInputStream;BufferOutputStream;PrintStream;

  1. 多线程

多线程应用场景;进程与线程;同步与异步;线程的分类;线程的创建;线程的运行;线程的安全;线程的方法;Thread;ThreadLocal;Runnable;synchronized;lock;volatile;join;sleep;start;wait;notify;堵塞队列与非堵塞队列;线程池的目的;线程池的创建;合理配置线程池;轻量锁;重量锁;重入锁;悲观锁;乐观锁;读写锁;原子类;CAS无锁;自旋锁;AQS有锁;非公正锁;公正锁;互斥锁;排它锁;分布式锁;死锁;

  1. 类加载

类加载的过程;JVM与类;类的初始化顺序;类加载器;Class对象;

  1. 反射

Class对象;私有属性;子类与父类;通过反射获取类;通过反向获取属性;通过反射获取方法;通过反射获取父类;通过反射获取泛型;通过反射获取接口;反射机制在框架设计中的应用

  1. 网络

网络通讯基础;五层网络模型;七层网络模型;IP与端口;BIO/NIO/AIO;UDP协议;TCP/IP协议;HTTP协议;HTTPS协议;DNS解析过程;CND内容分发;Socket通讯;HttpClient通讯;半双工与全双工;

  1. 数据结构与算法

数据结构;非线性结构;单项链表;双向链表;栈和队列;复杂度;数组;排序;查找;树状结构;二叉树;红黑树;集合;

  1. MySQL

NoSQL与SQL;SQL语句;数据库概述;数据库的创建;表的创建;数据库的客户端;主键;外键;索引;数据库的连接;数据库与表的编码;SQL优化

  1. JDBC

JDBC的概述;什么是驱动;连接MySQL;SQL注入;防止SQL注入;手动封装JDBC工具类;对数据源dbcp、c3p0、druid的使用;对JdbcTemplate工具类的使用;

  1. 事务管理

事务的概述;事务的隔离级别;ACID理论;CAP理论;BASE理论;2CP;3CP;刚性事务;柔性事务;传统项目事务;分布式项目事务;

  1. 设计模式

设计模式原则;设计模式目的;设计模式思想;创建型模式;单例模式;抽象工厂模式;原型模式;创建者模式;工厂模式;结构型模式;适配器模式;桥接模式;装饰模式;组合模式;外观模式;享元模式;代理模式;行为型模式;模板方法模式;命令模式;访问者模式;迭代器模式;观察者模式;中介者模式;备忘录模式;解释器模式;状态模式;策略模式;职责链模式

  1. JDK1.9新特性

Lambda表达式;四大核心函数式接口;消费型;供给型;函数型;断定型;Stream流;顺序流;并行流;数组流;递代流;生产流;过滤流;截断流;跳过流;筛选流;转换流;查找流;判断流;

  1. Java-SE 总结

Java概述;变量与常量;运算符;控制流程;工具类;数组;面向对象;异常;泛型;集合;IO流;多线程;类加载;反射;网络;数据结构与算法;MySQL;JDBC;事务管理;设计模式;JDK1.9新特性

  • Java-EE 阶段

  1. JavaWeb

TCP/IP协议;HTTP协议;HTTPS协议;DNS解析过程;WebSocket;Servlet;JSP;Filter;Listener;MVC模型;JSTL;Tomcat;HTML;JS;CSS;Jquey;网络安全;Junit;数据库连接池

  1. Mybatis

MyBatis的概述;安装和配置Mybatis;Mybatis的简单使用;Mybatis的注解使用;Mybatis的xml使用;Mybatis的动态SQL标签使用;Mybatis的缓存;Mybatis的逆向生成generator;Mybatis通用Mapper的使用;SQL注入问题;ACID理论;

  1. Spring

Spring的概述;安装和配置Spring;Spring的简单使用;IOC容器;DI注入;AOP思想;SPEL表达式;CRON表达式;Task任务调度;生命周期;Bean初始化过程;Spring事务及传播行为;Spring中的常用注解;Mybatis与Spring的整合;

  1. SpringMVC

SpringMVC的概述;安装和配置SpringMVC;SpringMVC的简单使用;拦截器;过滤器;视图解析器;全局异常处理;请求到响应的过程;SpringMVC中的常用注解;Mybatis与Spring与SpringMVC的整合;

  1. 版本管理工具

版本管理工具的概述;git的概述;git的安装和配置;git的使用;svn的概述;svn的安装和配置;svn的使用;项目共享;拉取项目;创建分支;管理分支;合并分支;本地仓库;提交到本地;提交到远程;解决冲突;

  1. 依赖管理工具

依赖管理工具的概述;mavne的概述;mavne的安装和配置;mavne的使用;mavne的常用命令;gradle的概述;gradle的安装和配置;gradle的使用;依赖管理;GAV的概念;私服介绍;仓库概念;设置远程仓库源;多模块和继承使用;父子工程的概念;

  1. Linux

Linux的概述;Liunx的起源;Linux的分类;Centos7的概述;Centos7的安装和使用;Centos7的常用命令;

  1. Redis

Redis的概述;NoSQL与SQL;Redis的安装;Redis的使用;Redis的常用命令;内存与磁盘的性能区别;Redis的集群;Redis的特点;

  1. Nginx

Nginx的概述;安装和配置Nginx;Nginx的应用场景;反向代理;location正则表达式;负载均衡;实现tcp四层负载均衡;搭建nginx+keepalived+lvs双机主备24小时持续运行;搭建nginx+tomcat动静分离;

  1. Netty

Netty的概述;安装和配置Netty;传输协议;线程模型;API的使用;Netty相比于其他NIO框架的特点;

  1. Zookeeper

Zookeeper的概述;Zookeeper的应用场景;Zookeeper的原理分析;

  1. Dubbo

Dubbo的概述;Dubbo+zookeeper的使用;注册中心的安装启动;监控中心的安装启动;生产者和消费者的概念;dubbo在SSM框架中的整合;

  1. 模板引擎

Thymeleaf的概述;Freemarker的概述;常用语法及使用;

  1. SpringBoot

SpringBoot的概述;安装和配置SpringBoot;微服务的概述;RPC通讯概述;restful风格概述;整合lombok;整合jsp;整合freemarker;整合thymeleaf;整合log4j;整合mybatis;整合通用mapper;整合pageHelper;整合多数据源;多环境配置;等等;事务管理;ACID理论;分布式事务问题;SpringBoot常用注解;SpringBoot打包;SpringBoot热部署;SpringBoot性能优化;SpringBootActuator监控中心;

  1. Java-EE 总结

JavaWeb;Mybatis;Spring;SpringMVC;版本控制工具;依赖管理工具;Linux;Redis;Netty;Zookeeper;Dubbo;模板引擎;SpringBoot;

  • Java 分布式架构

  1. ActiveMQ

ActiveMQ的概述;安装配置ActiveMQ;使用ActiveMQ;原理解刨;搭建ActiveMQ集群;发布订阅概述;

  1. RabbitMQ

RabbitMQ的概述;安装配置RabbitMQ;使用RabbitMQ;原理解刨;搭建RabbitMQ集群;交换机的概述;简单模式的概述;工作模式的概述;发布订阅模式的概述;路由模式的概述;主题模式的概述;消息确认机制;自动应答机制;RabbitMQ死信队列;

  1. Kafka

Kafka的概述;安装配置Kafka;使用Kafka;原理解刨;搭建Kafka集群;Broker;Topic;Message;Partition;Segment;Producer;Consumer;Consumer Group;Offset;储存策略;

  1. RocketMQ

RocketMQ的概述;安装配置RocketMQ;使用RocketMQ;原理解刨;搭建RocketMQ集群;

  1. ElasticSearch

ElasticSearch的概述;安装配置ElasticSearch;使用ElasticSearch;执行流程;搭建ElasticSearch集群;各种查询;搜索优化;对kibana的使用;对logstash的配置;

  1. FastDFS

FastDFS的概述;安装配置FastDFS;执行流程;通过nginx访问fastdfs;seo优化;

  1. MongoDB

MongoDB的概述;安装配置MongoDB;丢失数据问题;备份与恢复;复制底层实现原理;

  1. SpringBoot

SpringBoot的概述;安装和配置SpringBoot;SpringBoot的常用注解;整合ActiveMQ;整合RabbitMQ;整合Kafka;整合RocketMQ;整合ElasticSearch;整合MongoDB;SpringData全家桶的整合;

  1. SpringCloud

SpringCloud的概述;安装和配置SpringCloud;SpringCloudEureka;SpringCloudRibbon;SpringCloudHystrix;SpringCloudZuul;SpringCloudConfig;SpringCloudSleuth;SpringCloudZookeeper;SpringCloudRedis;SpringCloudDubbo;原理解刨;SpringCloud常用注解

  1. SpringCloudAlibaba

SpringCloudAlibaba的概述;Sentinel;Nacos;Apollo;

  1. ServiceComb

ServiceComb的概述;暂时未使用到;

  1. ServiceMesh

ServiceMesh的概述;暂时未使用到;

  1. 分布式日志解决方案

Elasticsearch+Logstash+Kibana

  1. 分布式锁解决方案

基于redis实现;基于zookeeper实现;

  1. 分布式任务解决方案

XXL_JOB;Elastic_JOB;Saturn

  1. 分布式配置解决方案

携程Apollo;百度Disconf;阿里Diamond;SpringCloudConfig;

  1. 分布式事务解决方案

基于MQ;基于LCN;基于Seata

  1. Java分布式架构 总结

分布式架构技术;分布式存储技术;分布式微服务技术;分布式日志解决方案;分布式锁解决方案;分布式任务调度解决方案;分布式配置解决方案;分布式事务解决方案;

笔者留言

对于上述描述是挺多的,但是学会这些也不能保证一定就能进大厂,送大家一句话 别向这个世界认输 因为你还有个牛逼的梦想

Java学习指南从入门到入土_第1张图片

你可能感兴趣的:(java,小白必看,分布式架构)