【设计模式】UML类图和六大设计原则
前言在实践中经常看到工厂模式、观察者模式等字眼,渐觉设计模式的重要性,于是开刷设计模式。
本文讲述了UML类图以及设计模式的六大原则
参考资料:
课程视频:黑马程序员Java设计模式
一、UML类图1. 类和接口的表示方式
如图所示,在 UML 类图中,第一栏为类的名称,第二栏为类的属性(field),第三栏为类的方法(method)
属性/方法之前的 - + # 表示访问权限:- 表示 private+ 表示 public# 表示 protected
属性的完整表示方式是: 可见性 名称 :类型 [= 缺省值]方法的完整表示方式是: 可见性 名称(参数列表)[:返回类型]
接口图 和 类图 的主要区别是顶端有 \<\>
2. 关联和双向关联关联关系表示存在对象的引用,如 A 类中某一个成员变量的类型为 B 类,那么 A 类依赖于 B 类
关联关系使用 实心箭头 表示
双向关联使用 横线 表示
3. 组合和聚合组合 和 聚合 都是关联的特例,强调整体和部分的关系,在转换为关系模型时跟关联没有区别,但是在UML 中的描述存在语义上的区别。
组合组合 中的整体和部分具有强依赖,整 ...
Filebeat安装部署及入门应用
前言后续开发项目要用到 Filebeat 对日志做收集和处理。本文介绍了 ELK 技术中的 Filebeat,用于轻量级的日志收集和分析
参考资料:
视频教程:Elastic Stack(ELK)从入门到实践
官方文档:Filebeat overview | Filebeat Reference [8.14] | Elastic
一、安装部署环境:
12root@Andrew:~# cat /proc/versionLinux version 5.15.153.1-microsoft-standard-WSL2 (root@941d701f84f1) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Fri Mar 29 23:14:13 UTC 2024
Linux环境下安装命令:
123curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gztar xzvf filebeat-8.1 ...
Java中实现定时任务,有多少种解决方案?
前言好久没更新博客了,最近上班做了点小东西,总结复盘一下
参考资料:
SpringBoot 设置动态定时任务,千万别再写死了~ (qq.com)
3千字带你搞懂XXL-JOB任务调度平台-阿里云开发者社区 (aliyun.com)
一、定时任务1. 引入依赖创建Springboot应用,引入相应依赖:
1234567891011121314151617181920212223<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-logging</artifactId> ...
机器学习笔记——SVM丝滑推导及代码实现,从硬间隔到软间隔再到核函数
前言开始搓延期了一百年的机器学习实验,把SVM推导过程从定义到求解都刷了一遍,包括推导优化目标、提出对偶问题、利用KKT条件得到原问题的解以及SMO算法等。
注意:本文在某些地方比如KKT条件和SMO算法处不提供证明过程(太麻烦了喵),而是直接使用其结论,感兴趣的读者可以查阅参考资料
参考资料:
推导过程学习视频:(系列六) 支持向量机1-硬间隔SVM-模型定义_哔哩哔哩_bilibili
拉格朗日对偶性的条件:拉格朗日对偶性详解(手推笔记)-CSDN博客
从几何角度理解KKT条件和对偶关系:机器学习笔记(8)-对偶关系和KKT条件 - Epir - 博客园 (cnblogs.com)‘
代码参考:统计学习:线性可分支持向量机(Cvxpy实现) - orion-orion - 博客园 (cnblogs.com)
一、优化问题当一个分类问题线性可分时,我们希望找到一个最优的超平面将其划分,这个最优的超平面需要满足以下性质:
超平面 和 距超平面最近的样本点 之间的间隔应该尽可能大
举一个简单的例子:
当这是一个二分类问题,且样本点特征数为2时(点可以表示在二维平面),该超平面是一条一维 ...
【机器学习论文阅读笔记】Robust Recovery of Subspace Structures by Low-Rank Representation
前言终于要轮到自己汇报了好崩溃。。盯着论文准备开始做汇报ppt感觉一头乱麻,决定还是写博客理清思路再说吧
参考资料:
论文原文:arxiv.org/pdf/1010.2955
RPCA参考文章:RPCA - 知乎 (zhihu.com)
谱聚类参考文章:谱聚类(spectral clustering)原理总结 - 刘建平Pinard - 博客园 (cnblogs.com)
一、问题描述该篇论文提出了一种名为LRR(Low-Rank Representation)的目标函数,为了解决以下问题:
给定一组从多个子空间的并集中近似抽取的数据样本(向量),我们的目标是将样本聚类到它们各自的子空间中,并去除可能的异常值。
Given a set of data samples (vectors) approximately drawn from a union of multiple subspaces, our goal is to cluster the samples into their respective subspaces and remove possible outliers ...
【SZU计算机网络实验】从rdt到GBN,这实验居然实现了TCP的可靠数据传输机制?
前言一个实验六个任务,实验文档一划划不到底。。看来老师们是真下功夫了啊
本文主要展示了作者在完成SZU计算机网络实验3的思路及过程,实验主要包括:
理解rdt2.1
实现rdt2.2
实现rdt3.0
实现回退N步(GBN)机制
实现面向无连接的可靠传输机制(GBN)
进行量化分析
文中出现的状态机演示图均基于mermaid。在本文中,过渡文字中第一行表示事件,第二行之后表示动作
参考资料:
实验文档:计算机网络课程综合实验平台 (snrc.site)
一、理解rdt2.10. 理解rdt1.0和rdt2.0在理解rdt2.1之前,我们需要先了解rdt2.1出现的背景,才能知道其解决的问题
rdt全称reliable data transfer,即可靠数据传输
由于网络层是不可靠传输,而位于网络层之上的传输层中的TCP,试图为上层提供可靠的传输
1) rdt1.0rdt1.0作为第一代的rdt模型,它假设底层信道(网络层及其以下层)是可靠的,即传输层的这一端到另一端之间,它们都是按序到达,且不会出现数据的损坏和丢包
因而rdt1.0的发送端和接收端的状态机的表示如下
发送端
s ...
Apache JMeter进行TCP并发压力测试初尝试
前言由于互联网编程实验二第三题要求比较使用线程池与否的服务器的并发性能,遂检索信息并了解到Apache JMeter这个工具
本文主要介绍了在已有Java JDK的情况下对Apache JMeter的安装及配置,以及利用JMeter进行TCP压力测试
一、安装及配置先在官网下载压缩包:Apache JMeter - Download Apache JMeter
将文件apache-jmeter-5.6.3.zip解压到自己选择的目录中
在根目录下,找到bin文件夹,进入文件夹中,找到jmeter.bat,双击即可打开软件
二、TCP服务器编写Java代码,在Server类的main函数中,指定一个端口作为服务器端口,并在while死循环中不断接收客户端的请求,对于每一个请求新开一个线程ThreadServer,并在其中处理请求
1234567891011121314151617181920212223public class Server { static int PORT = 9000; static int MAX_POOL = 100; ...
机器学习笔记——浅析L2,1范数正则化的线性回归
前言嘻嘻,刚开始搓逾期了快两周的线性回归实验报告,为了让报告稍微不那么平淡不得不啃论文。
本文从最基本的线性回归开始,对比不同正则化方法的特点和作用,推广到多任务问题并引出L2,1范数正则化,卑微小采购尝试去理解论文是如何思考和优化问题(
参考资料:
[1] 一文讲清楚线性回归(Linear Regression)、逻辑回归(Logistic Regression) - 掘金 (juejin.cn)
[2]一篇文章完全搞懂正则化(Regularization)-CSDN博客
[3] Efficient and Robust Feature Selection via Joint ℓ2,1-Norms Minimization (neurips.cc)
[4] L21范数用于多任务特征选择的一些思考 - 知乎 (zhihu.com)
一、线性回归回顾1. 无正则化项在最简单的线性回归问题[1]中,每个样本$x^{(i)} \in R^n$所对应的的标签$y$是一个值,因此用于预测的参数是一个向量$\theta \in R^n$,即
\hat{y}^{(i)} = \theta^T x^{ ...
Pandas数据分析学习笔记
前言开刷Pandas数据分析,看起来很好理解,不过没做笔记没敲代码心里总是不安稳,所以复现下课程代码并演示其中遇到的问题,顺便水一水笔记好了
参考资料:
课程视频链接:Pandas数据分析从入门到实战
数据及代码示例:ant-learn-pandas: pandas学习课程代码仓库 (gitee.com)
一、数据读取0. 数据类型
数据类型
说明
Pandas读取方法
csv, tsv, txt
用逗号、tab或其它字符分割的文本文件
read_csv
excel
xls或xlsx文件
read_excel
mysql
关系型数据表
read_sql
1. read_csv1.1 读取csv文件csv是以逗号分割的文本文件,如下:
12345userId,movieId,rating,timestamp1,1,4.0,9649827031,3,4.0,9649812471,6,4.0,9649822241,47,5.0,964983815
直接使用read_csv读取该文件
123fpath = "../datas/ml-latest-smal ...
【SZU计算机网络实验】实现码率自适应传输
前言哈哈实验截止时间推迟了一周,不变的还是被ddl追着跑
本次实验主要在上次实验(流式视频传输)的基础上,模拟网络波动的情况,设计从客户端根据网络波动情况请求不同码率的视频片段的算法,从而提升用户体验(quality of experience, or QoE)
相关资料:
实验文档:计算机网络课程综合实验平台 (snrc.site)
一、引入网络波动实验提供的文件库fluctuation.h中包含了许多与引入网络波动相关的函数,将其在server.c中引入
1#include "fluctuation.h"
在代码初始化阶段调用 load_fl() 函数初始化网络波动相关信息
123456789101112/***初始化阶段***/WSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);int server_fd, new_socket;struct sockaddr_in server_address;int opt = 1;int addrlen = sizeof(server_address);cha ...