Swagger 学习笔记
Swagger 特点
世界上最流行的Api框架
RestFul Api 文档在线自动生成工具 -> Api文档与API定义同步更新
支持多种语言(Java,PHP…)
官网:https://swagger.io
在项目中使用Swagger需要springbox;
swagger2
ui
SpringBoot 集成 Swagger
新建 SpringBoot-web 项目
导入相关依赖
12345678910111213141516<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.0</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>sprin ...
ElasticSearch 学习笔记
ElasticSearch基本概念
Node: ES 集群的基本服务单元,每个 ElasticSearch 实例则为一个节点。
Cluster: 具有相同 cluster.name 的一组节点构成一个集群 (Cluster)。ps: 同一集群内节点名不能重复,但集群名一定相同。
Index: ES 会索引所有字段,处理过后写入反向索引 (Inverted Index)。ps: ES 数据管理顶层单位为 Index 索引,查找数据时直接查找该反向索引。 (可以类比为数据库,Index 名字必须小写)。
Document: Index 里面的单条记录称为文档(Document)。ps:ps: Index 内的结构尽可能保证相同,有利于提高搜索效率。
Type: 在 Index 里面用来虚拟逻辑分组,用于过滤 Document。比如weather的 Index 按城市(北京/上海)进行分组。ps: 不同的 Type 应该具有相似的结构,id字段中不能一个 Type 中为数值型,另一个为字符串型;两个性质不同的数据,应该存放为两个 Index 而不是存放成一个 Index 中的 ...
HTTP 请求头/响应头详解
0. HTTP 请求头
AcceptAccept:text/html 浏览器可以接受服务器回发的类型为 text/htmlAccept: */* 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)
Accept-Encoding Accept-Encoding: gzip, deflate 浏览器声明可以接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip, deflate, br),(注意:这不是只字符编码)
Accept-Language Accept-Language:zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 浏览器声明可以接收的语言。3.Connection Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。 Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户 ...
HashMap源码_构造函数
源码来源于JDK-11.0.81234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253/*** Constructs an empty {@code HashMap} with the specified initial* capacity and load factor.** @param initialCapacity the initial capacity* @param loadFactor the load factor* @throws IllegalArgumentException if the initial capacity is negative* or the load factor is nonpositive*/public HashMap(int initialCapacity, float loadFactor) { if (initialCapaci ...
多模态机器学习
多模态学习的分类1.多模态表示学习单模态的表示学习负责将信息表示为计算机可以处理的数值向量或者进一步抽象为更高层的特征向量,而多模态表示学习是指通过利用多模态之间的互补性,剔除模态间的冗余性,从而学习到更好的特征表示。
主要包括两大研究方向:联合表示(Joint Representations)和协同表示(Coordinated Representations)
联合表示:将多个模态的信息一起映射到一个统一的多模态向量空间;
协同表示:负责将多模态中的每个模态分别映射到各自的表示空间,但映射后的向量之间满足一定的相关性约束(例如线性相关)。
2.转化 Translation / 映射 Mapping转化也称为映射,负责将一个模态的信息转换为另一个模态的信息。
常见的应用包括:
机器翻译(Machine Translation):将输入的语言A(即时)翻译为另一种语言B。类似的还有唇读(Lip Reading)和语音翻译 (Speech Translation),分别将唇部视觉和语音信息转换为文本信息。
图片描述(Image captioning) 或者视频描述(Vide ...
CentOS7下安装MySQL(RPM)
0.查看当前系统版本123456#查看当前操作系统版本(base) ➜ ~ cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)#查看系统内核版本(base) ➜ ~ uname -srLinux 3.10.0-1062.18.1.el7.x86_64
1.下载MySQL安装文件下载主页https://dev.mysql.com/downloads/mysql/根据前一步获取的系统版本选择进行下载,这里则是RH7 x86_64的版本进行下载
下载RPM Bundle版本这里直接下载捆绑包,将所有的MySQL组件全部下载下来。然后解压文件包
1tar -xvf xxxx.tar
2. 卸载系统附带的MySQL (不是每个用户都需要执行此步骤)查看旧版本MySQL1rpm -qa | grep mysql
这里因为已经成功安装新版本 所以系统会显示新版本
12345(base) ➜ ~ rpm -qa | grep mysqlmysql-community-common-8.0.20-1.el7.x86_64m ...
Linux安装MySQL
0. 下载安装包下载地址:https://dev.mysql.com/downloads/mysql/
选择操作系统 Linux-Generic ,此处下载的是 mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 。
1. 卸载系统自带的 MariaDB (如果系统附带)12345#查询已经安装的 MariaDB 的安装包[root@VM-0-10-centos ~]# rpm -qa | grep mariadb[root@VM-0-10-centos ~]# #这里系统没有附带所以不用操作,如果系统附带,用下面命令将其卸载yum -y remove mariadb-xxxx (xxxx是系统附带的mariadb安装包)
2. 解压安装包123[root@VM-0-10-centos ~]# tar -Jxvf /root/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xzroot@VM-0-10-centos ~]# mv mysql-8.0.21-linux-glibc2.12-x86_64 /usr/lo ...
Integer.numberOfLeadingZero详解
源码1234567891011public static int numberOfLeadingZeros(int i) { // HD, Count leading 0's if (i <= 0) return i == 0 ? 32 : 0; int n = 31; if (i >= 1 << 16) { n -= 16; i >>>= 16; } if (i >= 1 << 8) { n -= 8; i >>>= 8; } if (i >= 1 << 4) { n -= 4; i >>>= 4; } if (i >= 1 << 2) { n -= 2; i >>>= 2; } retu ...
firewall 开启端口
查看已经打开的端口1netstat -nlp
查看打开的端口信息
Proto
Recv-Q
Send-Q
Local Address
Foreign Address
State
PID/Program name
tcp
0
0
0.0.0.0:22
0.0.0.0:*
LISTEN
1143/sshd
udp
0
0
0.0.0.0:68
0.0.0.0:*
868/dhclient
udp
0
0
127.0.0.1:323
0.0.0.0:*
628/chronyd
upd6
0
0
::1:323
:::*
628/chronyd
查看防火墙是否放行端口
1234firewall-cmd --query-port=8888/tcp #这里查询8888的tcp端口是否放行#如果提示FirewallD is not running,则说明未开启Firewallsystemctl start firewalld#启动后再执行上述语句,yes/no分别对应是否开启该端口
开放端口12fire ...
Java Exception Handling
异常处理关键字throw抛出异常必须有的关键字。在Java处理异常的过程中,如果出现异常的话,程序会创建出一个异常的对象,再由异常处理程序来处理异常。throw关键字被用来抛出异常在运行时处理
throws当某个方法抛出异常的时候,我们需要在声明方法的后面加上throws关键字。让主调方法知道被调用的方法可能会抛出这些异常,并在调用方法中处理该异常,或者将异常抛出给主调函数的调用函数(此处禁止套娃)。throws可以抛出多个异常。
try-catchtry块中存放可能存在异常的程序,而catch块会捕获由try块中所抛出的异常,一个try块可以对应多个catch块。try-catch块也可以嵌套使用。
finally不论异常是否发生,finally块的代码都会被执行。
多层异常Java中的异常类是分层的。Throwable类是Error类和Exception类的父类,Exception类又分为Checked Exceptions和Checked Exception。
ErrorError的异常出现,往往都是一些非预期的问题。比如硬件损坏,内存不足等。这些情况并不是我们在开发过程中所能 ...