Web应用,最常见的研发语言是Java和PHP。
后端服务,最常见的研发语言是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允许程序直接对线程组进行控制
* 什么是计算机
* 俗称电脑 是一种能够按照程序运行 自动 高速处理海量数据的现代化智能电子设备
* 由软件和硬件组成 没安装任何软件的计算机称为裸机 常见的形式有台式计数机 笔记本计算机 大型计数机
* 什么是计数机硬件
* 由电子 机械 和光电元件组成的各个物理装置的总称 这些物理装置按照系统结构的要求构成一个有机整体为计数机软件运行提供物质基础
* 什么是计数机软件
* 是计算机必不可少的东西 计算机软件使计数机按照事先预定好的顺序完成特定的功能 计数机软件按照其功能划分为系统软件与应用软件
* 什么是计数机语音
* 就是人与计算机之间进行信息交流沟通的一种特殊语音
Spring必须掌握的技术
Spring必须掌握的技术-CSDN博客