软件设计师中级

计算机系统

运算器和控制器

算术逻辑单元
累加寄存器器
状态寄存器
数据缓冲寄存器

指令寄存器
程序计数器
地址寄存器
指令译码器

内存按字节编址

内存存储单元16位 +1

浮点数

浮点数范围:-2的(2的阶码次)-1到-2的(2的阶码次)-1 乘 1-2负尾数次

海明码

海明码: 2 k − 1 > = n + k 2^k-1>=n+k 2k1>=n+k

流水线计算

流水线执行时间=一条指令执行时间+最长时间段x(n-1) n为总指令数,吞吐率=n/流水线执行时间

Cache

cache:全相联。
cache与主存映射由硬件完成。
中断向量提供入口地址。

加密算法

AES:对称分组加密。
RSA:非对称数字签名。
DES:共享密钥加密。
MD5:摘要算法。
RC5:大量明文加密。

系统可靠度

系统可靠性:串联(其中任意一个模块失效都会导致系统失效): R = R 1 ∗ R 2 ∗ . . . . . R n R=R_1*R_2*.....R_n R=R1R2.....Rn 并行: R = 1 − ( 1 − R 1 ) ( 1 − R 2 ) . . . . ( 1 − R n ) R=1-(1-R_1)(1-R_2)....(1-R_n) R=1(1R1)(1R2)....(1Rn)

程序设计语言

符号表

高级程序编译时,可执行语句转为中间代码,声明语句则存入符号表。

词法、语法、语义

类型检查:语义分析。其他:语法分析。

有穷自动机

有穷自动机进行词法分析的工具。

有限自动机

最终要到达双圈(有限自动机最后要到达终态)

不确定有限自动机

下图:非确定性有限自动机。0:两种情况。要么循环要么转到B。
在这里插入图片描述

文法

文法:上下文无关文法 推

知识产权

软件著作权

软著:发 发表权(终生、死后五十年) 署 署名权 修 修改权 保 保护作品不受损 (署 修 保永久保护)

数据库

关系代数(重点)

要求该关系表达式的结果集。先进行组合,RXS的属性列名分别为R…A,RB,RC,SA,S.B和SC。从中选取第一个分量(R.A)小于第6个分量(S.C)的元组。从中选取第3,4,5列。
在这里插入图片描述
R1<>R2自然连接,去掉重复的。

关系模式、范式

关系模式为R<U,F>,U={A,B,C},F={AB→C,C→B},则关系有2个候选关键字AC和AB,并且有3个主属性。AC或AB可以推出所有属性。包含在任何一个候选码中的属性叫主属性。
关系模式R(E,N,M,L Q),其函数依赖集为F={E→N,EM→Q, M→ㄩ}。主键:EM。E–>N,M–>L,N和L部分依赖于主键,所以为1NF。其他一般为2NF。函数依赖集R2(E,M,Q)

E-R图属性

E-R:派生属性:可以计算得到。多值属性:多个value

数据库设计

数据库设计:需求,概念,逻辑,物理

面向对象

多态

过载多态:操作有相同的名称,在不同上下文代表含义不同
包含多态:子类型化

绑定

静态绑定:代码编译时绑定
动态绑定:代码运行时绑定

面向对象设计原则

依赖倒置原则:依赖于抽象不依赖与实现。
里氏替换原则:任何基类可以出现的地方子类一定可以出现。
单一责任:一个类应该仅有一个引起它变化的原因。
开放-封闭:可以扩展不能修改。
共同封闭:一个变化影响到包则对其中所有类产生影响。
接口分离:依赖于抽象,不依赖于具体。
共同重用:重用包中一个类就要重用所有类。

面向对象分析与设计

面向对象分析:认定,组织,描述,确定 对象
面向对象设计:识别类,定义属性,定义服务,识别关系,识别包
面向对象测试:算法层,类层,模板层,系统层

UML

UML关系(类间关系依次增强):

依赖:类A方法中使用类类B的对象
关联:部分和整体。(聚合和组合是其特殊存在)
聚合:类A的部分是由类B对象组成,类A对象消失类B对象仍存在
组合:类A的部分是由类B对象组成,类A对象消失类B对象也消失
继承:
泛化:细化类,子元素共享父元素

类图(考得多)

一个方框里有一两根竖线

对象图(一个方框)

用例图(有小人)

时序图(有虚线分割)

通信图(方框里有冒号)

