热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java学习指南从入门到入土

Java学习指南从入门到入土本身其实只是刚刚入门,只是经历了两年时间的风吹雨打,经历了各种bug的折磨和学习各种框架的辛酸,才有得现有的

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分布式架构 总结


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



笔者留言

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


推荐阅读
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
骑猪猪-逛恋空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有