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学习路线从入门到入土

    Java学习路线从入门到入土 Java学习路线从入门到入土 Java学习路线从入门到入土 简介 Java基础课程 第一阶段 第一部分:Java开发介绍 第二部分:Java数组 第三部分:Java面向对 ...

  2. 视频教程-Java学习指南(Swing高级篇)-Java

    Java学习指南(Swing高级篇) 邵发,清华大学毕业,从业软件开发十余年,自2015年起致力于C/C++/Java等基础教育领域,希望能通过提高每一个个体的素质来推动中国IT业的整体发展.代表作: ...

  3. 大数据学习指南从入门到精通

    目录 大数据学习指南从入门到精通 前言 一.大数据基础 二.大数据必学Java基础 三.ZooKeeper 四.大数据环境搭建 五.Hadoop 六.Hive 七.HBase 八.Kafka 九.Sc ...

  4. 《Java学习指南》—— 1.4 设计安全

    本节书摘来异步社区<Java学习指南>一书中的第1章,第1.4节,作者:[美]Patrick Niemeyer , Daniel Leuck,更多章节内容可以访问云栖社区"异步社 ...

  5. 《Java学习指南》—— 1.1进入Java世界

    本节书摘来异步社区<Java学习指南>一书中的第1章,第1.1节,作者:[美]Patrick Niemeyer , Daniel Leuck,更多章节内容可以访问云栖社区"异步社 ...

  6. Java工程师学习指南(入门篇)

    最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思 ...

  7. Inventor 二次开发学习指南(入门到精通)

    作者:梁晓冬 – Autodesk开发技术顾问 Inventor作为Autodesk公司制造业旗舰产品,已经在三维领域得到了广泛的应用.许多国内开发者迫切想学习InventorAPI,学习如何应用到专 ...

  8. Java学习笔记系列-入门篇-计算机基础

    Java学习笔记 Java学习笔记是一个持续更新的系列,工作多年,抽个空对自身知识做一个梳理和总结归纳,温故而知新,同时也希望能帮助到更多正在学习Java 的同学们. 本系列目录: 入门篇 计算机基础 ...

  9. Java学习路线,java学习教程(入门到精通)

    你好,欢迎来到编程领域:阅读"Java入门",打包好了Java学习包,以及良好的阅读体验. 关于 Java 语言 由于 JVM 的支持,使得 Java 成为一种跨平台的编程语言,一 ...

最新文章

  1. HDLBits 系列(44)状态机补录
  2. GNU C之__attribute__
  3. Android --- Session ‘app’: Error Launching activity解决办法
  4. vba 单元格 一系例操作
  5. WebStorm文件类型关联设置
  6. c语言链表贪吃蛇教程,编《贪吃蛇》最简单的算法,链表法
  7. ZZULIOJ 1075: 聚餐人数统计
  8. python生成器和迭代器区别_Python_生成器和迭代器的区别
  9. date比较大小 mybatis_面试官:给我说说你使用Mybatis的过程中遇到过哪些坑?
  10. Postgre SQL学习
  11. GraphPad Prism 统计教程 :高斯分布
  12. 证明同步函数使用的this锁
  13. 本地图片搜索 Android,本地相似图片识别软件下载
  14. python使用金山词霸的翻译功能
  15. Matlab绘图模板
  16. 虹膜手机元年,支付是杀手级场景
  17. Python爬虫进阶之某支付网站密码分析
  18. M1芯片电脑安装cerebro
  19. 小程序日期(日历)时间 选择器组件
  20. 3DS Max 2014启动报错的解决方案

热门文章

  1. Linux中常见文件类型及文件系统类型
  2. android 设置系统壁纸,Android HttpURLConnection下载网络图片设置系统壁纸
  3. 窗口模式,点按钮防止弹出新弹出页面
  4. udp ue4 通讯_UE4 UDP通信
  5. shell脚本之AWK-AWK的详细介绍
  6. 王道考研计算机网络学习心得——第一章-计算机网络体系结构
  7. STM32F105 UART4 发送异常及解决
  8. 【HTML基础】HTML的基本结构
  9. SQuirrel SQL Client数据库连接工具的配置与使用
  10. initramfs实作