状态图(有大黑点)(难)

活动图(有黑竖条)(简单)

合并分叉、监护表达式

组件图(有书类标志)

–(供接口 --O需接口

部署图

展示软件和硬件的物理关系,实施阶段

设计模式

抽象类:不实现具体方法,只定义方法。其他类继承抽象类需要重写这些方法,想当与一个模板,占位置。
接口类:类似与抽象类,不需要用abstract。其他类implents接口类也需要重写该方法。

https://refactoringguru.cn/design-patterns

创建型模式(生抽单原,工厂)

工厂方法:创建对象的接口。子类决定实例哪个类。
(抽象工厂,不同工厂生成固定产品)

interface Factor {
	public Product createProduct();
}

class FactoryA implements Factory {
	@Override
	public Porduct createProduct() {
		return new ProductA();
	}
}

Factory factoryA = new FactoryA();
//父类 对象名 = new 子类(); 多态

抽象工厂:创建对象的接口。无需指定具体类。(抽象工厂,抽象产品,不同工厂生成想要的产品)(下午考过一次)

interface Factory {
	public ProductA createProductA();
	public ProductB createProductB();

生成器:复杂对象构建与表示分离。(下午考过两次)

# 产品、生成器构建获取产品、Director组装builder
# 用途:组成、装配
class Director {
	public void Construct(Builder builder) {
		builder.BuilderPart();
	}
}


abstract class Builder {
	public abstract void BuilderPart();
	public abstract Product getResult();
}

class Builder1 extends Builder {
	Product product = new Porcut();
}

原型:原型指定种类,复制原型创建新对象(下午考过一次)

interface Prototype {
	public Object Clone();
}

class Product implement Prototype {
	private int id;
	private double price;

	public Product(int id, double price) {
		this.id = id;
		this.price = price;
	}

	public int getId() {
		return id;
	}
	
	public double getPrice() {
		return price;
	}

	@override
	public Object Clone() {
		Product object = new Product();
		object.id = this.id;
		object.price = this.price;
		return object;
	}
}

单例:一个类仅有一个实例(只考上午)

结构型模式(享代组装外桥,适配器)

适配器:一个接口转换成另一个接口(类适配器、对象适配器)(下午考过一次)

USB usb = new Adapter();
usb.Request();

class USB {
	public void Request() {
		System.out.println("USB shu ju xian");
	}
}

class TypeC{
	public void SpecificRequest() {
		System.out.println("TypeC shu ju xian");
	}
}

class Adapter extends USB {
	private TypeC typeC = new TypeC();
	
	@Override
	public void Request() {
		typeC.SpecificRequest();
	}
}

桥接:抽象与实现分离(下午考过三次)

# n种产品 m种颜色 n*m个类
# 产品类,颜色类  实现和抽象分离
Product productA = new ProductA();
Color red = new Red();
productA.setName("产品A");
productA.setColor(red);
productA.Operation();

abstract class Product {
	private String name;
	protected Color color;
	
	public void setName(String name) {
		this.name = name;
	}

	public void setColor(Color color) {
		this.color = color;
	}

	public abstract void Operation();
}

class ProductA extends Product{ 
	@override
	public void Operation() {
		color.OperationImp(this.getName());
	}

interface Color {
	public void OperationImp(String name);
}

class Red implements Color {
	@ override
	public void Operation(String name) {
		System.out.println(name + "红色");
	}
}

组合:对象组合成树,表示部分-整体(文件夹-文件夹-文件)(下午考过四次)

Abstract floderA = new Floder(name:"floderA");
floderA.printName();
Abstract fileB = new Floder(name:"fileB");
fileB.printName();

abstract class AbstractFile {
	protected String name;
	public void printName() {
		System.out.println(name);
	}
}

class Floder extends AbstractFile {
	public Folder(String name) {
		this.name = name;
	}
}

class File extends AbstractFile {
	public File(String name) {
		this.name = name;
	}
}

装饰:对象添加额外职责(下午考过两次)
外观:子系统接口提供界面(下午考过一次)
享元:共享技术支持细粒度对象(下午考过一次)
代理:给其他对象提供代理控制对象访问

行为型模式

责任链:多个对象处理请求,避免耦合
命令:请求封装为对象
解释器:给定语言,定义文法,定义解释器
迭代器:顺序访问聚合对象各个元素
中介者:中介对象封装对象
备忘录;捕获对象内部状态,在对象外保存这个状态
观察者:一个对象状态改变,通知其他对象更新
状态:一个对象内部状态改变 改变其行为
策略:封装起来 可以互相替换(下午考过四次)
模板方法:定义算法骨架,一些步骤延迟到子类
访问者:作用于某对象结构的各元素

操作系统

进程管理(前趋图常考)

前趋图:在进程P执行前P信号量(S),进程P执行后V信号量(S)
先将S1…按顺序标好。
在这里插入图片描述

进程三态:就绪、运行、等待

信号量PV

n个共享几个资源代表几个信号量max,-(n-几) 信号量min
信号量S:可以表示存放东西的数量,可以是0,1,n

死锁

系统中m个存储资源,n个进程最多使用w个资源。则m<nw有可能死锁。如果循环分配资源,最好发现不够就会死锁。

文件目录

修改目录文件时发生崩溃,对系统影响最大

多线程

多线程不能共享线程的栈指针

局部性原理(淘汰未被访问未被修改的)

分页存储管理

逻辑地址:2C25H,首数字为2,即页号为2,根据表中得到页帧号+C25H即可

磁盘调度(先排序柱面号,磁头扇区从小到大)

多级索引

一级:块/2
二级:块数平方/2

结构化开发

耦合

内容耦合:A直接访问B内数据
公共耦合:可以访问全局变量
标记耦合:A将数据传给B

内聚

逻辑内聚:
巧合内聚:抽出来组成新模块
通信内聚:读写数据
过程内聚:特定次序执行

设计原则(作用在控制内)

软件工程

CMM(成熟度模型)

1级:杂乱无章 2级:基本项目管理 3级:标准化 4级:详细标准 5级:定量分析

CMMI(成熟度模型集成)

CL0:未完成的 CL1:输入转输出 CL2:已管理的 CL3:已定义的 CL4:定量管理 CL5:优化的

瀑布模型(以前做过的系统需要重新做)(V型模型是瀑布的变种,关于测试活动)

增量模型(核心+一部分一部分)

原型模型(快速构建系统以理解问题)

演化模型(快速开发原型,根据用户意见进行迭代)

螺旋模型(适用于复杂大型软件)

喷泉模型(面向对象,无边界)

统一过程模型(初启、精化、构建、移交、产生)

敏捷方法

极限编程:价值观、原则、实践
水晶法:不同项目不同策略
并列争求法:迭代
自适应软件开发:6基本原则

度量法

环路复杂度:环+1

白盒测试

覆盖准测由弱到强:语句覆盖-判定覆盖-条件覆盖-路径覆盖

可维护性指标(可理解性、可测试性、可修改性)(不选预防性选完善性)

可靠性:MTTF/ (1+MTTF)
可用性:MTBF/ (1+MTBF)
可维护性:1 / (MTTR+1)
沟通路径:n(n-1)/2

项目活动图

关键路径:时间最长的路径 延迟时间:关键路径-最短时间

软件风险(不确定性、损失)

配置数据库:开发、受控、产品
配置管理不包括:质量控制、风险管理
功能性包括质量子特性

信息安全

防火墙

内网、DMZ(web、应用级)、外网

病毒

特洛伊木马:向外连接网络
宏病毒:攻击office软件
X卧底:攻击智能手机
蠕虫病毒:熊猫烧香、红色代码、爱虫病毒、震网

网络安全

HTTPS:SSL 443
MIME:与邮箱安全无关。邮箱加多媒体数据
基于UDP:DHCP、DNS、SNMP、TFTP
基于HTTP:SMTP(20),POP3(110)、
URL:协议名://主机名.域名/路径/文件名

IP地址

A类地址码(子网掩码):8位。B类地址码:16位。C类地址码:24位。
222.125.80.128/26。占用了26位。可用主机位: 2 6 − 2 = 62 2^6-2=62 262=62。最小地址222.125.80.129,最大222.125.80.190
把上面的划分为222.125.80.128/28,可以的到2的28次-26次,即4个。
其他问题转为2进制

数据结构

时间复杂度

递归时间复杂度:T(n)=2T(n/2)+nlgn ( n l g 2 n nlg^2n nlg2n)、 T(n)=7T(n/2)+ n 2 n^2 n2 (7平方-1)
T(n)=T(n-1)+n ( n 2 n^2 n2)、 T(n)=8T(n/2)+ n 2 n^2 n2 n 3 n^3 n3,8平方-1)

线性表

队列

(Q.front+Q.size-1+M)%M、(Q.real-Q.size+1+M)%M

KMP模式匹配

a b a a b a c a
1 2 3 4 5 6 7 8
i从1开始。取1前面的字符串是0。取2前面的字符串a,0+1=1。取3前面的字符串ab,0+1=1。取4前面的字符串aba:前缀a和后缀a相等为1,1+1=2。取5前面的字符串是abaa:前缀a和后缀a相等,1+1=2。取6前面的字符串是abaab:前缀ab和后缀ab相同,2+1=3。取7前面的字符串是abaaba:前缀aba和后缀aba相同:3+1=4。
0 1 1 2 2 3 4

矩阵算位置(直接带入选项)

节点总数=度x个数 + 1
二叉树:

算法

回朔法(上午:1次,下午:2次)(N皇后问题)

4x4棋盘,放4个皇后,横竖斜两个皇后不能。
先放一个,一行一行试第二个
判断是否在一列:Qi列 == Qj列
判断是否在斜列:|Qi行-Qj行| == |Qi列-Qj列|

/* 代码填空、算法策略、解数据结果
非递归:循环迭代
j代表行号 */
#include <stdio.h>
#include<math.h>
#define N 4
int q[N+1]; //存储皇后的序号

int check(int j) {
	int i;
	for (i = 1; i < j; i++) {
		if (q[i] == q[j] || abs(i-j) == abs(q[i]-q[j])){
			return 0;
		}
	return 1
}

void queue() { // 求解N皇后方案
	int i;
	for (i=1;i<=N;i++){
		q[i]=0;
	}
	int answer=0; // 方案数
	int j=1; // 表示正在摆放第j个皇后
	while(j>=1){
		q[j] = q[j]+1; // 让第j个皇后向后一列摆放
		while (q[j]<=N&&!check(j)) { // 判断第j个皇后是否合法
			q[j] = q[j]+1;  // 不合法就往后放
		}
		if (q[j]<=N) {  // 表示第j个皇后合法
			if(j==N){ // 找到了N皇后的一组解
				answer = answer+1;
				printf("方案%d: ", answer);
				for (i=1;i<=N;i++){
					printf("%d ", q[i]);
				}
				printf("\n");
			}else{ // 继续摆放
				j = j+1;
			}
		} else { // 表示第j个皇后不合法
			q[j]=0; // 还原
			j = j-1; // 回溯
	}
}

		
int main() {
	queen();
	return 0;
}
// 递归
#include <stdio.h>
#include<math.h>
#define N 4
int answer=0;
int q[N+1]; //存储皇后的序号

int check(int j) {
	int i;
	for (i = 1; i < j; i++) {
		if (q[i] == q[j] || abs(i-j) == abs(q[i]-q[j])){
			return 0;
		}
	return 1
}

void queue(int j) { // 求解N皇后方案
	int i;
	for (i=1;i<=N;i++){
		q[i]=i;
		if (check(j)){ // 当摆放皇后位置合法时
			if (j==N) {  // 找到了N皇后的一组解
				answer = answer+1;
				print("方案%d: ", answer);
				for (i=1;i<=N;i++){
					print("%d ",q[i]);
				}
				printf("\n");
			}else{
				queen(j+1); //递归摆放下一个皇后
			}
		}
	}
}
int main() {
	queen(1);
	return 0;
}
//2015年上半年试题四 回溯法
pos[j]==pos[k]
j=1
!isplace(pos, j)
j<N
j=j-1
回溯法
2,41,3
3,14,2
//2019年上半年试题四 回溯法
queen[i]==queen[j[
1
Place(j)
Nqueen(j+1)
回溯法
2
(2,4,1,3)
(3,1,4,2)

分治法

一直二分,拆分成多个独立子问题,递归实现。归并排序(拆成一个一个最小,然后合并)

//2014年上半年 分治法
k<r+1
arr[k]=right[j]
begin<end
mergeSort(arr,mid+1,end)
分治
T(n)=2T(n/2)+n
O(nlgn)
O(n)
n1+n2

动态规划法

0-1背包问题、矩阵连乘、最长公共序列
与分治法类似,分成子问题,子问题不独立。表格记录子问题结果,用分治法会耗时。适合求解最优值问题。
两个性质:最优子结构、重叠子问题。

// 0-1背包问题:n个物品、vi价值、wi重量、w背包容量
// 贪心会先装价值最大的
// 动态规划:求背包为w-1的最优解、一直到w为0。然后N个物品也从最大到0。
// 这样就得到一个表格:从前i个物品选放入j容量背包。不选第i个物品:从前i-1个里选。选第i个物品条件:容量j>=第i个物品重量,否则就成为从不选第i个物品问题(即前i-1个里j减第i个物品重量)。
//f[i][j]=v[i]+f[i-1][j-w[i]]
//要考虑选第i个物品和不选第i个物品的总价值进行比较来抉择哪个
#include <stdio.h>
#define N 4 // 物品数量
#define W 5 // 背包容量
int max(int a, int b){
	return a>b?a:b;
}
int main() {
	int v[] = {0, 2, 4, 5, 6}; // 物品价值数组
	int w[] = {1, 2, 3, 4}; // 物品重量数组
	int f[N+1][W+1] = {}; // 子问题解数组
	int i,j;
	for (i=1;i<=N;i++){
		for (j=1;j<=W;j++){ 
			if (j>=w[i]){ // 选第i个物品的前提条件
				// 等于不选第i个物品和选第i个物品两者的较大值
				f[i][j]=max(f[i-1][j], f[i-1][j-w[i]]+v[i]);
			}else{
				f[i][j]=f[i-1][j];
			}
		}
	}
	printf("%d\n", f[N][W]);
	for (i=0;i<=N,i++){
		for (j=0;j<=W;j++){
			printf("%d ", f[i][j]);
		}
		printf("\n");
	}
	return 0;
}
//时间复杂度:O(NW)
//空间复杂度:O(NW)
//矩阵连乘-上午题:1动态规划、2时间复杂度O(n^3)、3空间复杂度O(n^3)、4计算方法
//最长公共序列:
// 2021年下半年动态规划
d[0][j]=j
str1[i-1]==str2[j-1]
d[i-1][j-1]+1
d[len1][len2]
动态规划
O(nm)
4

专业英语

trace 追踪

java题

继承:extends、实现:implements、其他:成员变量

/*2022年下半年 外观模式 */
public String getName()
void dispose(Patient patient)
new ConcreatePatient()
Facade
new Facade(patient)
f.dispose()
/*2022年上半年 备忘录模式 */
new Memento(state)
Memento.getState()
void add(Memento state)
Memento get(int index)
originator.saveStateToMemento()
originator.saveStateToMemento()
/*2015年上半年 访问者模式 */
public void visit(Book p_book)
public void visit(Articl
public void accept(LibraryVisitor visitor)
visitor.visit(this)
visitor.visit(this)
/*2023年上半年 策略模式 */
public void doPrint(Interva val)
ptr.doPrint(this)
st = new PrintIntervalsComma()
st = new PrintIntervalsDots()
st = new PrintIntervalsLine()
/*2019年上半年 策略模式*/
void stop()
BrakeBehavior
wheel.stop()
wheel = behavior
brake()
/*2015年下半年 策略模式*/
double acceptCash(double money)
cs = new CashNormal()
cs = new CashDiscount(0.8)
cs = new CashReturn(300, 100)
return cs.acceptCash(money)
/*2010年上半年 策略模式*/
FlyBehavior flyBehavior
TakeOffBehavior takeOffBehavior
flyBehavior.fly()
takeOffBehavior.takeoff()
extends
SubSonicFly()
VerticalTakeOff()
/*2018年下半年 状态模式*/
double travel(int miles, CfrequentFlyer context)
context.setState(new CSilver())
context.setState(new CGold())
context.setState(new CSilver())
context.setState(new CBasic())
/*2011年下半年 状态模式*/
State
tissueMachine.getNoQuarterState()
tissueMachine.getHasQuarterState()
tissueMachine.getSoldState()
tissueMachine.getSoldOutState()
/*2019年下半年 观察者模式*/
void update()
Observer
obs.update()
Subject
Attach(this)
/*2014年下半年 观察者模式*/
Sbuject
observer.update(temperature, hunidity, cleannerss)
notifyObservers()
measurementsChanged()
Observer
envData.registerObserver(this)
/*2021年下半年 享元模式*/
public abstract void draw()
Piece
Piece
piece.draw()
piece.deaw()
/*2016年下半年 装饰器模式*/
ticket.printInvooice()
super.printInvoice()
super.printInvoice()
new HeadDecorator(new FootDecorator(t))
new HeadDecorator(new FootDecorator(null))
/*2012年下半年 装饰器模式*/
abstract
String getDescription
abstract int cost()
Beverage beverage
beverage
beverage
/*2021年上半年 组合模式*/
protected
abstract boolean addMenuElement(MenuComponent element)
abstract List<MenuComponent> getElement()
LIST<MenuComponent> elementList
mainMenu.addMenuElement(subMenu)
/*2011年上半年 组合模式*/
abstract class
public abstract void add(MenuComponent menuComponent)
add(menuComponent)
menuComponent.print()
allMenus.print()
/*2010年下半年 组合模式*/
abstract class
this.name
Company
Company
children
children
root.Add(comp)
comp.Add(comp1)
/*2009年下半年 组合模式*/
abstract
null
List
childList
printTree(file)
/*2017年下半年 桥接模式*/
abstract void doPaint(Matri m)
imp.doPaint(m)
new GIFImage()
new LinuxImp()
image.setImp(imageImp)
/*2017年下半年 桥接模式*/

/*2017年下半年 桥接模式*/

/*2016年上半年 适配器模式*/
Address address
address.straat()
address.postcode()
address.plaats()
DutchAddress addrAdapter = new DutchAddressAdapter(addr)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣HOT100 - 136. 只出现一次的数字

解题思路&#xff1a; class Solution {public int singleNumber(int[] nums) {int single 0;for (int num : nums) {single ^ num;}return single;} }

Java基础的语法---StringBuilder

StringBuilder 构造方法 StringBuilder()&#xff1a;创建一个空的StringBuilder实例。 StringBuilder(String str)&#xff1a;创建一个StringBuilder实例&#xff0c;并将其初始化为指定的字符串内容。 StringBuilder(int a): 创建一个StringBuilder实例…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(七):快启

前言: 汽车仪表是人们了解汽车状况的窗口,而仪表中的大部分信息都是以指示灯形式显示给驾驶者。仪表指示灯图案都较为抽象,对驾驶不熟悉的人在理解仪表指示灯含义方面存在不同程度的困难,尤其对于驾驶新手,如果对指示灯的含义不求甚解,有可能影响驾驶的安全性。即使是对…

Leetcode刷题笔记3:链表基础1

导语 leetcode刷题笔记记录&#xff0c;本篇博客记录链表基础1部分的题目&#xff0c;主要题目包括&#xff1a; 203.移除链表元素707.设计链表206.反转链表 知识点 链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据…

企业如何防止数据泄密?大型企业必备的文件加密软件

随着信息化建设的大步推进&#xff0c;越来越多的企业资料以电子文件的形式保存&#xff0c;企业内部和企业之间的信息交流也主要依靠电子文件。近年来的泄密事件层出不穷&#xff0c;比如东软泄密案、HTC窃密案、力拓案等&#xff0c;给企业带来灾难性的经济损失及信誉重创。如…

CentOS7安装内网穿透实现远程推送镜像到本地Docker Registry

文章目录 前言1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址 前言 本文主要介绍如何部署Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现…

使用控制台方式部署sentinel

1.下载控制台jar包 2.运行jar包 java -jar sentinel-dashboard-1.8.0.jar 也可以通过编写批处理文件指定端口、用户名、密码&#xff1a; 客户端添加依赖&#xff08;后续整合springcloudalibaba时不需要此依赖&#xff09; 如修改了sentinel端口&#xff0c;需要添加客户端运…

ubuntu下载离线软件包及依赖

目录 一、前言 二、正文 1.准备环境 2.开始下载 3.后续工作 三、总结 一、前言 由于给客户提供的设备机不允许上网&#xff0c;那么所有待安装的软件包及依赖库都需要提前下载好&#xff0c;然后通过局域网传过去再安装。 另外&#xff0c;软件包可能还依赖其他的库&…

【Pytorch】【MacOS】14.m1芯片使用mps进行深度模型训练

读者要先自行安装python以及anaconda&#xff0c;并且配置pytorch环境 第一步 测试环境 import torch # 判断macOS的版本是否支持 print(torch.backends.mps.is_available()) # 判断mps是否可用 print(torch.backends.mps.is_built())如果第一个语句为False&#xff0c;说明当前…

自定义一个SpringBoot场景启动器

前言 一个刚刚看完SpringBoot自动装配原理的萌新依据自己的理解写下的文章&#xff0c;如有大神发现错误&#xff0c;敬请斧正&#xff0c;不胜感激。 分析SpringBoot自动配置原理 SpringBoot的启动从被SpringBootApplication修饰的启动类开始,SpringBootApplicaiotn注解中最…

浅谈后端boot框架整合第三方技术JUnit MyBatis Druid整体思想

整合第三方技术 不要单单学习指定技术与springboot整合的方式 学习目标的是整合整体的技术的思路 拿到任何一个第三方技术后我们在springboot中如何操作 这是真正我们应该学习的东西 以后能整合任意技术 整合JUnit JUnit 是一个流行的开源测试框架&#xff0c;用于 Java …

Redis优化笔记

Redis优化 一&#xff1a;Key&#xff1a; 1.1.Key的规范&#xff1a; 测试如下&#xff1a; 1.2.拒绝BigKey&#xff1a; 我们可以用&#xff1a; MEMORY USAGE name命令来看它的大小。 注意&#xff0c;这里的第二种之所以不使用Keys *&#xff0c;因为在实际生产时&#…

NDIS小端口驱动开发(一)

在四种NDIS相关的驱动中&#xff0c;微型端口驱动(也经常翻译为为小端口驱动)位于驱动栈的底部&#xff0c;一般将它理解为NIC设备的驱动程序&#xff1a; 有几种类型的微型端口驱动程序类型&#xff1a; 无连接微型端口驱动程序用于控制无连接网络媒体 &#xff0c;如以太网的…

SpringBoot接入Knife4j接口文档

0.介绍 1&#xff09; Knife4j是什么 Knife4j是Java MVC框架集成Swagger生成Api文档的增强解决方案&#xff0c;前身是swagger-bootstrap-ui&#xff0c;有着比Swagger更为美观的UI以及功能。 例如以下效果图&#xff1a; 2&#xff09; 官方链接 官网&#xff1a;Knife4j …

FastSAM 部署 rknn

基于yolov8(ultralytics)工程导出的FastSAM的onnx模型&#xff0c;后处理和yolov8seg是一样的。      模型和完整测试代码。 1 FastSAM 导出 onnx 导出onnx的方式有两种&#xff0c;一种使用FastSAM工程&#xff0c;一种是使用yolov8(ultralytics)工程。本篇博客使用yolov…

2024年【N1叉车司机】免费试题及N1叉车司机模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N1叉车司机免费试题考前必练&#xff01;安全生产模拟考试一点通每个月更新N1叉车司机模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过N1叉车司机模拟考试题库很简单。 1、【多选题】《中华人民共和国特…

3款录屏录制软件,打造专业级视频内容

随着技术的不断发展&#xff0c;人们在日常工作和学习中经常会遇到记录电脑屏幕的需求&#xff0c;例如录制游戏过程、制作教程、保存会议记录等。为了解决这一需求&#xff0c;许多录屏录制软件应运而生。本文将介绍三款常见的录屏录制软件&#xff0c;通过分析它们的特点和使…

【C++】<知识点> 标准模板库STL(上)

文章目录 一、STL---string类 1. 常用构造函数 2. 常用操作 3. 字符串流处理 二、STL---容器 1. STL及基本概念 2. 顺序容器简介 3. 关联容器简介 4. 容器适配器简介 5. 常用成员函数 三、STL---迭代器 1. 普通迭代器 2. 双向、随机访问迭代器 3. 不同容器的迭代器…

SpringBoot2.0.x旧版集成Swagger UI报错Unable to infer base url...解决办法

一、问题描述 1.1项目背景 SpringBoot2.0.9的旧版项目维护开发&#xff0c;集成Swagger-ui2.9.2无法访问的问题。不用想啊&#xff0c;这种老项目是各种过滤器拦截器的配置&#xff0c;访问不到&#xff0c;肯定是它们在作妖。懂得都懂啊&#xff0c;这里交给大家一个排错的办…

医院挂号就诊系统的设计与实现

前端使用Vue.js 后端使用SpiringBoot MyBatis 数据使用MySQL 需要项目和论文加企鹅&#xff1a;2583550535 医院挂号就诊系统的设计与实现_哔哩哔哩_bilibili 随着社会的发展&#xff0c;医疗资源分布不均&#xff0c;患者就诊难、排队时间长等问题日益突出&#xff0c;传统的…