数据科学与工程理论基础复习提纲

news2024/11/18 23:25:06

一、Sketch

1.1 简单抽样算法

1.1.1 核心思想

对于到达的元素 a i a_i ai,以概率 p = M / m p=M/m p=M/m对该元素的频数加1。

  • M M M:抽样后的数据流大小
  • m m m:原始数据流大小

1.1.2 操作

  • 更新:当元素 a i a_i ai到达时,以 p p p的概率更新 c i c_i ci的值;以 1 − p 1-p 1p的概率保持 c i c_i ci的值不变;
  • 估计元素频数:返回元素频数数组,其中每个元素的频数为 f i ^ = c i / p \hat{f_i}=c_i/p fi^=ci/p

1.1.3 性能

  • 空间需求: M = O ( m l o g ( 1 δ ) ϵ 2 ) M=O(\frac{mlog(\frac{1}{\delta})}{\epsilon^2}) M=O(ϵ2mlog(δ1)),所需空间与数据流大小有关

在这里插入图片描述

1.2 Basic Count Sketch算法

1.2.1 核心思想

维护一个计数数组 C C C和两个哈希函数 h ( ⋅ ) 、 g ( ⋅ ) h(\cdot)、g(\cdot) h()g()

  • h ( ⋅ ) h(\cdot) h():将 n n n个元素均匀映射到 k k k个位置
  • g ( ⋅ ) g(\cdot) g():将 n n n个元素映射为 − 1 -1 1 + 1 +1 +1

1.2.2 特点

  • 期望 E ( f a ^ ) = f a E(\hat{f_a})=f_a E(fa^)=fa,即输出结果为 f a f_a fa的无偏估计;
  • 方差 V a r ( f a ^ ) = ∣ ∣ f − a ∣ ∣ 2 2 k Var(\hat{f_a})=\frac{||f_{-a}||^2_2}{k} Var(fa^)=k∣∣fa22,随着 k k k值增大,即存储计数数组的空间增大,方差将随之减小;

1.2.3 性能

  • 空间需求: k = O ( 1 ϵ 2 δ ) k=O(\frac{1}{\epsilon^2\delta}) k=O(ϵ2δ1),与数据流大小无关

在这里插入图片描述

1.3 Count Sketch算法

1.3.1 核心思想

在Count Sketch基础上,将哈希函数个数增加到 t t t个,将每个元素都映射到 t t t个位置上,再区 t t t个位置上频数估计的中位数。

在这里插入图片描述

1.4 Count-Min Sketch算法

1.4.1 核心思想

  • 维护一个宽度为 w w w、深度为 d d d的计数器数组;
  • 另有 d d d个哈希函数;

1.4.2 特点

  • 放弃了频数的无偏估计(Count Sketch);
  • 获得了更为高效的频数估计;
  • E [ X i ] = ∣ ∣ f − a ∣ ∣ 1 k E[X_i]=\frac{||f_{-a}||_1}{k} E[Xi]=k∣∣fa1
  • P [ f a ^ − f a ≥ ϵ ∣ ∣ f − a ∣ ∣ 1 ] = P [ m i n { X 1 , . . . X d } ≥ ϵ ∣ ∣ f − a ∣ ∣ 1 ] = ∏ i = 1 d P [ X i ≥ ϵ ∣ ∣ f − a ∣ ∣ 1 ] ≤ 1 ( k ϵ ) d P[\hat{f_a}-f_a\geq\epsilon||f_{-a}||_1]=P[min\{X_1,...X_d\}\geq\epsilon||f_{-a}||_1]=\prod^d_{i=1}P[X_i\geq\epsilon||f_{-a}||_1]\leq\frac{1}{(k\epsilon)^d} P[fa^faϵ∣∣fa1]=P[min{X1,...Xd}ϵ∣∣fa1]=i=1dP[Xiϵ∣∣fa1](kϵ)d1

1.4.3 性能

  • 计数器个数 M = O ( l o g ( 1 δ ) ϵ ) M=O(\frac{log(\frac{1}{\delta})}{\epsilon}) M=O(ϵlog(δ1))

在这里插入图片描述

二、整数规划

2.1 整数规划

2.1.1 0-1变量

2.1.1.1 概念

很多问题中,决策变量取值只能为1或0。与 x i ∈ { 0 , 1 } x_i\in\{0,1\} xi{0,1}等价的说法有 0 ≤ x i ≤ 1 0\leq x_i\leq1 0xi1 x i ∈ Z x_i\in\mathbf{Z} xiZ

