- 博客(77)
- 收藏
- 关注
原创 bug----jdk17使用JOL无法输出java对象的存储布局
在idea中以jdk17为开发环境,使用 jol-core.016 版本没办法输出java 对象的存储结构信息,会让程序崩溃。
2024-08-22 11:16:32 593
原创 多线程Thread
以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了。线程t1和线程t2,在线程t1执行的时候,必须等待t2线程执行结束,或者说在t2线程执行的时候,必须等待t1线程执行结束,两个线程之间发生了等待关系,这就是同步编程模型。线程t1和线程t2,各自执行各自的,t1不管t2, t2不管t1,谁也不需要等谁,这种编程模型叫做:异步编程模型。出现在实例方法上,表示整个方法体都需要同步,可能会无故扩大同步的范围,导致程序的执行效率降低。...
2022-08-27 22:04:57 217
原创 mySQL
比如说:A连接在数据库新增了一条记录,B连接说明都没做,只是在A连接新增记录前后查询了一次数据库,因此B连接两次查询的结果应该都是一样的,不应该受到A连接的影响。有的时候可能会存在冗余,但是为了减少表的连接次数,这样做也是合理的,并且对于开发人员来说,sql语句的编写难度也会降低。前面我们学习的查询,是利用where子句对两张表或者多张表,形成的笛卡尔积进行筛选,根据关联条件,显示所有匹配的记录,匹配不上的,不 显示。如果某列的值,是不会重复的,则优先考虑使用unique索引, 否则使用普通索引。...
2022-08-27 15:35:01 816
原创 集合Collection
如果object的类型重写了equals方法,则按照重写后的逻辑来定义是否包含该object,如果没重写equals方法则默认会调用Object类的equals方法:根据对象的内存地址来决定是否已经存在某个对象。底层同样也调用了equals方法,所以当要删除某个对象时,如果该对象的类型重写了equals方法,则跟会根据重写后的逻辑将所有和要被删除对象相等的对象一同删除。contains中传入的是String类型的对象,String是重写过equals方法的,是以内容来判断是否相等。...
2022-08-26 15:14:21 164
原创 反射Reflection
我自己之前学习过深度学习相关内容,使用mmdetection时就感受到了这种感觉,就是一整个模型架构只需要修改配置文件的内容就可以瞬间搭建不同的模型、调整不同的训练策略等。java的反射应该和这个类似。.........
2022-08-23 22:26:35 238
原创 JDBC数据库连接
JDBC为访问不同的数据库提供了统一 的接 口,为使用者屏蔽了细节问题。即使用户提供的信息中含有 sqI 语句的关键字,但是没有参与编译,不起作用。JDBC 默认自动提交事务,并且是执行一条 sql 语句就自动提交,和我们的期望不符。的原理是:预先对 sql 语句的框架进行编译,然后再给 sql 语句传"值”。那么查询到的记录就会被锁住,在当前事务未提交前,这些记录是不可以被修改的。只要用户提供的信息不参与 sql 语句的编译过程,问题就解决了。根本原因是用户输入的可能包含sql语法关键字的数据参与了。..
2022-08-23 22:24:02 540
原创 Linux常用命令
的更新是区别的,前者只能更新已有的文件,如果压缩包中不存在这个文件则不会进行更新,也不会追加;而后者如果压缩包中存在这个文件则会进行更新,如果不存在则会进行追加到压缩包内。eg:ln -s …/papers ./myroot 于是在当前路径下就多了一个文件名叫myroot,当我们 c d marot 时就可以直接到papers这个目录下.find指令将从指定路径下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
2022-08-23 22:21:51 268
原创 java四种内部类详解
内部类定义在外部类局部位置上局部内部类匿名内部类定义在外部类成员位置上成员内部类静态内部类定义在外部类的局部位置上,比如方法体内,代码块内局部内部类是定义在外部类的局部位置,可以在方法中和代码块中,局部内部类有类名可以直接访问外部类的所有成员不能添加访问修饰符,局部内部类的地位就相当于局部变量但是可以用 修饰,如果加上 ,就不可以被继承作用域:仅在定义它的代码块或方法中。在外部类的其他方法中可以直接这个内部类如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,则可
2022-07-03 15:23:29 226
原创 CSS3零基础快速入门
2. 子选择器:只能选择作为某元素的最近一级子元素,直接后代,只能选择该元素儿子级的元素3. 并集选择器:任意形式的选择器只需要用 一个逗号连接就是并集选择器,用于选择多组目标4. 链接伪类选择器5. :focus伪类选择器:选取获取焦点的表单元素。一般指 input 类的标签6. 属性选择器:根据某个元素是否包含某种属性选择选择器描述E[att]选择具有 att 属性的 E 元素E[att=“val”]选择具有 att 属性且属性值等于 val 的 E 元素
2022-07-03 15:10:32 605
原创 JavaScript入门基础速览
JavaScriptBOMDOMECMAScript 主要由三部分组成:基本数据类型数值类型 :整数,浮点数,科学计数法( 表示 2×1052\times10^52×105),十六进制(以开头),八进制(以开头),二进制(以开头),常用方法:单引号或者双引号包裹的内容都是字符串 ,并且不区分单双引号,常用方法:布尔类型空类型:null (表示有值,有一个空值);undefined (表示没有值)引用数据类型对象数据类型 :定义方式:,每一个属性和值构成一组键值对和python 的字典非常相似,
2022-06-12 20:22:37 442 1
原创 Mac下通过scp命令从远程服务器下载文件 报错:No such file or directory 解决方法
用 MAC M1架构的系统,希望从一台远程服务器上下载文件到本地机器。只需要再新建一个终端窗口来执行第二条命令即可!!!!
2022-06-10 11:00:47 6357 1
原创 Shell编程
每一个脚本文件里,首行内容一定是:#!bin/bash 表明用哪种shell编译执行脚本文件时需要有对应的权限 ,可以直接在要执行的文件前加上 sh eg:echo 相当于写代码用的输出语句 return变量命名规范变量名可以由数字,字母,下划线组成,不能以数字开头编写脚本文件时,给变量名赋值时不要用空格:变量名=变量值2. 变量系统变量类似于windows中的系统变量,一般全为大写字母用户变量就是在编写一个脚本文件时申明的变量,不可以被全局共享;基本语法.
2022-06-08 16:27:03 432
原创 Fast R-CNN
Fast R-CNNAbstractFast R-CNN 最主要解决的问题是如何快速地对提取的候选区进行分类Introductionobject detection 模型需要给出物体的精确定位,所以其模型的复杂度主要有两个原因导致:需要检测出很多的物体可能存在的候选区域对检测出的候选区域进行调整才能得到较为准确的定位处理这两个问题通常就会牺牲速度,模型的简洁性本文终于不用 SVM 进行分类了,不用单独训练 SVM,本文将所有的组件都融合在一个训练流水线中了,可以同时训练所有模块。在 R
2022-05-20 16:06:29 428
原创 R-CNN
R-CNNR-CNN 的整个架构由四个模块组成:Selective Search,CNN,SVM,BoundingBox Regression1. Selective Search该模块用于对原始图像 “建议出” 大约 2000 个可能为物体的候选框,具体怎么生成的可以不用关心,只需要知道其输出结果就是一个个候选框,这些候选框尺度不一。该模块的时间复杂度为 O(1)。2. CNN将SS模块输出的 2000个候选框 resize 成固定大小的正方形,可能会产生形变和边界填充,对每一个正方形图片
2022-05-18 22:39:16 354
原创 Swin-Transformer 配置bug总结
ImportErrorcannot import name ‘_pil_interp’ from ‘timm.data.transforms’ (D:\Anaconda3\Install\envs\pytorch\lib\site-packages\timm\data\transforms.py)进入 build.py 文件,将头部的 import _pil_interp 改为导入 str_to_pil_interp,并在下面两处同样改动:TypeErrorinit() got an unexp
2022-05-11 21:50:37 4996 1
原创 yolov5——bug总结
AttributeError‘Upsample’ object has no attribute ‘recompute_scale_factor’进入upsampling.py文件,找到对应的forward()函数直接把最后一个属性recompute_scale_factor删除即可TypeErrorcan’t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host mem
2022-05-10 15:52:26 951
原创 python——re模块(正则表达式,爬虫)
import res = "我的电话是:10086,我女朋友的电话号码是:10010."res = re.findall(pattern, string, flags=0)res:返回一个列表,列表中的每个字符串元素就是符合的结果pattern:正则表达式string:要匹配的原始字符串flags:不常用,默认为0res = re.findall(pattern="\d+", string=s)res['10086', '10010']findall有一个问题:如果stri
2022-05-07 19:07:54 721
原创 实时系统中的MCS模式和Sporadic Server算法
在实时系统中,所有的任务分成了两类:周期任务: 有固定的到达时间非周期任务:没有固定的到达时间这两类任务再根据deadline的类型又可以分成两类,不过,这篇论文里周期任务全部假设为 hard deadline,所以一共可以分成三类任务。deadline的分类:hard deadline:如果达到该deadline对整个系统接下来的操作有关键影响,则被认为是hard deadline。soft deadline:最好能满足,不满足的时候对系统没有关键影响。periodic task
2022-05-04 15:49:27 1267
原创 numpy——文件读取与保存
numpy中的文件读取与保存import numpy as npimport pickle读取1.dst = numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding=‘ASCII’)file:文件名或者路径加文件名或者文件对象allow_pickle:为True时,可以从将pkl保存的文件读入,但是这样不好,一般默认为Falsef = open("a", mode="rb")# 用文
2022-04-24 22:12:23 2978
原创 python——pickle模块(dump,load,序列化与反序列化)
pickle模块python提供了pickle模块来对python对象实现序列化与反序列化。程序运行的过程中,所有变量都存储在内存中,比如一个字典对象:dic = {"age":22, "sex":"male", "height":180}什么是序列化和反序列化在内存中时,可以随时修改变量的值,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。把变量从内存中变成一个数据流写入磁盘的过程称为序列化,在 Python 中叫 pickling。序列化之后,就可以把序列化后的内容写入磁盘,或
2022-04-24 16:26:44 1230
原创 openCV——几何变换
几何变换openCV中读入的图像数据是以(h,w,c)的顺序构建数据的。并且数据的类型都为uint8.通道顺序为BGR!!!import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline def cvshow(name, image): cv2.imshow(name, image) cv2.waitKey(0)
2022-04-21 16:32:00 772
原创 openCV——直方图处理
直方图处理直方图统计图像内各个灰度级出现的次数。import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline def cvshow(name, ndarray): img = cv2.imshow(name, ndarray) cv2.waitKey(0) cv2.destroyAllWindows()D
2022-04-21 10:22:44 1299
原创 openCV——模板匹配
单模板匹配import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline def cvshow(name, ndarray): img = cv2.imshow(name, ndarray) cv2.waitKey(0) cv2.destroyAllWindows()模板匹配是指在当前图像 A 内寻找与图像 B
2022-04-20 21:27:44 3540
原创 openCV——轮廓检测
轮廓检测边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到的边缘并不是一个整体。图像轮廓是指将边缘连接起来形成的一个整体,用于后续的计算。OpenCV 提供了查找图像轮廓的函数 cv2.findContours(),该函数能够查找图像内的轮廓信息,而函数 cv2.drawContours()能够将轮廓绘制出来。APIcontours, hierarchy = cv2.findContours( image, mode, method)式中的返回值为:contours:返回的轮廓
2022-04-20 19:50:26 8671
原创 openCV——图像金字塔
图像金字塔理论基础通常情况下,图像金字塔的底部是待处理的高分辨率图像(原始图像),而顶部则为其低分辨率的近似图像。向金字塔的顶部移动时,图像的尺寸和分辨率都不断地降低。通常情况下,每向上移动一级,图像的宽和高都降低为原来的二分之一。最简单的图像金字塔可以通过不断地删除图像的偶数行和偶数列得到。例如,有一幅图像,其大小是 NN,删除其偶数行和偶数列后得到一幅(N/2)(N/2)大小的图像。经过上述处理后,图像大小变为原来的四分之一,不断地重复该过程,就可以得到该图像的图像金字塔。在向上
2022-04-17 10:56:14 5325
原创 openCV——Canny边缘检测
Canny边缘检测import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline Canny 边缘检测分为如下几个步骤:去噪:噪声会影响边缘检测的准确性,因此首先要用高斯滤波将噪声过滤掉计算梯度的幅度与方向非极大值抑制,即适当地让边缘“变瘦”确定边缘。使用双阈值算法确定最终的边缘信息高斯滤波去噪高斯核的大小对于边缘检测
2022-04-16 23:15:21 1426
原创 openCV——梯度运算
梯度运算import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline def cvshow(name, ndarray): # 第一个参数表示显示窗口的名字,第二个参数表示数据 cv2.imshow(name, ndarray) # 表示等待多久窗口关闭,毫秒单位。0表示按任意键结束 cv2.waitKey(
2022-04-16 20:46:50 2170
原创 openCV——阈值与平滑处理
import cv2import matplotlib.pyplot as plt%matplotlib inlineimport numpy as np阈值处理ret, dst = cv2.threshold(src, thresh, maxval, type)src: 输入图,只能输入单通道图像,通常来说为灰度图dst: 输出图thresh: 阈值maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值type:二值化操作的类型,包含以
2022-04-16 15:58:33 159
原创 openCV——基础操作
opencv基础操作import matplotlib.pyplot as plt%matplotlib inlineimport cv2import numpy as npcv2.imread()方法会把一张图片读入成一个ndarray的形式img = cv2.imread("001.jpg")print(img.shape, type(img))(1200, 1920, 3) <class 'numpy.ndarray'>opencv读入彩色图片后默认颜色通道顺序
2022-04-16 14:19:19 733
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人