导图社区 JAVA从入门到精通完整学习路线
JAVA从入门到精通完整学习路线,跟随培训机构老师,加上自己一些总结编写,由简到繁,后续会更新没个小模块知识点。
编辑于2021-01-02 19:31:07Java SE(Java Standard Edition,Java 标准版)是Java技术的核心和基础,是Java ME和Java EE编程的基础 。
Java反射机制主要提供了以下功能: 1.在运行时判断任意一个对象所属的类。 2.在运行时构造任意一个类的对象。 3.在运行时判断任意一个类所具有的成员变量和方法。 4.在运行时调用任意一个对象的方法。
程序:一段静态的代码 进程:正在运行的一个程序 线程:进程可进一步细化为线程,是一个程序内部的一条执行路径 说明:线程作为调度和执行的单位,每个线程都拥有独立的运行栈和程序计数器,线程切换开销小。多个线程共享同一个进程中的结构:方法区、堆。
社区模板帮助中心,点此进入>>
Java SE(Java Standard Edition,Java 标准版)是Java技术的核心和基础,是Java ME和Java EE编程的基础 。
Java反射机制主要提供了以下功能: 1.在运行时判断任意一个对象所属的类。 2.在运行时构造任意一个类的对象。 3.在运行时判断任意一个类所具有的成员变量和方法。 4.在运行时调用任意一个对象的方法。
程序:一段静态的代码 进程:正在运行的一个程序 线程:进程可进一步细化为线程,是一个程序内部的一条执行路径 说明:线程作为调度和执行的单位,每个线程都拥有独立的运行栈和程序计数器,线程切换开销小。多个线程共享同一个进程中的结构:方法区、堆。
JAVA从入门到精通完整学习路线
1、前端之HTML、CSS
2、JavaSE基础知识
计算机基础
java简介
C++去调繁琐的东西,指针,内存管理(C++--)
java基本语法
变量
java中的方法
数组
排序算法
面向对象
继承
封装
多态
接口
抽象类
成员内部类
集合
Exception异常
I/O流
多线程
关于注解
检查约束作用,可利用反射去读取注解
内置注解
@Override
重写的注解
@Deprecated
不推荐程序员使用,但是可以使用,或者存在更好的方式
@SuppressWarnings("all")
镇压警告,消除警告的提示
元注解
负责解释其它注解的注解,使用元注解我们可以自定义注解
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, MODULE})
表示我们的注解可以用在哪些地方
@Retention(RetentionPolicy.SOURCE)
表示我们的注解在哪些地方还有效runtime>class>sources
@Documented
表示是否将我们的注解生成在JAVAdoc中
@Inherite
类可以继承父类的注解
自定义注解
例题使用interface定义注解
第二种方式、
反射机制C
动态语言在程序运行时可改变其结构,反射是java被视为动态语言的关键。
通过反射获取类的Class对象
Class c1 = Class.forName("包名+类名");
注意:1.一个类在内存中只有一个Class对象 2.一个类被加载后,类的整个结构都会封装在Class对象中。
Class c2 = 对象.getClass();
Class c3 = 类名.class;
什么时候会发生类的初始化
类的主动引用(一定会发生类的初始化)
当虚拟机启动,先初始化main方法所在的类
new一个类的对象时
调用类的静态成员(除了final常量)和静态方法
通过反射调用时(使用java.lang.reflect包的方 法对类进行反射调用)
当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类
类的被动引用(不会发生类的初始化)
当访问一个静态域时,只有真正声明这个域的类才会被初始化。如:当通过子类引用父类的静态变量,不会导 致子类初始化
通过数组定义类引用,不会触发此类的初始化
引用常量不会触发此类的初始化(常量在链接阶段就存入调用类的常量池中了)
类加载器
作用
把类装载到内存中
类加载全过程
➢加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构, 然后生成一个代表这个类的java.lang.Class对象.
➢链接: 将Java类的二进制代码合并到JVM的运行状态之中的过程。
➢验证: 确保加载的类信息符合JVM规范,没有安全方面的问题
➢准备:正式为类变量(static) 分配内存并设置类变量默认初始值的阶段,这些内存都将在方法区中进行分配。
➢解析:虚拟机常量池内的符号引用(常量名)替换为直接引用(地址)的过程。
➢初始化:
➢执行类构造器<clinit> ()方法的过程。类构造器< clinit> ()方法是由编译期自动收集类中所有类变量的赋值动作和静态 代码块中的语句合并产生的。(类构造 器是构造类信息的,不是构造该类对象的构造器)。
➢当初始化-个类的时候,如果发现其父类还没有进行初始化,则需要先触发其父类的初始化。
➢虚拟机会保证一个类的<clinit> ()方法在多线程环境中被正确加锁和同步。
通过反射获取类的运行时结构
获得类的名字
getName()
获得包名+类名
getSimpleName()
获得类名
获得类的属性
getFields()
只能找到public属性
getDeclaredFields()
找到全部属性
获得指定属性的值
getDeclaredFields(“name”)
获得类的方法
getMethods()
获得本类及其父类的全部public方法
getDeclaredMethods()
获得本类的所有方法
getMethods(参数)
获取指定方法
获取构造器
getConstructors()
获取public修饰的构造器
getDeclaredConstructors()
获取所有的构造器
getConstructors(参数)
获取指定构造器
例
反射的一些方法
通过反射动态创建对象
newInstance()
1.调用无参构造方法
2.通过构造器创建对象
通过反射调用方法
getDeclaredMethods(“参数”) invoke()激活
通过反射操作属性
getDeclaredFields(“name”) setAccessible(true)不能直接操作程序的私有属性,我们需要关闭程序的安全检测
GUI(可选)
图形界面编程,写界面应用,如QQ,游戏
JUC编程
高并发编程
JVM探究
【扩展】23种设计模式
【扩展】XML
【扩展】正则表达式
3、数据库之MySQL
UML类图
架构方向
数据库设计
4、JDBC
5、MyBatis框架(持久化)
简介
mybatis-CRUD
MyBatis配置文件
结果集映射(重点难点)
分页
使用注解开发(重点)
一对多、多对一-的处理(难点)
动态SQL (重点)
缓存(十分重要,极其重要)
MyBatis- Plus
Log4j
通用Mapper
6、JavaWeb
JavaWeb基础
基本概念
web服务器
Tomcat
Http
Maven
Servlet
Session、Cookie
JSP
MVC三层架构
EL、JSTL、OGNL表达式
过滤器
监听器
文件上传
邮件收发
【扩展】富文本编辑器
7、前端之JS
jQuery
AJAX
Vue
Layui/BootStrap
8、Spring(容器思想)
简介
I0C控制反转(重点:面试高频)
依赖注入ID
1. Spring的配置文件(重点,难点)
AOP面向切面编程(重点,难点:面试高频)
代理模式(重点,难点)
事务ACID,声明式事务特性
整合MyBatis
使用注解开发(重点)
设计模式:思想
9、SpringMVC
简介
如何配置(超级重点)
结果跳转方式(重点)
如何处理前端数据(重点)
RestFu风格
文件上传下载
Ajax和JSON (超级重 点)
拦截器(重点)
使用注解开发
整合SSM框架(死死的记住)
重构电商项目
10、SSM框架整合
MyBatis
认识MyBatis:持久化
第一个MyBats程序(重点)
CRUD
配置
一对多
ResultMap:结果集映射(重点)
多对一
Log4j_
分页
注解开发
动态SQL
缓存
Spring
IOC理论推导
Spring概述
IOC- Beans.xml
DI-Set/cp (重点)
代理模式(静态、动态) :重点
AOP
注解开发Spring
JavaConfig:半重点
整合MyBatis :事务(重要)
声明式事务
SpringMVC
springmvc执行流程(重点)
回顾MVC
HelloSpringMVC
执行原理
结果跳转的方式
数据如何处理
乱码问题
Controller
RestfFul (重点)_
整合SSM项目(重点)
JSON
Ajax
拦截器
文件的上传下载
Git
写完代码交给这个平台进行托管
11、Linux
Linux基础
安装
VM及快照
实现当前系统的记录功能
开关机指令
sync
同步保存当前系统
shutdown
关机指令
reboot
重启
halt
关闭系统
Xshell连接虚拟机
目的
通过Xshall远程工具连接上其它服务器,可实现使用windows操作Linux
步骤
1.下载Xshell
2.虚拟机配置ip
1.编辑————虚拟网络编辑器————更改设置————桥接模式更改设置
2.虚拟机————设置————网络适配器————自定以
3.Linux改ip与物理机同一网段
1.ifconfig/ip address
2.cd /etc/sysconfig/network-scripts
配置文件/系统配置文件/关于网络的一些脚本
3.修改ip
ls -a
查看当前目录下所有文件
vim ifcfg-eno33
文本编辑器,编辑这个文件,按table键补全
BOOTPROTO=static
4.systemctl restart networt.service
重启网络服务
ifconfig查看ip地址被修改
4.Xshell连接虚拟机
ping 192.168.2.??
windows来ping通该地址
1.新建
输入主机ip192.168.2.??
连接
接受并保存
输入用户名密码,连接成功
完成连接,即可在此Xshall中写Linux指令
常用目录介绍
文件类型
一般性文件
.README
帮助文档,资料
.log
日志文件
.conf
配置文件
目录
cd /
切换到根目录
pwd
查看当前目录
ls _a
查看该目录下的所有目录
Linux文件系统结构
linux是树状结构,Windows是盘符结构
/
根节点
/bin 、/sbin
常用的基本程序 /sbin中的程序只有超级管理员可以运行
/root
系统管理员的主目录
/etc
一些系统的配置文件
/home
用户目录
/tmp /var
存放临时文件和经常变动的文件
/dev
存放外部设备的镜像文件
/usr /usr
存放用户程序和文件
/mnt
外部设备
如U盘
/boot
系统引导程序和系统核心部分
/proc
系统中运行的进程的虚拟镜像
/lost+found
存放“流浪文件”
/run
运行时用到的资源
/lib
第三方引入的资源
/media
媒体资源
/sys
系统相关资源
基本命令
cd /
切换到根目录
pwd
查看当前目录
ls _a
查看该目录下的所有目录
clear
清空当前终端屏幕
ifconfig
查看系统ip
man ls
查看全部帮助文档
按Q键退出当前文档
ls --help
查看全部帮助文档
不需要Q键
目录相关命令
cd ../
切换到上一级目录
cd ~
切换到用户的主目录
cd -
回到上一次所在目录
ls
展示当前目录文件
ls -a
展示当前目录所有文件
ls -l
以列表形式展示当前目录权限
ls -al
以列表形式展示当前目录权限
12、SpringBoot
Vue+ Layui(bootStrap)
组件
相当于自定义一个标签
Axios
相当于ajax的作用
计算属性
缓存
插槽
动态绑定,插入标签值
我们的 todo-title 和 todo-items 组件分别被分发到了 todo 组件的 todo-title 和 todo-items 插槽中
自定义事件
局部刷新
组件如何才能删除 Vue 实例中的数据
SpringBoot基础
SpringBoot是什么?
微服务
HelloWorld~
探究源码~自动装配原理~
配置yaml
多文档环境切换
静态资源映射
Thymeleaf th:xxx
SpringBoot如何扩展MVC javaconfig~
如何修改SpringBoot的默认配置~
CRUD
国际化
拦截器
定制首页,错误页~
JDBC
Mybatis:重点
Druid :重点
Shiro:安全:重点
Spring Security:安全:重点
异步任务~,邮件发送,定时任务()
Swagger
Dubbo + Zookeeper
SpringBoot配置及原理
SpringBoot持久层操作
SpringBoot Web开发
SpringBoot缓存
SpringBoot消息
SpringBoot检索
SpringBoot任务
SpringBoot安全
Dubbo+ Zookeeper分布式开发
13、MV VM框架整合
14、SpringBoot+Vue
前后端分离
15、SpringCloud
微服务及微服务架构
SpringCloud
Eureka服务注册与发现
Feign. Ribbon 负载均衡
Hystrix熔断机制
Zuul路由网关
SpringCloud Config配置中心
16、Hadoop
大数据时代简介
Hadoop简介
Hadoop环境搭建
HDFS
MapReduce
Yarn
Hive
Hbase