自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于“线程数”的一些疑问

多线程可以提高程序的性能,特别是在涉及多任务或在多核心处理器上并行处理时。不过,并不是线程数越多越好。以下是一些关于线程数量决策的考量因素:处理器核心数:通常,为了最大化并行效率,线程数应当与处理器的核心数相匹配或略高于核心数。这样,每个核心都能尽可能地被利用。I/O密集型 vs CPU密集型任务:对于I/O密集型任务(如网络请求、磁盘操作等),线程可能会花费大量时间等待I/O操作完成。在这种情况下,可以创建比CPU核心数更多的线程,因为线程在等待时不占用CPU资源。

2024-04-09 14:48:35 279 1

原创 设计模式——Decorator(装饰器模式)

修饰器下一层的具体实现类 ConcreteDecorator 继承 Decorator,并负责具体的职责添加,可以选择添加状态(属性) addedState 或者添加行为(方法) AddedBehavior()。当有一个已经完成的系统,其中类和对象的关系的错综复杂的,此时若想给某类对象添加一些额外的属性或方法(状态或职责),可能会引起其他地方的报错。因此就需要在目标类的同一层级,新增一个与目标类继承同一父类的抽象修饰器类(方便向上转型),并且在其中包含有父类指针(方便接收目标对象)。

2023-10-05 11:15:20 402

原创 java复习-多态性

为了保证向下转型的正确性,故需要在转型之前判断某个实例是否是某个类的对象,此时就需要通过 instanceof 关键字来进行判断。方法的重载:同一个方法名称可以根据传入的参数类型和个数的不同,进行不同的处理。方法的覆写:同一个方法可能根据使用子类的不同,由不同的实现。语法: 对象 instanceof 类。

2023-10-04 17:39:44 182

原创 java复习-10-String类

String 本身包装的是一个数组,并且其有两种对象的实例化形式:直接赋值、构造方法实例化。

2023-09-21 22:44:09 180

原创 数据挖掘一般框架

panda库中的to_datatime可以将时间戳转换成日常的时间格式。

2023-09-14 20:29:14 573

原创 java复习-线程的同步和死锁

当多个线程访问同一资源时,会出现不同步问题。比如当票贩子A(线程A)已经通过了“判断”,但由于网络延迟,暂未修改票数的间隔时间内,票贩子B(线程B)也通过了“判断”。此时,若票数只剩下了最后一张,则会出现两个线程同时通过判断并最终会修改票数,出现错误(票数为0或-1)。

2023-09-13 15:54:27 231

原创 java复习-线程常用操作方法

强制执行:当满足于某些条件之后,某一个线程对象将可以一直独占资源,一直到该线程的程序执行结束。

2023-09-13 12:10:21 146

原创 Java复习-多线程编程

Runnable 中只有一个run()方法,因此是函数式接口,可通过Lambda表达式调用。x < 3;x++) {String title = "线程对象:" + x;y < 10;y++) {System.out.println(title + "运行,y = " + y);}).start();以后开发之中对于多线程的实现,优先考虑 Runnable 接口实现,并且永恒都是通过Thread 类对象启动多线程。Callable 也是函数式接口,可通过Lambda表达式调用。

2023-09-12 21:13:22 171

原创 java复习-eclipse开发工具使用

建立完成的项目目录中会自动创建有两个子目录:可以自动为类生成构造方法或者是setter、getter方法。选择【source】用到的时候再补充F5 单步跳入——进入当前行代码的内部,观察执行过程F6 单步跳过——执行完毕当前行代码F7 单步返回——从子函数中返回主函数F8 恢复执行——取消断点影响,程序正常完成

2023-09-12 20:57:56 90

原创 Java复习-26-枚举

定义一个描述性别的类,那么该对象只有两个:男、 女。或者描述颜色基色的类,可以使用: 红色、绿色、蓝色。

2023-09-09 19:43:48 296

原创 Java复习-25-单例设计模式

在实际开发下,会存在一种情况:某一种类在程序的整个生命周期中,只需要实例化一次就足够了。例如,,由于操作系统只有一个,因此在程序初始化时该类只需要实例化一次,之后的系统数据更改都是在这一个实例化对象中进行就可以。

2023-09-07 16:13:54 794

原创 Java复习-23-包

对于一个项目工程,到最后会有大量的class文件,这些文件如果散着给用户,不利于维护,因此可以利用一种压缩结构来进行处理,这样的结构再java中被称为jar文件。

2023-09-05 21:44:05 89

原创 Java复习-20-接口(3)- 代理设计模式

功能:可以帮助用户将所有的开发注意力只集中在核心业务功能的处理上。代理模式(Proxy Pattern)是一种结构性模式。代理模式为一个对象提供了一个替身,以控制对这个对象的访问。即通过代理对象访问目标目标对象,可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。

2023-09-05 21:42:45 708

原创 Java复习-20-接口(2)- 工厂设计模式