2.1.1.2 利用0-1变量表示互相排斥的约束条件

例1:假设两个约束通过逻辑或运算进行了组合
x ≤ 2 或 x ≥ 6 x\leq2 或 x\geq6 x2x6
引入0-1变量 w w w
w = { 1 , x ≤ 2 0 , x ≥ 6 w=\left\{ \begin{aligned} 1,\quad x\leq2 \\ 0,\quad x\geq6 \end{aligned} \right. w={1,x20,x6
和一个足够大的整数 M M M可以将约束条件改写成:
x ≤ 2 + M ( 1 − w ) x ≥ 6 − M w w ∈ { 0 , 1 } x\leq2+M(1-w)\\ x\geq6-Mw\\ w\in\{0,1\} x2+M(1w)x6Mww{0,1}
例2:假设两个约束条件通过逻辑或运算进行了组合
x 1 + 2 x 2 ≥ 12 或 4 x 1 − 10 x 3 ≤ 1 x_1+2x_2\geq12 或 4x_1-10x_3\leq1 x1+2x2124x110x31
引入0-1变量 w w w
w = { 1 , x 1 + 2 x 2 ≥ 12 0 , 4 x 1 − 10 x 3 ≤ 1 w=\left\{ \begin{aligned} 1,\quad x_1+2x_2\geq12 \\ 0,\quad 4x_1-10x_3\leq1 \end{aligned} \right. w={1,x1+2x2120,4x110x31
可以改写成:
x 1 + 2 x 2 ≥ 12 − M ( 1 − w ) 4 x 1 − 10 x 3 ≤ 1 + M w w ∈ { 0 , 1 } x_1+2x_2\geq12-M(1-w)\\ 4x_1-10x_3\leq1+Mw\\ w\in\{0,1\} x1+2x212M(1w)4x110x31+Mww{0,1}

2.1.2 松弛线性规划

2.1.2.1 概念

将去掉整数约束的整数规划问题成为整数规划的松弛线性规划

2.1.2.2 例题

整数规划问题:
I P ( 1 ) m a x 10 x 1 + 4 x 2 + 9 x 3 5 x 1 + 4 x 2 + 3 x 3 ≤ 9 0 ≤ x i ≤ 1 , x i ∈ Z , 1 ≤ i ≤ 3 IP(1)\\ max\quad 10x_1+4x_2+9x_3\\ 5x_1+4x_2+3x_3\leq9\\ 0\leq x_i\leq1,x_i\in\mathbf{Z},1\leq i\leq3 IP(1)max10x1+4x2+9x35x1+4x2+3x390xi1,xiZ,1i3
该整数规划的松弛线性规划为:
I P ( 1 ) m a x 10 x 1 + 4 x 2 + 9 x 3 5 x 1 + 4 x 2 + 3 x 3 ≤ 9 0 ≤ x i ≤ 1 , 1 ≤ i ≤ 3 IP(1)\\ max\quad 10x_1+4x_2+9x_3\\ 5x_1+4x_2+3x_3\leq9\\ 0\leq x_i\leq1,1\leq i\leq3 IP(1)max10x1+4x2+9x35x1+4x2+3x390xi1,1i3

2.2 单纯形算法

单纯形算法是求解线性规划的经典方法。它的执行时间在最坏情况下不是多项式的,但是在实际中此算法通常相当快速。

2.2.1 主要思想

  • 每轮迭代都关联一个“基本解”,容易从松弛型中计算得到。
  • 每轮迭代把一个松弛型转换成一个等价的松弛型。
  • 最终,指导一个最优解变得“明显”

2.3 分支定界算法

2.3.1 枚举树

2.3.1.1 概念

枚举树是以树状结构将可行域不断进行划分并一一列举出来的数据结构。

在这里插入图片描述

2.3.2 分支定界算法

2.3.2.1 剪枝规则

分支定界算法是为了对上述的枚举树进行剪枝,剪枝规则如下:

  • 若已找到某个节点的最优解,删除其所有子孙节点;
  • 若已知枚举树中某个节点的最优解,而当前节点的松弛线性规划问题的最优解都比这个解要小,则删除当前节点及其子孙节点;
  • 若当前节点对应的松弛线性规划问题没有可行解,删除当前节点及其子孙节点。

2.3.2.2 算法

在这里插入图片描述

三、集合覆盖

3.1 问题定义

3.1.1 覆盖

A A A是非空集合, C C C是集合 A A A的非空子集组成的集合,即 C = { A α ∣ A α ⊂ A , A α ≠ ∅ } C=\{A_\alpha|A_\alpha\subset A,A_\alpha\neq\empty\} C={AαAαA,Aα=} C C C是集合 A A A覆盖,若 C C C满足
∪ A α ∈ C A α = A \cup_{A_\alpha\in C}A_\alpha=A AαCAα=A

3.1.2 最小全覆盖问题

U U U为一有限集, S = { s 1 , s 2 , . . . , s n } S=\{s_1,s_2,...,s_n\} S={s1,s2,...,sn}为由 U U U n n n个子集构成的集族,全覆盖问题是找到 S S S最小的自己覆盖集合 U U U

3.1.3 最大子覆盖问题

U U U为一有限集, S = { s 1 , s 2 , . . . , s n } S=\{s_1,s_2,...,s_n\} S={s1,s2,...,sn}为由 U U U n n n个子集构成的集族,给定正整数 k k k最大子覆盖问题是从 S S S中找到 k k k个子集,使得这 k k k个子集覆盖集合 U U U中最多的元素。

3.2 爬山算法

3.2.1 概念

爬山算法(hill-climbing algorithm)是一个解决子模优化问题的局部搜索算法。算法12.1是爬山算法的一个实例,它解决了最大子覆盖问题

在这里插入图片描述

四、模块度及社区发现

4.1 模块度

4.1.1 概念

社区划分的好坏与划分后的社区内部顶点及社区之间顶点的连接程度紧密相关,划分越好的社区中各社区内部顶点之间连接得也越紧密,而社区之间连接得越稀疏。模块度正是基于这样的一个观测而定义的。

4.1.2 无向图的模块度定义

4.1.2.1 表达式

无向图的模块度可以计算为:
Q = 1 2 m ∑ i , j ( A i j − k i k j 2 m ) δ ( C i , C j ) Q=\frac{1}{2m}\sum_{i,j}(A_{ij}-\frac{k_ik_j}{2m})\delta(C_i,C_j) Q=2m1i,j(Aij2mkikj)δ(Ci,Cj)

  • n n n:顶点个数
  • m m m:边数
  • A A A:邻接矩阵
  • k i k_i ki:顶点 v i v_i vi的度
  • δ ( C i , C j ) = { 1 , 如果 v i 和 v j 属于同一个社区 0 , 否则 \delta(C_i,C_j)=\left\{ \begin{aligned} 1,如果v_i和v_j属于同一个社区\\ 0,&否则 \end{aligned} \right. δ(Ci,Cj)={1,如果vivj属于同一个社区0,否则

4.1.2.2 例题

在这里插入图片描述

解:由图可知, m = 8 , k 1 = 2 , k 2 = 2 , k 3 = 3 , k 4 = 3 , k 5 = 2 , k 6 = 2 , k 7 = 2 m=8,k_1=2,k_2=2,k_3=3,k_4=3,k_5=2,k_6=2,k_7=2 m=8,k1=2,k2=2,k3=3,k4=3,k5=2,k6=2,k7=2
Q = 1 16 [ ( A 11 − k 1 k 1 16 ) + 2 ( A 12 − k 1 k 2 16 ) + 2 ( A 13 − k 1 k 3 16 ) + ( A 22 − k 2 k 2 16 ) + 2 ( A 23 − k 2 k 3 16 ) + ( A 33 − k 3 k 3 16 ) + ( A 44 − k 4 k 4 16 ) + 2 ( A 45 − k 4 k 5 16 ) + 2 ( A 46 − k 4 k 6 16 ) + 2 ( A 47 − k 4 k 7 16 ) + ( A 55 − k 5 k 5 16 ) + 2 ( A 56 − k 5 k 6 16 ) + 2 ( A 57 − k 5 k 7 16 ) + ( A 66 − k 6 k 6 16 ) + 2 ( A 67 − k 6 k 7 16 ) + ( A 77 − k 7 k 7 16 ) ] = 47 128 Q=\frac{1}{16}[(A_{11}-\frac{k_1k_1}{16})+2(A_{12}-\frac{k_1k_2}{16})+2(A_{13}-\frac{k_1k_3}{16})\\ +(A_{22}-\frac{k_2k_2}{16})+2(A_{23}-\frac{k_2k_3}{16})+\\ (A_{33}-\frac{k_3k_3}{16})\\ +(A_{44}-\frac{k_4k_4}{16})+2(A_{45}-\frac{k_4k_5}{16})+2(A_{46}-\frac{k_4k_6}{16})+2(A_{47}-\frac{k_4k_7}{16})\\ +(A_{55}-\frac{k_5k_5}{16})+2(A_{56}-\frac{k_5k_6}{16})+2(A_{57}-\frac{k_5k_7}{16})\\ +(A_{66}-\frac{k_6k_6}{16})+2(A_{67}-\frac{k_6k_7}{16})\\ +(A_{77}-\frac{k_7k_7}{16}) ]=\frac{47}{128} Q=161[(A1116k1k1)+2(A1216k1k2)+2(A1316k1k3)+(A2216k2k2)+2(A2316k2k3)+(A3316k3k3)+(A4416k4k4)+2(A4516k4k5)+2(A4616k4k6)+2(A4716k4k7)+(A5516k5k5)+2(A5616k5k6)+2(A5716k5k7)+(A6616k6k6)+2(A6716k6k7)+(A7716k7k7)]=12847

4.1.2.3 另一种模块度表达式

Q = 1 2 m ∑ i , j ( A i j − k i k j 2 m ) δ ( C i , C j ) = ∑ i , j ( A i j 2 m − k i k j 4 m 2 ) δ ( C i , C j ) = ( ∑ i , j A i j 2 m − ∑ i k i ∑ j k j 4 m 2 ) δ ( C i , C j ) = ∑ c ∈ C [ ∑ i n c 2 m − ( ∑ t o t c 2 m ) 2 ] Q=\frac{1}{2m}\sum_{i,j}(A_{ij}-\frac{k_ik_j}{2m})\delta(C_i,C_j)\\ =\sum_{i,j}(\frac{A_{ij}}{2m}-\frac{k_ik_j}{4m^2})\delta(C_i,C_j)\\ =(\sum_{i,j}\frac{A_{ij}}{2m}-\frac{\sum_ik_i\sum_jk_j}{4m^2})\delta(C_i,C_j)\\ =\sum_{c\in C}[\frac{\sum^c_{in}}{2m}-(\frac{\sum^c_{tot}}{2m})^2] Q=2m1i,j(Aij2mkikj)δ(Ci,Cj)=i,j(2mAij4m2kikj)δ(Ci,Cj)=(i,j2mAij4m2ikijkj)δ(Ci,Cj)=cC[2minc(2mtotc)2]

  • ∑ i n c \sum^c_{in} inc:社区 c c c内部有向边的数量;
  • ∑ t o t c \sum^c_{tot} totc:社区 c c c内部所有顶点度的总和;

4.1.2.4 例题

用上述表达式计算上图的模块度:
Q = [ 6 16 − ( 7 16 ) 2 ] + [ 8 16 − ( 9 16 ) 2 ] = 47 128 Q=[\frac{6}{16}-(\frac{7}{16})^2]+[\frac{8}{16}-(\frac{9}{16})^2]=\frac{47}{128} Q=[166(167)2]+[168(169)2]=12847

4.1.3 权重无向图的模块度定义

4.1.3.1 表达式

假设 W W W为图 G G G的权重矩阵,其中
W i j = { w i j , 如果 A i j = 1 0 , 否则 W_{ij}=\left\{ \begin{aligned} w_{ij},如果A_{ij}=1\\ 0,否则 \end{aligned} \right. Wij={wij,如果Aij=10,否则
即图 G G G的每条边上赋予了一个权重 w i j w_{ij} wij。权重无向图的模块度定义为:
Q = 1 2 m ∑ i , j ( W i j − k i k j 2 m ) δ ( C i , C j ) Q=\frac{1}{2m}\sum_{i,j}(W_{ij}-\frac{k_ik_j}{2m})\delta(C_i,C_j) Q=2m1i,j(Wij2mkikj)δ(Ci,Cj)

  • 2 m = ∑ i , j W i j 2m=\sum_{i,j}W_{ij} 2m=i,jWij
  • k i = ∑ j W i j k_i=\sum_jW_{ij} ki=jWij

4.1.4 有向图的模块度定义

4.1.4.1 表达式

假设 A A A为有向图 G G G的邻接矩阵,其中 m m m为有向边的数量,定义顶点 v i v_i vi的出度和入度分别为:
k i o u t = ∑ j A i j 和 k i i n = ∑ j A j i k_{i}^{out}=\sum_jA_{ij}\quad和\quad k^{in}_i=\sum_jA_{ji} kiout=jAijkiin=jAji
有向图的模块度定义如下
Q = 1 m ∑ i , j ( A i j − k i o u t k j i n m ) δ ( C i , C j ) Q=\frac{1}{m}\sum_{i,j}(A_{ij}-\frac{k^{out}_ik^{in}_j}{m})\delta(C_i,C_j) Q=m1i,j(Aijmkioutkjin)δ(Ci,Cj)

4.1.5 模块度的矩阵定义

4.1.5.1 表达式

定义一个 n × k n\times k n×k的矩阵 S S S S i j = 1 S_{ij}=1 Sij=1表示顶点 v i v_i vi属于第 j j j个社区, S i j = 0 S_{ij}=0 Sij=0表示顶点 v i v_i vi不属于第 j j j个社区,所以
δ ( C i , C j ) = ∑ r S i r S j r \delta(C_i,C_j)=\sum_rS_{ir}S_{jr} δ(Ci,Cj)=rSirSjr
定义实对称矩阵 B B B,其元素满足
B i j = A i j − k i k j 2 m B_{ij}=A_{ij}-\frac{k_ik_j}{2m} Bij=Aij2mkikj
则社区结构模块度可以改写为:
Q = 1 2 m ∑ i , j ( A i j − k i k j 2 m ) δ ( C i , C j ) = 1 2 m ∑ i , j B i j ∑ r S i r S j r = 1 2 m ∑ i , j ∑ r B i j S i r S j r = 1 2 m T r ( S T B S ) Q=\frac{1}{2m}\sum_{i,j}(A_{ij}-\frac{k_ik_j}{2m})\delta(C_i,C_j)\\ =\frac{1}{2m}\sum_{i,j}B_{ij}\sum_{r}S_{ir}S_{jr}\\ =\frac{1}{2m}\sum_{i,j}\sum_{r}B_{ij}S_{ir}S_{jr}\\ =\frac{1}{2m}Tr(S^TBS) Q=2m1i,j(Aij2mkikj)δ(Ci,Cj)=2m1i,jBijrSirSjr=2m1i,jrBijSirSjr=2m1Tr(STBS)
其中 T r ( S T B S ) Tr(S^TBS) Tr(STBS)为矩阵的迹,即对角元素之和。

4.2 Louvain算法

4.2.1 算法步骤

在这里插入图片描述

4.2.2 表达式

模块度增益 Δ Q ( v i → B ) \Delta Q(v_i\rightarrow B) ΔQ(viB)计算为
KaTeX parse error: Can't use function '$' in math mode at position 2: $̲\Delta Q(v_i\ri…
模块度损失 Δ Q ( A → v i ) \Delta Q(A\rightarrow v_i) ΔQ(Avi)计算为
Δ Q ( A → v i ) = ∑ i , t o t A ′ ⋅ k i 2 m 2 − k i , i n A ′ 2 m \Delta Q(A\rightarrow v_i)=\frac{\sum^{A'}_{i,tot}\cdot k_i}{2m^2}-\frac{k^{A'}_{i,in}}{2m} ΔQ(Avi)=2m2i,totAki2mki,inA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/112729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分库分表:垂直分库、垂直分表、水平分库、水平分表四个概念

文章目录一、分库分表的意义二、垂直分表的思路三、垂直分库的思路四、水平分库的思路五、水平分表的思路一、分库分表的意义 随着公司业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫。分析一下问题出现在哪儿呢&#xf…

太强了,阿里内部JDK源码剖析知识手册,由浅入深堪称完美

前言 作为Java程序员,在这里想问问大家在空余时间有没有去读过 JDK 源码,虽然读源码有点自不量力的感觉,(大佬可以忽略这句)但是如若能够经常在空余时间看一下 jdk 源码不仅可以让自己对日常的开发环境了解得更加深刻…

【nowcoder】笔试强训Day3

目录 一、选择题 二、编程题 2.1在字符串中找出连续最长的数字串 2.2 数组中出现次数超过一半的数字 一、选择题 1.以下代码运行输出的是 public class Person{private String name "Person";int age0;} public class Child extends Person{public String gra…

Python json常见用法

目录 导包 api介绍 常见用法 json转python内置对象 字典对象 数组对象 文件读取 python内置对象转json 字典转json 字典转json(压缩存储) 字典转json(美化输出) 文件读取 自定义对象 普通对象 嵌套对象 补充支持 …

设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模

“ 架设一个亿级高并发系统,是多数程序员、架构师的工作目标。 许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。” 开篇 要实现软件…

数据库系统概论第七章(数据库设计)知识点总结(1)—— 概述

本专栏收录了数据库的知识点,而从本文起,将讲述有关于数据库设计有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看 🎈 数据库知识点总结(持续更新中):【数据库…

了解学习node中著名的co模块原理,生成器+promise实现async+await

***内容预警*** 新手内容,菜鸟必看,大佬请绕道 首先 co 是一个npm第三方模块,我们需要npm install 之后才能使用它。 作为一个菜鸟我相信你肯定没有用过这个模块,但是据说这个模块很有名,那么我们就有必要来了解一下它…

35. 池化层 / 汇聚层 代码实现

1. 池化层 在下面的代码中的pool2d函数,我们实现汇聚层的前向传播。 这类似于之前文章中的的corr2d函数。 然而,这里我们没有卷积核,输出为输入中每个区域的最大值或平均值。 from torch import nn from d2l import torch as d2l# X是输入&…

实习------Java基础

基础语法 基本数据类型(熟悉) Java有哪些数据类型 定义:Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。 boolean类型占多少个字节? boolean类型…

【docker】手把手教学docker与docker-compose安装

目录 1、docker安装 2、docker-compose安装 1、docker安装 方式一 https://fanjufei.blog.csdn.net/article/details/123500511https://fanjufei.blog.csdn.net/article/details/123500511 方式二 通过命令行安装。 sudo apt install docker.io sudo systemctl status doc…

linux篇【12】:计算机网络<后序>

一.tcp接入线程池(使用线程池) 1.tcp初步接入线程池 我们设置了对应的任务是死循环,那么线程池提供服务,就显得有不太合适。我们给线程池抛入的任务都是短任务 因为他并没有访问任何类内成员,所以可以把执行方法提到…

智能服务机器人简介

文章大纲 服务机器人上升趋势明显服务机器人核心技术与应用场景目标跟踪人脸识别算法SLAM 即时定位与地图构建(Simultaneous Localization and Mapping,简称SLAM)老人看护手势识别多模态与机器人参考文献与学习路径服务机器人上升趋势明显 服务机器人充分融合机器视觉、语音…

【Redis—持久化】

1.持久化机制 持久化就是把内存的数据写到磁盘中,防止服务宕机导致内存数据丢失。 2.AOF AOF概述 AOF持久化:以独立日志就把该命令。以追加的方式写入到一个文件里,然后重启 Redis 的时候,先去读取这个文件里的命令达到恢复目…

K8S-存储-Volume

问题 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃 时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。…

IDEA 控制台日志中文乱码解决方案

老白新学JAVA,初用IDEA,控制台打印中文总是乱码,网上找了好多解决方法,都不好用,下面记录解决过程。 1.修改idea64.exe.vmoptions ,打开最后一行增加如下代码 idea快捷方式右键->属性->打开文件所有位置&#x…

Redis 性能优化 —— 内存碎片

文章目录一、内存碎片场景描述二、内存碎片概念解析三、内存碎片产生原因四、内存碎片如何判断五、内存碎片解决方案六、内存碎片扩展技能一、内存碎片场景描述 作为内存数据库,内存空间的大小对于 Redis 来说是至关重要的。内存越多意味着存储的数据也会越多&#…

多线程下对象的析构问题

多线程遇上对象析构是个很麻烦的问题,这里我用一个多线程的单例模式去演示一下对象析构的问题 懒汉模式,加锁,线程安全 懒汉模式:需要的时候new一个对象,不需要的时候delete (线程安全的懒汉)单…

服务注册配置中心Nacos

文章目录一. 前言二. 下载安装1. 下载安装包2. Windows环境安装3. Linux环境安装1. 单击模式启动2. 集群模式启动3. 远程web控制4. 注册为系统服务三. 基本使用1. 添加依赖2. 服务注册3. 配置实例集群属性4. 实例权重负载均衡5. 环境隔离6. 临时实例与非临时实例四. Nacos配置管…

Gradle学习笔记之文件操作

文章目录本地文件文件集合文件树文件拷贝归档文件Gradle中的文件操作方式有五种:本地文件、文件集合、文件树、文件拷贝和归档文件。 本地文件 比较简单,API跟java中的完全一致: task("test_file") {doFirst {def f1 file(&quo…

史上最强,这份在各大平台获百万推荐的Java核心手册实至名归

又逢“金九银十”,年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而,面试人群众多,技术市场却相对冷淡,…