Java后端开发学习路线
2022-06-05 20:17:10 78 举报
AI智能生成
登录查看完整内容
Java后端开发学习路线包括以下几个阶段:1. Java基础语法和面向对象编程;2. 数据库基础知识和SQL语句编写;3. Web开发技术,如HTML、CSS、JavaScript等;4. Servlet和JSP技术,用于构建Web应用程序;5. Spring框架,用于管理Java应用程序的依赖关系和事务处理;6. Hibernate框架,用于实现对象关系映射(ORM)和持久化数据;7. MyBatis框架,用于简化数据库操作;8. Spring Boot框架,用于快速构建基于Spring的应用程序;9. 分布式系统和微服务架构。
作者其他创作
大纲/内容
// /**/ /***/
注释
关键字
5大普通常量(整,小,串,字符,布)+空常量
字面值常量
finnal
自定义常量
常量
在程序的运行过程中其值可以在某个范围发生改变的量
变量的本质是内存中的一小块区域被
数据类型 变量名 = 初始化值
数据类型(限制变量的变化范围)
概念
变量
byte:一个字节 -2^7~2^7-1 -128~128(十进制)
short:两个字节 两个字节 -2^15~2^15-1
int:4个字节 -2^31~2^31-1
long:8个字节 -2^63~2^63-1
double:8个字节 1.7*10^(-308)~1.7*10^(+308)
char:2个字节 0~2^16-1
boolean:一个字节 true,false
float:4个字节 3.4*10^(-38)~3.4*10^(+38)
基本类型
计算机中最小的储存单元是字节(Byte“B”),每个字节包含8个位(bit“比特”)
1B = 8bit 1KB = 1024B 1MB = 1024KB
(优化内存)
类
接口
数组
引用类型
数据类型
小转大
自动类型转换
大转小“目标类型 变量名 = (目标类型)大类型数据”
强制类型转换
类型转换
标识符
常量和变量
+ - * / % ++ --(表达式类型就是表达式结果类型)
算数运算符
=
基本赋值运算符
好处:省略了强制类型转换的操作
+=
-=
/=
*=
%=
扩展赋值运算符
赋值运算符
==
<
>
>=
<=
!=
关系运算符
&& : 逻辑与,并且
|| : 逻辑或,或者
! : 逻辑非,表示否定
逻辑运算符
(关系表达式)?表达式1:表达式2;
三元运算符
运算符
从上往下,从左往右
顺序结构
if区间值判断
switch(值)
switch固定值判断
选择结构
for
while
do while
循环结构
流程控制
1.方法名
2.返回值类型
3.参数列表(引用类型或基本类型)
4.修饰符
方法调用(注意输出)
方法名相同,其他不同 案例:全参构造,空参构造
方法重载
方法(函数)
存储同一种数据类型多个元素的容器
可以是基本类型也可以是引用类型
数据类型 [] 数组名 = new 数据类型[长度]
数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,.....}
数据类型 [] 数组名 = {元素1,元素2,.....}
格式
基础语法
abstract
方法必须全部重写
抽象类
将一系列相关事务共同的属性(变量)和行为(方法)提取出来,放到一个类中,隐藏(private)对象的属性和实现细节, 仅对外提供公共的访问方式(set,get)
绝不能让其它类中的直接访问类中的数据(变量)程序仅仅通过对象的方法与对象的数据进行交互(this)
定义
封装
extends
子类 对名 = new 子类
体现“是一个”
继承
父类 对名 = new 子类
重写
多态
面向对象
一个功能
接口名 对象名 = new 实现类
普通类,抽象类,必须重写所有方法
变量为“公共的静态的常量”
public abstract
implements
Object()//构造方法
hashCode()//获取对象的哈希码值
equals()//比较两个对象是否相等
toString()//获取对象的字符串形式
getClass()//获取对象的字节码文件
Object
Scanner(InpuStream)
hasNextXxx()//判断是否有下一个输入项
nextXxx()//返回下一个输入项
nextLine()//String形的,获取下一“行”数据
next()//获取下一“个”输入 项
Scanner
String(byte[])
String(char[])
equalsIgnoreCase(String)
startWith(String)
isEmpty()
length()
charAt(int )
indxOf(String)
lastIdexOf(String)
Substring(int)
getBytes()
toCharArray()
ValueOf(...)
split(String)
trim()
equals(String)
String
StringBuilder()
StringBuilder(String)
append()
toString()
reverse()
StringBuilder
装箱 ,拆箱
Integer.parseInt(String)
Double.parseDouble(String)
.....................
基本类的包装类
font color=\
APL文档网址
Java简单的程序设计的程度,在另一方面说明了API的使用程度
break(终止一层循环)
continue(结束本次循环,继续下次循环)
return(结束整个方法)
应用(实例化)List l = new ArrayList()(多态)
ArrayList(实现类)
特点:可重复,有序(存取顺序相同)
Iist集合(接口)
HashSet(实现类)
不可重复,无序
Set <T> s = new HashSet<>();
唯有重写equals和hashCode才可去重
Set集合(接口)
collection接口
add();get(x);
sort(List<T(类型)>) 根据元素的自然顺序,将指定列表按升序排序
max(Collection<T>) 返回集合的最大元素
reverse(List<T>) 反转List集合元素
shuffle(List<T>) 使用默认的随即源随机置换指定的列表
collections(工具类)
单列集合
HashMap(实现类)
元素由键值对(Entry)构成
key(键“唯一性”)不可以重复,value(值)可以重复
put();keySet();get();iterator();
Map集合(接口)
双列集合
1,创建集合对象
2,创建元素对象
3,将元素对象添加到集合对象中
4,遍历集合
使用集合的步骤
增强for循环
iter
转型
迭代器对象: Iterator it = list.iterator();//再遍历集合的同一时刻不可添加或者删减元素(不可并发修改)
列表迭代器对象: ListIterator it = list.listIterator();必须调用列表迭代器的方法实现
列表迭代器可避免并发修改异常
hasNext() next()
迭代器
集合
即任意类型,又叫参数类型,对具体类型起到辅助作用
表示该集合中存放指定类型的元素
1.类型安全 2.代替了手动类型转换
泛型一般只和集合类结合使用
演示: List<String> t = new ArrayList<>();
泛型
即非常情况,异常就是程序出现的错误
概述
合理的应用程序可能需要捕获的问题
(可能)Exception(可预料的)
合理的应用程序不应该捕获的问题
(错误)Error(不可预料的)
Throwable(顶层)
分类
在控制台打印错误信息,并终止程序
JVM默认方式
捕获,自己处理
try.....catch(finally)
finally高于retuen
抛出,交给调用者(即调用方法者)自己处理
throws
开发中处理方式
处理方式
ALT+回车 如果一个类或接口中的方法没有抛异常,那么他们的子类或实现类重写的方法就不能抛异常,必须要自己trycatch
异常
图形化(Swing)/省略
用来做数据传输的一项技术,方式
输入流:读数据 输出流:写数据
在本地磁盘和网络上操作数据
概念“作用
输入流(读取数据)
输出流(往外写数据)
流向
FileReader类(普通字符输入流)
BufferedReader类(高效字符输入流)
Reader(抽象类)
FileWriter类(普通字符输出流)
BufferedWriter类(高效字符输出流)
Writer(抽象类)
字符流
FileInputStream类(普通字节输入流)
BufferedInputStream类(高效字节输入流)
InputStream(抽象类)
FileOutputStream类(普通字节输出流)
BufferedOutputStream类(高效字节输出流)
OutputStream(抽象类)
字节流
操作方式
文件,文件夹,一个File对象代表代表磁盘上的某个文件或文件夹
:\\\\x\\\\
:/x/
File(String pathname)
构造方法
createNewFile():创建文件
创建
如果不存在就创建,返回true。否则不创建,返回false
isDirectory():判断File对象是否为目录“文件夹 ”
exists():判断File对象是否存在
判断
获取绝对路径
绝对路径:以盘符开头的路径
getAbsolutePath():
获取相对路径
相对路径:一般是相对于当前项目路径来讲的
getPath();
获取文件名
getName();
获取指定目录下所有文件名或者文件夹名称数组(String)\"一级\"
list();
获取指定目录下所有文件或者文件夹(名字)File数组(File)”多级,多功能“
listFiles();
获取
成员方法
File类
方法
异常处理;IOException
int x = r.read(); (注意:read出现一次读写一次)读取一个字符,返回该字符代表的整数,若到达流的末尾,返回—1
r.close();关闭资源
char [] chs = new char[长度];
int len = r.read(chs);一次读写一个字符数组 (返回读到的有效字符的个数)
Reader r = new FileReader(\"路径\");
读
异常处理;IOException
void write(int ch) :一次写一个字符
void write(String str):一次读写一个字符串
w.close();释放资源
Writer w = new FileWriter(\"文件名\")
写
代码
如果目的地文件不存在,程序会自动创建
拷贝文件(Rreader读Writer写)一次读一个字符
拷贝文件(Rreader读Writer写)一次读一个字符数组
普通用法(拷贝文件)
一次读写一行
字符流只能拷贝纯文本文件
字符缓冲流Buffered
一次读写一个字节
一次读取一个字节数组
普通字节流(拷贝文件)
高效字节流(拷贝文件)
用不同方式实现字节流,字符流读写文件
IO
语言基础
类加载机制
字节码执行机制
JVM内存模型
GC垃圾回收
JVM性能监控与故障定位
JVM调优
1.在软件层面屏蔽不同操作系统在底层硬件与指令的区别
2.Java程序的运行环境(Java二进制字节码的运行环境)
1.一次编写,到处运行
2.自动内存管理
3.数组下标越界检查
4.多态
好处
1.类装载子系统
1.元空间(方法区)
2.堆
概念:线程运行需要的内存空间,方法运行时使用的内存
一个线程需要一个虚拟机栈,多个线程需要多个虚拟机栈
一个栈内是由多个栈帧组成(一个栈帧就代表一个方法的调用运行时需要的内存(先进后出))
每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法
如果方法内局部变量没有逃离方法的作用访问,他是线程安全的
如果是局部变量引用了对象,并逃离方法的作用方法,需要考虑线程安全
3.虚拟机栈(线程)
作用:记住下一条jvm指令的执行地址,然后解释器直接根据计数器取下一条jvm指令
1.线程私有,每个线程都有自己的计数器
2.不会出现内存溢出
特点:
4.程序计数器(寄存器)
5.本地方法栈
2.运行时数据区(内存区)
3.字节码执行引擎
组成
JVM虚拟机
在程序运行期间,根据类的字节码文件对象来获取类的成员并使用的一项技术
基本概念
概念:负责将类的字节码文件(.class)加载到内存中,并生成对应的Class对象
运行场景:1.创建类的实例 2.访问某个类的静态成员 3.初始化子类 4.反射方式创建类的Class对象
类加载器
每个Class对象对应一个字节码文件
.class是类的字节码文件后缀
Class对象可以获取构造器对象
静态函数 forName(\"类的正名\")
getConsturctor(Class<?>...parameterTypes)
getDeclaredConsturctor(Class<?>...parameterTypes)
getConsturctors()
getMethods()
getField(String name)
getDeclaredField(String name)
getDeclaredFields()
常用函数
Class是一个类(其对象被称为字节码文件对象 Java.long.Class)
1.其对象称为构造器对象,属于java.base模块、java.lang.reflact包
String getName()
T newInstance(Object...initargs)
Constructor<T>类
String getName()
Method类
void setAccessible(boolean flag)
Field类
加载并初始化一个类
查看类的所有属性和方法
通过类加载器分析类
查看一个对象的所有属性和方法
使用对象的任意属性和方法
查看并使用对象
作用
构建通用的工具
搭建具有高度灵活性和扩展性的系统框架
应用场景
根据对象获取
根据类名获取
根据类名字符串获取
1. 对象名.getClass();
2. 类名.class;(依据类的静态属性)
3. Class类的静态方法 Class.forName(\"类的正名\")
获取Class对象的三种方式
1.先获取Class对象
2通过Class对象获取构造器对象
newInstance(Object...initargs)
3.根据构造器对象和参数,创建对应的目标对象
4.打印结果
获取构造方法并使用
3.根据构造器对象和参数,创建对应的目标对象(newInstance(Object...initargs))
4.获取该类成员方法对象,然后调用此方法
5.打印结果
使用成员方法
4.设置目标对象的各个变量值
使用成员变量
再使用
用法
反射
Java语言(javaSE)
APP协议
IP协议、ICMP协议
TCP、UDP协议
DNS/HTTP/HTTPS协议
Session/Cookie
计算机协议
IPv4
IPv6
ipconfig
ping IP地址
127.0.0.1
常用命令
Static getByName(String host)
String getHostName()
String getHostAddress()
InetAddress类
1.IP地址
端口号
2.端口
1.创建发送端的DatagramSocket对象
2.创建数据,并把数据打包(DategramPacket)
3.调用DatagramSocket对象的方法发送数据
4.释放资源
发送端
1.创建接受端的DatagramSocket对象
2.创建“箱子”,用于接收数据(DatagramPacket)
3.调用DatagramSocket对象的方法接收数据并把数据打包
4.解析数据包,并把数据打印在数据台
5.释放资源
接收端
实例
详解在上面发送端备注里
单播
组播代码实现步骤
组播
广播代码实现步骤
广播
子主题
UDP的三种通信方式
UDP协议
1.创建客户端的Socket对象与指定的服务器连接
2.获取输出流,写数据
3.释放资源
客户端(发送端)
1.创建的服务器端的SeverSocket对象
2.监听客户端连接,返回一个Socket对象
3.获取输入流读数据,并把数据打印在控制台上
服务器端(接收端)
主体代码
1.先执行服务器端Socket对象
2.执行到appect()方法,等待与客户端建立连接,开始执行客户端所有代码
3.读取数据,然后关闭两端通道
流程图
执行流程
三次握手
四次挥手
客户端
服务器端
例1
例2
实例联系
TCP协议
3.协议
网络编程三要素
网络编程
*.(多线程技术就是同时执行多个应用程序)是指从软件或硬件上实现多个线程并发执行的技术
*.(多线程技术需要硬件的支持)具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能、
在同一时刻,多个指令在多个CPU上“同时”执行
并行
在同一时刻,多个指令在单个CPU上“交替”执行
并发
正在运行的软件(应用程序)
1.独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位
2.动态性:进程的实质是指程序的一次的执行过程,进程是动态产生,动态消亡的
3.并发性:任何进程都可以同其他进程一起并发执行
进程
是进程中的单个顺序控制流,是一条执行路径
单线程:一个进程如果只有一条执行路径,则称为单线程程序
多线程:一个进程如果只有多条执行路径,则称为多线程程序
线程
Thread线程类,一个thread对象就是一个线程对象。run函数是通过start函数调用的
相关概念
运行底层过程
start()函数:给予调用它的线程对象执行资格(只有执行资格没有执行权,执行权需要靠其线程对象本身去和CPU抢)
多线程开启后执行的是run方法里面的代码
run方法是用来封装被线程执行的代码(不可直接调用)
重写run()
启动线程;然后由JVM调用此线程的run()方法
start
1.继承Thread类
1.定义一个x类实现Runnable接口
2.在定义的x类中重写run()
3.创建定义的x类的对象(创建了一个参数的对象)
4.创建Thread类的对象(创建了一个线程的对象),把x对象作为构造方法的参数传递给各个线程
5.启动线程
2.实现Runnable接口
1.创建Callable接口实现类X
注意Callable接口泛型,这里泛型表示返回值的数据类型
2.在X类中重写call()
call方法有返回值,表示线程完毕之后的结果
3.创建X类的对象
4.创建FutureTast类的对象,将X类对象作为FutureTast类对象构造方法的参数
FutureTast类是Future接口的实现类
FutuerTast类有泛型,泛型与Callable接口泛型保持一致
5.创建Thread类的对象,将FutureTast类对象作为Thread类对象构造方法的参数
6.启动线程
Therad对象.start();
7.获取线程完毕结果
FutureTast对象.get(); (千万不可在start()之前调用)
需要用相应类型获取FutureTast对象.get(),然后打印
Callable接口和Future接口
扩展性强,实现该接口的同时还可以继承其他的类
优点
编程比较复杂,不能直接使用Thread类中的方法
缺点
Runnable接口,Callable接口
编程比较简单,可以直接使用Thread类中的方法
可扩展性差,不能在继承其他的类
继 承 T h r e a d 类
三种实现方式优缺点对比
实现方案
getName(); 返回此线程的名称
有默认名字Thread-编号
获取名称
setName(String name);将此线程名称更改为参数name
1.可在实现类中直接调用
2.可以在子类调用父类构造方法,然后通过构造方法设置线程名称
设置名字
返回对当前正在执行的线程对象的引用
public static Thread currentThread();
currentThread()可以调用getName()获取对象名称
适用与Runnable接口和Callable接口(因为他们不可以直接调用Thread里的私有方法)
获取当前线程的对象
如果一个类或者接口中的方法没有抛出异常,那么他的子类或者实现类重写的方法就必须自己try catch异常(依然可用ALT+回车)
public static void sleep(long time):让线程休眠指定的时间,单位为毫米秒
线程休眠
public final void steDaemon(boolean on)
设置为守护(服务线程或者副线程)线程
守护线程:当普通线程执行完毕之后,守护线程也没有执行下去的必要(因为CPU的关系,备胎线程不会立马结束,会针扎一会)
守护线程/后台线程/备胎线程
线程并发运行
所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片
分时调度模型
优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选一个。优先级高的线程获取的CPU时间片相对多一些
抢占式调度模型
public final void setPriority(int newPriority):设置线程的优先级
public final int getPriority():获取线程的优先级
线程调度
线程类(Thread)的常见方法
线程的生命周期(多线程中,执行任意一行代码时,其执行权都有可能被抢走)
来源:一般是由操作共享数据时争夺CPU的执行权引起的
同步代码块
格式: 修饰符 synchronized 返回值类型 方法名 (参数){}
1.同步代码块可以锁住指定代码,同步方法是锁住方法中的所有代码
2.同步代码块可以指定锁对象,同步方法不能指定锁对象
与同步代码块的区别
例子
同步方法的锁对象是this
静态同步方法的锁对象是“类名.class”
同步方法
实现类:ReentrantLock
Lock接口
死锁
多线程的安全问题(锁)
思路分析
void wait() : 使当前线程进入等待状态,直到另一个线程对象唤醒(直到另一个对象调用notify()或notifyAll()
void notify():唤醒正在等待状态的一个线程
void notifyAll():唤醒正在等待状态的所有线程
等待和唤醒的函数(Object类里)
自主设计例一
例一面向对象版
生产者消费者(等待唤醒机制)
并发容器
原子类
JUC并发工具类
线程池
多线程
字符串
堆、栈、队列
二叉树
哈希
图
顺序表
链表
线性表
数据结构
comparable接口
相邻的元素进行比较(换位)
创建API
冒泡
与最小值索引换位排序
API
选择
common
插入
逆置
simple
希尔排序
递归排序
分治
归并
快速排序
complex
算法
数据结构和算法
软件设计模式产生背景
软件设计模式概念
学习设计模式的必要性
创建型模式
结构型模式
行为型模式
设计模式分类
设计模式概述
单向关联
双向关联
自关联
一般关联关系
聚合关系
组合关系
关联关系
依赖关系
继承关系
实现关系
表示方式
UML类图
UML图
开闭原则
里氏代换原则
依赖倒转原则
接口隔离原则
迪米特法则
合成复用原则
软件设计原则
相关
单利
原型
工厂方法
抽象工厂
建造者
创建者模式5
代理
适配器
桥接
装饰者
外观
享元
组合
结构型模式7
模板方法
策略
命令
责任链
状态
观察者
中介者
访问者
备忘录
解释器
行为型模式11
分析Spring核心功能结构
确定Spring核心功能使用的设计模式
Spring IOC
功能实现
自定义Spring框架
综合实例
设计模式
关系型数据库
非关系型数据库
DBMS
DBA
DBS
数据库术语
net stop mysql
net start mysql
CMD管理员
此电脑--》管理---》服务
MySQL启动与关闭
数据库概念
可视化工具 : SQLyog、 Navicat
`1Cd
自带的命令行工具: mysql Command line Client
Mysql逻辑结构
MySQL的管理工具
在mysql Command line Client或者Navicat等工具中都可以编写SQL语句
SQL指令不区分大小写
每条SQL指令结束都以分号结尾
SQL指令与指令之间以空格进行分割
SQL指令不限制换行
tinyint
smallint
mediumint
int/intteger
bigint
float
double
decimal(总位数,小数位数)
数值类型
char
varchar
tinyblob
blob
mediumblob
longblob
tinytext
text
longtext
字符类型
date
time
year
datetime
timestamp
日期类型
not null
unique
primary key
例
外键约束----级联操作
foreign key
primary key(列名1,列名2,....);
字段约束
基本语法
show databases;
show create database 名字;
create database 名字;
create database if not exists 名字;
alter database 名字 character set 字符集;
drop database 名字;
drop database is exists 名字;
use 数据库名字;
create database 名字 character set 字符集;
操作数据库
create table 表名(列名 数据类型,列名 数据类型......)
show tables;
desc 表名;
drop table 表名;
drop table is exists 表名;
alter table 旧表名 rename to 新表名;
alter table 名字 character set 字符集;
alter table 名字 add 列名 列的数据类型;
alter table 表名 modify 列名 数据类型;
alter table 表名 change 旧列名 新列名 新列名的数据类型;
alter table 表名 drop 列名;
alter table 表名 drop primary key;
alter table 表名 modify 列名 数据类型 primary key;
alter table 表名 add constraint 逻辑外键字段名 foreign key(列名) references 要关联的表名(要关联的表的列名);
列名 int primary key auto_increment;
操作数据表及字段
DDL
insert into 表名 values(值1,值2,值3....)
delete from 表名 where 条件;
delete from 表名;
update 表名 set 列名=新值 where 条件;
update 表名 set 列名=新值;
DML
select 列名1,列名2... from 表名;
select * from 表名;
多条件(用and/or/not连接)
where 子句
LIKE子句
计算列
对计算列重新命名
as:通用取别名(都可以用)也可以隐藏
distinct :消除查询结果的重复项(位置在列名前)
正序:order by
逆序:order by 排序的列名 desc
排序
count() : select count(列名) from 表名;
max()
min()
sum()
avg()
聚合函数
now()或sysdate()
日期函数
concat(列名1.列名2...)
upper()
lower()
sunstring(列名,开始截取那位,长度)
字符串函数
select 被分组的字段或聚合函数 from 表名 (where子句)group by 分组依据的字段;
select 被分组的字段或聚合函数 from 表名 (where子句)group by 分组依据的字段 order by 列名(依据此列明对分组好的结果排序);
.......... group by havaing 条件.......
分组查询group by
分列查询limit
操作查询数据的结果
单表查询
1:主键关联
2:唯一外键
一对一关联
外键约束
一对多关联
多对一关联
多对多关联
数据表的关联关系
格式:select * from 表名 inner join 被连接的表名;
格式:select * from 表名 inner join 被连接的表名 where 表名.外键=被链接的表名.另一张表的主键;
格式:select * from 表名 inner join 被连接的表名 on 表名.外键=被链接的表名.另一张表的主键(where子句);
inner join 内连接
格式:select * from 表名 left join 被连接的表名 on 表名.外键=被链接的表名.另一张表的主键(where子句);
left join 左连接
格式:select * from 表名 left join 被连接的表名 on 表名.外键=被链接的表名.另一张表的主键(where子句);
right join 右连接
不用前
用之后
数据表别名
连接查询
例:多条件
子查询
union关键字
DQL
存储过程
索引
触发器,视图
SQL高级
数据库的设计步骤
数据库的设计范式
E-R图
PowerDesigener工具、PDMan
数据库设计
事务特性ACID
事务隔离级别
事务管理
DCL
SQL
SQL/数据库
进程、线程
并发、锁
内存原理和调度
I/O原理
操作系统
1.吃透需求
2.步骤梳理
3.代码实现
4。调试错误
需求分析
概要设计
先设计
1.底层框架代码
2.顶层业务逻辑代码
再编码
基本步骤
项目设计
编程基础
Eclipse“个人当前阶段认为它的存在很尴尬'
Intellij IDEA
VSCode
集成开发环境
桥接模式
NAT模式
主机系统
Linux网络连接的三种方式
centOS安装
方式一:直接拷贝一份安装好的虚拟机文件。“ZYJ.linux.虚拟机”
方式2:使用VMware的克隆操作,克隆时需要关闭正在运行的Linux系统
虚拟机克隆
VMtoos安装
虚拟机快照
/bin
/sbin
/home
/root
/lib
/lost+found
/etc
/usr
/boot
/proc
/srv
/sys
/tmp
/dev
/media
/mnt
/opt
/usr/local
/var
/selinux
Linux目录结构
基础
远程登录
远程文件传输
远程
打开:vim空格
命令行模式:esc+:
vi和vim编译器
shutdown -h now
su+空格+用户名
开机、重启和用户登录注销
添加用户:useradd空格用户名
添加指定目录用户:useradd空格-d空格目录空格用户名
修改/添加密码:passwd空格用户名
显示当前所在的目录:pwd
删除用户并删除其用户文件下的所有目录:userdel -r 用户名
删除用户但保留其用户文件下的所有目录:userdel 用户名
用户管理
实用指令
定时任务调度
磁盘分区、挂载
进程管理
RPM和YUM
网络配置
实操
日志管理
定制自己的Linux
Linux内核源码&内核升级
Linux备份与恢复
Linux可视化管理webmin和bt运维工具
Linux入侵检测&权限划分&系统优化
Linux面试题
高级
服务器领域
大数据定制篇之Shell脚本编程
JDK安装
IDEA安装
Tomcat安装
MySQL安装
Linux之Java定制篇
Linux系统
Gradle
Maven
项目管理/建构工具
SVN
Git
代码管理工具
研发工具
IoC
AOP
Spring
SpringMVC
MyBatis
SSM
自动配置、开箱即用
整合Web
整合数据库(事物wenti)
Shiro
Spring Security
整合权限
Redis、MQ、RPC框架、NIO框架
整合各种中间件
Spring Boot
Nginx(特别重要)
Web服务器
Tomcat
Jetty
Undertow
应用服务器
服务器软件
5大基础数据类型
事物
管道
持久化
集群
Redis
缓存
RocketMQ
RabbitMQ
Kafka
消息队列
Dubbo
gRPC
Thrift
Spring Cloud
Netty
RPC框架
中间件
Mybatis
Hibernate
JPA
ORM层框架
Druid
HikariCP
C3P0
连接池
MyCAT
Sharding-JDBC
Sharding-Sphere
分库分表
数据库框架
ElasticSearch
Solr
搜索引擎
Eureka
Consul
Zookeeper
Nacos
服务发现/注册
Zuul
Gateway
网关
Ribbon
Feign
服务调用(负载均衡)
Hystrix
熔断/降级
Config
APollo
配置中心
OAuth2
SSO单点登录
认证和鉴权
Atomikos组件
JTA接口
2PC、3PC
XA模式
tcc-transaction
Byte-TCC
EasyTransaction
Seata
TCC模式
ServiceComb
SAGA模式
tx-lcn
LCN模式
分布式事物
Quartz
Elastic-Job
任务调度
Zipkin
Sleuth
Skywalking
链路追踪和监控
Logstash
Kibaba
ELK
日志分析与监控
分布式/微服务
Docker
容器技术
Kubernetes
Swarm
容器编排技术
虚拟化/容器化
后端
标签
整体结构
<!DOCTYPE html>(html5版本申明)
DOCTYPE(版本状态)
<body bgcolor=\"pink\"></body>
bgcolor背景颜色
text字体颜色
1.颜色名2.rgb3.16进制
body标签
<h1>小标题<h1>
<h1><h2>.........<h6>(依次从大到小,会自动换行)
h1标签可以被搜索引擎获取到,如果有多个,可能会进入搜索引擎的黑名单
标题标签
<hr width=\"\" align=\"\" size=\"\"/>
hr是单标签
width(宽度 1. % 2. px)
align(对其方式 1.left 2.right 3.center)
size(水平线粗细)
水平线标签
标题和水平线
段落会自动换行
<p></p>
<p align=\"\"></p>
left
right
center
justify
常用属性
段落
加几个换几行
<br />
换行
常用属性:type
square
circle
disc
<ul> <li></li> </ul>
无序列表
1
a
A
i
I
<ol> <li></li> <ol>
列表
层,块级元素,标签会自动换行
默认宽度占整个屏幕的宽度,高度取决于内容
<div align=\"\"></div>
div中元素的对其方式
<div></div>
div
<span></span>
行内元素,标签不会自动换行
空间大小根据内容决定
span
color(颜色)
sise(尺寸大小)
face(字体风格)
font
pre
<b></b>和<strong></strong>
<i></i>斜体
<u></u>下划线
<sub></sub>下标
<sup></sup>上标
格式化标签
本地磁盘路劲
网页路径
href
self(当前窗口)
blank(新窗口)
parent(父窗口)
top(顶层窗口)
target
回到顶部
回到指定位置
锚点
src
title
border
height
width
alt
alidn
img
图片
align
<table></table>
valign
bgcolor
<tr></tr>
<td></td>
<th></th>
表格
属性
action
method
name
type
disable禁用
value
readlony
maxlength
子标签<input/>
cols
rows
<textarea></textarea>
<lable></lable>
属性:type
可嵌套img标签做小图标
<button>提交标签</button>
multiple
size
disable
<select>外层标签</select>
selected
<option>内层标签</option>
<select><option>下拉框</option></select>
<form></form>
表单
<小于号
>大于号
空格
版权©
字符实体
换行,段落,水平线,标题,列表,div,表格,表单,pre
块级标签
行内标签
可将以上标签设置为行内块级标签
行内块级标签
标签的分类
常用标签
HTML5
行内式
嵌入式
引入外联样式文件
使用
CSS基本使用
通用选择器
元素选择器
id选择器
类选择器
分组选择器
后代选择器
子代选择器
相邻兄弟选择器
普通兄弟选择器
组合选择器
CSS选择器
backdround-color
backdround-image:url
backdround-repeat
backdround-size
背景
颜色
对齐方式
文本修饰
去除文本修饰
首行缩进
文本
字体样式font-family:
字体大小font-size:
字体风格font-style:
字体粗细font-weight:
字体
bolck
none
inline
inline-block
display属性
style=\"clear:both\"
浮动float
内边距有上下左右四条线,可以单独设置样式
padding
border-color:
border-width:
border-style:
边框有上下左右四条线,可以单独设置样式
border-collapse:设置表格边框
顺序上右下左
margin
盒子模型
CSS常用属性
人物简历
案例
CSS
行内js
内部js
外部js
基本用法
onclick(点击元素时触发)
alert('内容')
console.log(\"内容\")
零碎
语句和注释
标识符和关键字
变量声明
只有用var声明的变量才会有变量声明
数值型
undefined
null
布尔
object
函数转换
toString();
toFixed(参数);(参数表示保留几位小数)
Number(\"\")
String();
+“”
显示转换
+
-
*
/
%
++
--
赋值和扩展运算符
===
比较运算符
&&
||
!
表达式?语句1:语句2
if
switch
break,continue和Java中一样
控制语句
var 数组名 = new Array(size);
数组名.length= 长度
设置属性
数组的定义和赋值
for循环(和Java一样)
for in
forEach
数组的遍历
数组名.函数名();
push();
unshift();
pop();
shift();
reverse();
join();
indexOf(元素):
slice(index,index);
splice();
concat();
数组函数
格式:function 函数名([参数列表]){}
函数声明语句
var 变量名 = function([ 参数列表]){}
函数定义表达式
Function构造函数
函数的定义
函数的参数、调用与return语句
函数的作用域
函数
1.字面量形式创建:var 对象名 = {}
2.通过new object对象创建
3.通过Object对象中的create函数创建对象
比较
对象的创建
序列化
反序列化
对象的序列化与反序列化
this
对象
ECMAscript
事件类型
1oad
onload
onblur
onfocus
onchange
onclick
onmouseover
onmouseout
onkeyup
onkeydown
常用事件
事件捕获
事件冒泡
事件顺序
事件流
HTML事件处理程序
DOM 0级事件处理程序
DOM2级事件
事件处理程序
事件
Dom对象
Bom对象
JavaScript
三大件
Vue
React
Angular
Node
组件化框架
JSP/JSTL
Thymeleaf
FreeMarker
模板框架
BootStrap
jQuery
Ajax
基础库
基础套餐
前端
respones headers(16)请求头
request headers(10)响应头
http://(规则)+ip或域名:端口 / 项目路径/项目里的资源的路径?参数
请求行
http请求协议
HTTP响应协议
referer
location
refresh
HTTP消息头
HTTP协议
开启步骤
bin(脚本)
conf(相关配置文件)
sever设置端口
tomcat-users设置权限(xml)
lib jar包
logs日志文件
webapps tomcat自带项目 做的项目可以放此目录下
work-localhost 放JSP生成的源码
目录结构
idea配置tomcat
value(对外访问路劲)
@WebServlet注解
创建Web项目
Servlet的实现
cookie
HttpSession
ServletContext
文件上传和下载
servlet
JSP
过滤器
监听器
javaweb
应用框架
Nginx
CDN加速
JenKins
持续集成/持续部署
sonar
代码质量检查
日志收集和分析
运维知识(工作时间学习)
徒手撕源码
光脚造轮子
闭着眼睛深度调优
大捷
11.26
寄语
自由主题
Java后端
收藏
0 条评论
回复 删除
下一页