而我们以 JVM 的设计为例,java的实现可移植性的关键在于:JVM,而JVM的核心原理:利用应该虚拟机来运行java程序,所有的程序并不与具体的操作系统有任何的关联,而是由JVM来进行匹配。因此,良好的设计应该避免耦合。中,在主类中只调用工厂类,并且使用命令行的初始化参数来进行工厂类中不同子类的选择。面包子类:实现食物接口,实现接口中的 eat() 方法 —— “吃面包”主类中,实例化的子类向上转型为 食物接口对象,再调用 eat() 方法。我们观察到,导致耦合的主要原因是在选择不同子类的时候,

2023-09-05 21:40:50 420

原创 Java复习-20-接口(1)

使用interface关键字来定义。由于接口描述的是一个公共的定义标准,所以在接口之中所有的抽象方法的访问权限都为publicinterface IMessage{ // 为了区分接口,接口名称前要加大写字母 I// 全局常量// 抽象方法假如当接口下的子类都需要新增 某一个相同的方法时,此时若子类数量很多,会造成代码修改成本增大。对于该种情况,正确的方式是:子类在不应该直接实现该接口,而是中级使用一个抽象类进行过渡,由此便可以在抽象类中定义这样一个相同的普通方法了。

2023-09-05 21:39:54 81

原创 Java复习-18-抽象类

抽象方法:使用了 abstract 关键字定义的、且没有方法体的方法抽象类:抽象方法所在类即所谓抽象类就是在普通类的基础上追加抽象方法。abstract class Message { // 定义抽象类// 消息类型// 抽象方法public void setType(string type) { // 普通方法public string getType(){ // 普通方法。

2023-09-05 21:37:33 85

原创 Java复习-12-继承、覆写与Annotation 注解

类的不能继承和方法的不可覆写就不再举例了,这里主要说一下通过 final 关键字来定义不可修改的常量。类似于 C 中的const。实际上常量往往都是公共的定义,所以为了可以体现出共享的概念,往往会使用一种全局常量的形式来定义。使用来定义全局常量。定义全局常量的时候每个字母必须大写表示。

2023-08-28 22:03:42 110

原创 Java复习-16-多态性

上面的代码,对于许多子类公用的同一个方法而言,将参数定位为他们共同的父类,可以提高代码的可拓展性。(当然,你可以选择对每个子类都分别写一个重载的方法,但是如果子类数量过多,该方法不利于扩展。因为如果直接用一个父类实例化的对象,其并不清楚向下的子类的存在。为了使用子类的特殊定义,即子类实例化对象在一般情况下是父类类型,但需要时可以转化为子类类型来使用。方法的重载:同一个方法名称可以根据传入的参数类型和个数的不同,进行不同的处理。方法的覆写:同一个方法可能根据使用子类的不同,由不同的实现。

2023-08-28 22:00:09 126

原创 Java复习-17-Object类

故,对于实际的使用者而言,要想实现正确的判断处理,就要在子类中覆写该方法。先前所说的字符串的比较本质上就是继承并且覆写了Object的这个方法。Object 类作为所有类的父类,提供了对象比较操作的支持。其在源码中的定义,即默认情况下,该方法只是进行了两个对象的地址判断(如下)。可以获取一个对象的完整信息,而进行对象直接输出的时候所调用的方法就是 toString()方法,所以调用与否实现是一样的。可以在以后的开发中对象信息的获得可以直接覆写此方法。

2023-08-28 21:49:58 98

原创 python数据清洗 —— re.split()划分字符串

要将其划分成如下7个部分,分别表示含义:route-views6.routeviews.org (收集器名称)141694 (AS编号)2a0c:b641:24f:fffe::7 (对等地址)CN (国家)apnic (区域)OTAKUJAPAN-AS Otaku Limited, CN (AS名称)

2023-06-23 12:31:13 363

原创 利用Shell下载routeview网站上的BGP更新数据

给出起始时间和终止时间,从routeview网站上,下载在这两者之间的所有数据到本机,以便于进行后续的分析工作。例如:2022.2.23 - 2022.2.26。

2023-06-19 21:14:57 388

原创 STM32-江科大

B站江科大STM32课程笔记

2023-05-08 22:44:48 6322 2

原创 vant Weapp中 Cell单元格修改样式

van-cell。

2023-04-07 23:08:29 1857 1

原创 invalid use of member function ‘Student Curriculum::stu(int)’ (did you forget the ‘()’ ?)

在B类(即代码中的Curriculum类)的声明中,成员变量包含一个自A类(即Student类)的对象时,错误地将该对象成员的实现放在了声明中。

2023-03-15 20:34:41 325

原创 no matching function for call to ‘Student::Student()’

但应注意:如果类A的构造函数为有参函数时,则在程序中必须在类B的构造函数的括号后面加一“:”和被调用的类A的构造函数,且调用类A的构造函数时的实参值必须来自类B的形参表中的形参。对于类B中包含类A的对象作为成员变量,且对象A的初始化是需要参数的情况下,在类B的定义文件(.cpp)中,写类B的构造函数时,希望对其包含的类A的对象成员变量进行初始化。如果一个类A的对象作为另一个类B的数据成员,则在类B的对象创建过程中,调用其构造函数的过程中,数据成员(类A的对象)会自动调用类A的构造函数。,成员n(参数表n)

2023-03-15 20:32:07 1863 1

原创 多目标进化算法——NSGA-II(python实现)

多目标优化遗传算法——NSGA-II

2022-11-26 23:16:34 19743 59

原创 pycharm进阶使用学习

pycharm

2022-11-09 22:22:04 725

原创 BGP 的团体属性

BGP的community属性

2022-11-07 21:04:17 364

转载 BGP route processing

bgp协议

2022-11-06 18:41:13 130

原创 Git & Github 学习

Git简介——菜鸟教程Git常用命令1.初始化仓库  首先区分文件夹与仓库的概念,对于一个项目而言,每一个代码文件存放在一个又一个的文件夹目录下,此时,我们更改这个项目中的某一个细节,是无法还原到你更改之前的版本的。这就是也就是一般情况下的文件夹。而对于仓库而言,它会在你原有的根目录下生成一个隐藏文件夹Git,其中存放了你之前所提交的历史版本,即你在发现更改错误后,可以利用该文件夹,进行整个项目的一个回溯。带有该文件夹的项目称之为仓库。那对于一个普通的项目文件夹如何转变为一个仓库呢,可以在该目录下,使

2022-02-07 00:13:16 336

原创 MySQL学习笔记(1)

MySQL的前期准备MySQL的安装使用的是安装包文件,需要注意的几点是:1.自定义安装目录时选择“customer”2.语言选择自定义,在下拉选项中选择“utf8”(不是UTF-8)3.自定义服务器名时,最好自己换一个,别用MySQL。遇到的问题:1.最后一步“execute”安装时,出现未响应,卡死解决方法:从控制面板将MySQL卸载,找到自定义的安装目录将其中的文件删除 在C盘中找到隐藏文件夹“programdata”删除其中的“MySQL”文件夹 删

2022-01-04 00:02:03 835

原创 概率论总结

2022-01-01 17:54:40 280

原创 线性代数(4)——特征值与二次型

2022-01-01 17:42:36 700

原创 线性代数(3)——向量组

2022-01-01 17:39:36 353

原创 线性代数(2)——矩阵

2022-01-01 17:37:13 246

原创 线性代数(1)——行列式

2022-01-01 17:29:10 361

原创 基于主成分分析与Fisher判别的DNA序列分类

特征提取:对于DNA序列,首先将其分为编码DNA特征与非编码DNA特征。对于非编码DNA,统计A,T,C,G各个碱基以及A+T在其中出现的频率,由此构建DNA序列所对应的5维向量空间。对于编码DNA,根据DNA转录与表达的中心法则,氨基酸与密码子的对应关系,统计21类氨基酸的出现频率,由此构建了DNA序列所对应的21维向量空间。最终,针对某一条DNA序列,根据其碱基和氨基酸的字频,拥有26个特征。  特征降维:由上得到了26维向量空间,再利用多元统计[1]的知识,利用“主成分分析”进行降维,提取特

2022-01-01 17:01:49 1924

转载 参考文献后加分页符

在参考文献后加分页符的步骤如下:1、点击“插入”,在下面的下拉菜单中点击“引用”→“脚注和尾注”,出现对话框。2、在对话框中,位置下面选择尾注,然后在后面的下拉菜单中选择“节的结尾”。在最下面应用于的下拉菜单中选择应用于“整篇文档”,点击应用。3、然后点击“文件”→“页面设置”。4、进入对话框,在对话框上面选择“版式”,在“取消尾注”打勾√,在下面应用于选择“整篇文档”,点击确定。5、然后再次点击“文件”→“页面设置”。6、进入对话框,在对话框上面选择“版式”,在.

2021-05-24 21:32:34 7978 1

原创 Python爬虫-1——爬取网页

再通过bs4转化之后,已经不是原来的页面html,这时候需要打印一个转换后的电影html,获得其html编码格式,以便于使用正则表达式。直接从页面拷贝过来的html:存入数据库数据库:sqllite3函数:saveData_db(dataList,savePath)  其中“dataList”是我们爬取到的数据,“savePath”是我们设定的存取路径框架构建:1 判断所给路径下是否存在数据库2在写入数据库的时候遇到一个问题—— 原来一个电影的数据类型结构是List套List与Str

2021-05-13 17:21:13 383

原创 Python爬虫——SQLite数据库

SQLite数据库(声明:本篇文章仅仅是个人的浅薄理解,只是在爬虫过程中使用。其中若有不当之处,烦请理解并指出,谢谢!)使用语言:Python           开发环境:pyCharm  在Python中使用SQLite数据库,主要使用按四个步骤进行——链接数据库conn = _sqlite3.connect("testdb.db")#链接数据库获取游标 c = conn.cursor() #获取游标执行SQL语句 c.execute(sql)#执行sql语句关闭

2021-03-08 22:36:35 668 2

信息论总结(大学期末总结)

1.熵的计算(两种方法) (1)联合熵 (2)信道 2.数据压缩 (1)Huffman编码 (2)snmo (3)snno-bm-E 编码 3.信源编码 4.两种译码 (1)最大似然 (2)最大后验 5.LZ77;LZ78

2022-07-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除