转载自:http://www.javashuo.com/article/p-fvmmixqj-dq.htmlhtml
Web应用,最多见的研发语言是Java和PHP。java
后端服务,最多见的研发语言是Java和C/C++。数据库
大数据,最多见的研发语言是Java和Python。编程
能够说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,无论在成熟的大公司,快速发展的公司,仍是创业阶段的公司,都能有立锥之地。后端
有很多朋友问,除了掌握Java语法,还要系统学习哪些Java相关的技术,今天分享一个,互联网Java技术学习路线图。设计模式
学习Java技术体系,设计模式,流行的框架与组件是必不可少的:性能优化
常见的设计模式,编码必备网络
Spring5,作应用必不可少的最新框架多线程
MyBatis,玩数据库必不可少的组件架构
工欲善其事必先利其器,不论是小白,仍是资深开发,玩Java技术体系,选择好的工具,提高开发效率和团队协做效率,是必不可少的:
Maven,项目管理
Jenkins,持续集成
Sonar,代码质量管理
Git,版本管理
高并发,高可用,海量数据,没有分布式的架构知识确定是玩不转的:
分布式架构原理
分布式架构策略
分布式中间件
分布式架构实战
业务愈来愈复杂,服务分层,微服务架构是架构升级的必由之路,Java技术体系,和微服务相关的技术有哪些呢?
微服务框架
Spring Cloud
Docker与虚拟化
微服务架构
任何脱离细节的ppt架构师都是耍流氓,向上能指挥若定,向下能解决一线性能问题,Java技术体系,须要了解:
性能指标体系
JVM调优
Web调优
DB调优
从架构设计,到应用层调优,再深刻了解底层原理,扎实的Java基本功才能让本身变为扫地神僧:
内存模型
并发模式
线程模型
锁细节
学习JAVA必须掌握的知识:
什么是面向对象 * 是一种更符合咱们思想的习惯的懒人思想 * 能够将复杂时间简单化 * 将咱们执行者变成了指挥者 * 角色发生了改变 * 面向对象有哪些特征 * 面向对象有: 封装 继承 多态 * 继承好处与弊端 * 好处:提升了代码的复用性 提升了代码的维护性 让类与类之间产生了关系 是多态的前提 * 弊端:类的耦合性加强了 * 多态好处与弊端 * 什么的多态: 多态就是事物存在的多种形态 * 多态的前提:要有继承关系,要有方法重写,要有父类引用指向子类对象 * 弊端有:不能使用子类特有的方法 * 好处有:提升了代码的维护性 提升了代码的复用性 能够当作形式参数 能够接受任意子类对象 * 什么是接口 * 接口从广义的角度讲对外提供的规则都是接口 * 什么是IO流 * IO流是用来处理设备之间的数据传输 * 有输入流跟输出流 * 分为两个字节流跟字符流 * 什么是线程 * 线程就是程序执行的一个路径,一个进程中能够包含多条线程 * 什么是多线程 * 多线程并发执行能够提升程序的效率 能够同时完成多个项目工做 * 什么是计数机网络 * 是指地理位置不一样的具备独立功能的多台计算机及其外部设备,经过通讯线路链接起来,在网络操做系统, * 网络管理软件及网络通讯协议的管理和协议下,实现资源共享和信息传递的计算机系统 * 什么是网络编程 * 就是用来实现网络互连的不用计算机上运行的程序间能够进行数据交换 * 什么是反射 * java反射机制是在运行状态中,对于任意一个类都可以知道这个类的全部属性和方法 * 对于任意一个对象都可以调用它的任意一个方法和属性 * 这种动态获取的信息以及动态调用对象的方法的功能称为java语音 的反射机制 * 要想解剖一个类必须先要获取到该类的字节码文件对象 * 而解剖使用的就是Class类中的方法,因此先要获取到没一个字节码文件对应的Class类型的对象 * 什么是枚举 * 是指将变量的值一一列出来 变量的值值限于列举出来的值得范围内 举例:一周只有7天 一年只有12个月等 * 回想单例设计模式 单例类是一个类只有一个实例 * 那么多例类就是一个类有多个实例 但不是无限个数的实例 而是有限个数的实例 这才能是枚举类 * JVM默认是如何处理异常的 * 当main方法收到这个问题是就有两种处理方式 第一种本身处理 而后继续运行 * 第二种处理 若是本身没针对的处理方式只有交给调用main方法的JVM来处理 * JVM有一个默认的异常处理机制 就讲该异常进行处理 * 并将该异常的名称 异常的信息 异常的出现的位置打印在控制台上 同时将程序中止运行 * BigInteger * 他可让超过Integer范围内的数据进行运行 * BigDecimal * 他的做用是能够更加精确的存储小数 * 什么是内存输出流 * 就是该输出流能够向内存中写数据 把内存当作一个缓冲区 写出以后能够一次性获取全部数据 * 什么是线程池 * 程序启动一个新线程成本是比较高的,由于它涉及到要与操做系统交互 而使用线程池能够很好的提升性能 尤为是当程序中药建立大量生存期很短的线程时, * 更应该考虑使用线程池 线程池礼的每个线程代码结束后并不会死亡 而是再次货到线程池中称为空闲状态 等待下一个对象来使用 JDK5内置了线程池 * 什么是线程组 * 它能够对一批线程进行分类管理 java容许程序直接对线程组进行控制 * 什么是计算机 * 俗称电脑 是一种可以按照程序运行 自动 高速处理海量数据的现代化智能电子设备 * 由软件和硬件组成 没安装任何软件的计算机称为裸机 常见的形式有台式计数机 笔记本计算机 大型计数机 * 什么是计数机硬件 * 由电子 机械 和光电元件组成的各个物理装置的总称 这些物理装置按照系统结构的要求构成一个有机总体为计数机软件运行提供物质基础 * 什么是计数机软件 * 是计算机必不可少的东西 计算机软件使计数机按照事先预约好的顺序完成特定的功能 计数机软件按照其功能划分为系统软件与应用软件 * 什么是计数机语音 * 就是人与计算机之间进行信息交流沟通的一种特殊语音