- 博客(144)
- 资源 (1)
- 收藏
- 关注
原创 文件描述符、文件打开表和inode表
文件描述符(进程级)就是一个数组,数组的每个下标内容都会指向打开文件表(系统级)的一个偏移量。每一个进程都会创建一个文件描述符,子进程会继承父进程的文件描述符。同一进程下多次打开同一个文件,文件描述符不一样,但是指向的偏移量一样,两个描述符对文件的操作不会相互影响。父子进程的文件描述符相同,所以会父子进程之间对文件的操作会相互影响。内核会对每一个打开的文件存储到这个描述表格中。表格中的每一项称为一个文件句柄,它存储了一个打开文件的所有相关信息(如文件偏移量,文件状态,inode地址)。
2022-10-25 15:23:53
2458
原创 linux中SUID、SGID和SBIT三种权限的作用
SUID(Set User ID)SGID(Set Group ID)SBIT(Sticky Bit)证明SUID的作用:4.1 创建一个所有用户都可以执行的文件A4.2 创建一个只有root可以编辑的文件B4.3 执行这个可执行文件A,发现不可以编辑文件B4.2 给文件A增加SUID位,发现普通用户执行A可以修改B与SUID类似,设置了SGID的文件可以获取当前组的所有权限
2022-10-24 22:31:21
463
原创 PC端通过WiFi热点共享代理
以v2ray为例:电脑开启共享wifi后,打开电脑的代理设置,可以看到端口为10810,然后运行ipconfig,查看本地连接的ip地址,手机连接到电脑上的热点后,设置手动代理,ip为电脑ip,端口为10810
2022-04-08 11:26:11
15915
2
原创 搭建自己的Hexo博客并部署在自己的服务器上(重温)
三年前写过一篇,但是不够详细,恰逢清明假期,又因疫情封校,刚好租了一年的服务器,在时间条件和硬件条件同时满足的前提下,抽出时间来重温一遍部署过程。1.服务器端操作1.1 创建博客页面目录hexo博客属于静态页面,我们要设置一个特定的目录用于存放博客页面。mkdir -p www/blog创建好之后我们的博客文件都会放到blog文件夹下1.2 配置git仓库本地的hexo博客需要通过git来更新到我们的服务器中,所以我们要在服务器上创建一个git仓库,并且配置hook更新到服务器上存放博客页面
2022-04-02 16:23:34
1439
原创 numpy多维数组索引
文章目录切片索引一维二维三维四维布尔索引一维切片索引python的numpy中的多维数组,有时候需要定位到数组中的某些区域元素的位置。一维一维数组很简单,我们可以直接指定索引,或者使用切片索引。比如: data[0],这时候输出单个具体数值,没有维度data[:3],这时候输出一个一维的子数组二维二维数组也不难理解data[0,1] 定位一个指定的具体数值,没有维度data[0,:]定位一维数组data[:,:] 定位二维数组三维三维数组有些难以理解,之前遇到的三维数组有点蒙圈,现
2022-03-25 15:45:11
4321
原创 python之OCR文字识别
法一: 使用easyocr模块easyocr是基于torch的深度学习模块easyocr安装后调用过程中出现opencv版本不兼容问题,所以放弃此方案。法二:通过pytesseract调用tesseract优点:部署快,轻量级,离线可用,免费缺点:自带的中文库识别率较低,需要自己建数据进行训练法三:调用百度API优点:使用方便,功能强大缺点:大量使用需要收费我自己采用的是调用百度API的方式,下面是我的步骤:注册百度账号,创建OCR应用可以参考其他教程。购买后使用python调用方法
2022-03-02 15:54:52
5902
原创 互联网面试经历
美团笔试题:小美的数字卡片字典序写出每种排列方式:比如1 2 3的方式是1 2 3;1 3 2;2 1 3;2 3 1;3 1 2;3 2 1六种方式有重复数组全排列:47. 全排列 IIclass Solution { List<List<Integer>> result = new ArrayList(); int[] arr; boolean[] used; public List<List<Integer>>
2021-10-24 20:08:03
166
原创 java迭代map的四种方式以及迭代器原理
迭代器原理:什么是迭代器,使用迭代器的好处?迭代器就是用来遍历集合中对象的东西,也就是说,对于集合,我们不像对原始数组那样通过直接访问元素来迭代的,而是通过迭代器来遍历对象。这么做的好处是将对于集合类型的遍历行为与被遍历集合对象分离,这样以来,就不需要关心该集合类型的具体实现是怎么样的。只要获取这个集合对象的迭代器便可以遍历这个集合中的对象。而像遍历对象顺序以及怎么访问对象元素这些细节,全部由它自己的迭代器来处理。迭代器怎么实现的?首先集合要先实现iterable接口来表示此对象是可以进行迭代
2021-09-02 22:22:54
8895
原创 Sucess is a continuous journey
Why do so many people reach success and then fail? One of the big reasons is, we think success is a one-way street. So we do everything that leads up to success, but then we get there. We figure we’ve made it, we sit back in our comfortable zone, and we ac
2021-09-02 15:56:27
227
转载 HashMap遍历的时候使用map.remove会报错
hashmap遍历时用map.remove方法为什么会报错? 发现问题笔者最近在调试项目bug的时候,遇到了一个很奇怪的bug,就是在对hashmap集合进行遍历的时候,同时做了remove操作,这个操作最后导致抛出了java.util.ConcurrentModificationException的错误。带着疑惑,下面参考着源码,分析问题的原因。首先,重现问题,构造一个map并往里面加元素:private static HashM...
2021-09-02 10:58:31
2520
原创 Java Native Interface(Java native方法的使用)
1. 安装gcc什么是JNIJNI: Java Native Interface,是一个java调用其他非java代码的接口。JNI是java平台的一部分,通过JNI可以实现java与其他非java编程语言的交互。为什么要用JNIjava在执行一些层次的任务时候,对时间敏感或者需要执行更高效率任务的时候在已经有其他语言实现已完成的功能时,需要java来直接调用。在需要用到java标准平台不具备的依赖与操作系统的特性的时候JNI原理当一个类第一次被调用的时候,这个类的字节码会加载到内存,并
2021-08-31 18:09:29
247
原创 Java父类子类中的实例和static的调用顺序
public class Father { static { System.out.println("Father的静态块"); } private static String staticStr = getStaticStr(); private String str = getStr(); { System.out.println("Father的实例块"); } public Father() {
2021-08-31 11:24:03
252
原创 学位论文改进
可以从两个方面进行改进:基于GAN网络进行数据集增强处理参考文献:面向SAR图像处理的生成式对抗网络应用综述_卢庆林舰船尾迹SAR成像仿真及目标检测方法研究_曲博岩提出小样本轻量级结构网络检测模型参考文献:基于小样本迁移学习的合成孔径雷达目标识别方法研究_邓文博...
2021-08-30 10:23:09
144
原创 数据库三大范式
第一范式:1NF概念:数据库第一范式必须满足保证每一列都是不可分割的基本数据项。简而言之,第一范式就是无重复的列正面举例:反面举例:第二范式:2NF概念:在满足第一范式的前提下,第二范式要求每一行都可以唯一的被区分,简而言之就是所有的非主属性完全依赖于主关键字。正面举例:学号—>姓名,年龄,成绩课程—>学分反面举例:学号,课程—>姓名,年龄,成绩,学分可能出现的问题:增加一个学号会增加多个学分冗余。就是组合关键字中的字段决定非关键字的情况第三范式:3NF概念:
2021-07-19 11:11:39
152
原创 简历撰写+面经总结
Situation: 事情是在什么情况下发⽣;Task:: 你是如何明确你的任务的;Action: 针对这样的情况分析,你采⽤了什么⾏动⽅式;Result: 结果怎样,在这样的情况下你学习到了什么。参考即可:JVM JDK和JRE的详细通俗回答JVMJVM是运行Java字节码的虚拟机。JVM有针对不同系统的特定实现,目的是,使用相同的字节码,他们回给出相同的结果。JVM中的类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度回相对比较慢。而且,有些方法和代码块
2021-07-16 20:58:59
218
原创 Yolov3与CenterNet速度和精度对比
DONE (t=13.52s).Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.374Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.551Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.408A.
2021-07-08 21:27:16
1530
1
原创 分治与动态规划算法
变量是物品的种类cpackage com.atguigu.dynamic;public class KnapsackProblem { public static void main(String[] args) { // TODO Auto-generated method stub int[] w = {1, 4, 3};//物品的重量 int[] val = {1500, 3000, 2000}; //物品的价值 这里val[i] 就是前面讲的v[i] int ...
2021-05-06 09:55:38
121
原创 图
import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;public class Graph { public static void main(String[] argv){// GraphList graph = new GraphList(5);// String[] strs = {"A","B","C","D","E"};// ...
2021-04-30 10:07:06
101
原创 堆排序
大顶堆:小顶堆:堆排序思想:如何构成一个大顶堆:// 堆化的具体过程:从最后一个非叶子节点开始:比较子节点中最大的数,然后让该节点置为最大值,子节点置为之前的数 int temp = array[index]; // 循环遍历子树 for(int k=index*2+1;k<length;k = k*2+1){ // 找到子节点最大数的索引 if(k+1<length&am.
2021-04-18 11:07:24
90
原创 树结构
三种数据结构的特点;数组的优缺点:链式存储的优缺点:二叉树:二叉树二叉树的遍历说明二叉树的查找二叉树删除节点(简单版)顺序存储二叉树将数组转化为二叉树,顺序存放数组线索化二叉树...
2021-04-16 09:19:27
82
原创 查找算法
线性查找用于查找无序数组二分查找用于查找有序数组public static int binarySearch(int[] arr, int left, int right, int findVal) { System.out.println("二分查找被调用~"); // 当 left > right 时,说明递归整个数组,但是没有找到 if (left > right) { return -1; } int mid = (left + right) / 2;
2021-04-13 17:40:57
68
原创 递归(Recursion)的应用
递归调用机制图解:递归可以解决什么样的问题?1)各种数学问题如:8皇后问题,汉诺塔问题,阶乘问题,迷宫问题,球和篮子问题(google编程大赛)2)各种算法中也会用到递归,比如快速排序,归并排序,二分查找,分治算法等3)将用栈解决的问题,使用代码比较简单球和篮子问题:1. 第一次尝试:垃圾错了,写的乱七八糟。没有一点思路public class RecursionTest { public static void main(String[] args) { int
2021-04-10 20:13:08
314
原创 正则表达式
正则表达式测试和常用案例编程语言中的正则表达式限定符?表示匹配前面的表达式0次或者1次+ 表示匹配前面的表达式1次或多次* 表示匹配前面的表达式0次或多次修饰限定符非贪婪模式的符号:?特殊字符:注意^在方括号中表示取反,在普通情况下作为定位符使用定位符选择和捕获:千位分隔符的理解正则表达式在ls | grep中的应用注意?号需要加一个转义符相关链接:https://blog.csdn.net/xy010902100449/article/details/5142
2021-04-09 16:33:25
105
原创 队列,链表和栈(中缀转后缀)
文章目录环形队列环形队列思路:环形队列代码实现:链表:单链表双向链表环形链表栈数组模拟栈使用链表实现一个栈最重要的是队列,链表和栈的使用,而不是如何创建:链表的应用场景:栈的应用场景前缀和后缀表达式环形队列环形队列思路:需要两个指针:front指向队列的起始元素,rear指向数组的最后一个元素的后一个位- 置,因为需要空出一个空间作为约定。(空一个的原因是区分队空和队满)判断队列是否已经满了:(rear+1)%maxSize == front判断队列是否为空:rear==front时为空。环形
2021-04-09 15:16:25
317
原创 Docker技术
What:什么是Docker假设您在开发一个应用。您使用的是一台笔记本电脑,而且您的开发环境具有特定的配置。其他开发人员身处的环境配置可能稍有不同。您正在开发的应用不止依赖于您当前的配置,还需要某些特定的库、依赖项和文件。与此同时,您的企业还拥有标准化的开发和生产环境,有着自己的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境,而不产生重新创建服务器环境的开销。因此,您要如何确保应用能够在这些环境中运行和通过质量检测,并且在部署过程中不出现令人头疼的问题,也无需重新编写代码和进行故障修复?答案就是
2021-04-06 19:42:43
120
原创 Java8新特性(Lambda表达式和StreamAPI)
Java8新特性:Lambada表达式不使用labmda表达式:Comparator<Integer> com1 = new Comparator<Integer>(){ @Override public int compare(Interger o1, Integer o2){ return Integer.compare(o1,o2); } };int compare1 = com1.compare(12,2
2021-04-03 22:37:39
484
1
原创 yolov5环境部署和测试
检测阶段:模型下载链接:https://github.com/ultralytics/yolov5/releases开始部署环境:出现的问题:No module named “skbuild”解决: pip install scikit-build测试python3 detect.py --source data/images --weights model/yolov5l.pt --conf 0.25ONNX和Pytorch格式文件的相互转换:Pytorch模型导出为ONNX格式:实
2021-04-02 20:49:32
1353
原创 Java之反射机制与动态代理(重要)
反射机制概述反射视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作认一对象的内部属性及方法。加载完类之后在,在堆内存的方法区就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射。反射相关的主要API理解Class类并获取Class实例在反射之前,在一个类的外部,不可以通过Pe
2021-04-01 14:17:06
482
2
原创 Java之网络编程(简述)
如果需要网络通信,我们主要有两个主要问题:对应第一个问题:IP和端口号对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层,物理层+数据链路层)IP: 唯一的标识Interet上的计算机(通信实体)在Java中使用INetAddress类表示IPIP分类:IPv4和IPv6; 万维网和局域网域名:www.baidu.com www.mi.com www.sina.cominet = InetAddress.getByName()inet = InetAddress.get.
2021-03-26 22:35:26
132
原创 Java之IO流
File类的使用File构造器构造器文件路径参数:File类的获取功能:调用listFiles的话输出的是绝对路径renameTo重命名File的判断功能File类的创建和删除功能:IO流原理及流的分类节点流(文件流)缓冲流转换流打印流数据流对象流随机存取文件流NIO.2中Path、Pahts、Filese类的使用...
2021-03-21 16:31:46
92
原创 Java之泛型
为什么要有泛型不使用泛型会出现的问题:在集合中使用泛型泛型不能是基本数据类型 ,需要通道基本类型的话需要拿包装类来替换集合接口或者集合类在jdk5.0之后修改为了带泛型的结构 。在实例化集合类时,可以指明具体的泛型类型。指明完之后,在集合类或接口中凡是定义类或者接口时,内部结构(比如方法、构造器、属性)使用到类的泛型的位置,都指定为实例化时指定的类型。比如add(E e) —> 实例化之后:add(Integer e)如果实例化时没有指明泛型的类型。默认类型为java.lang.O
2021-03-20 11:00:03
87
原创 人生中的得与失
名与身孰亲?身与货孰多?得与亡孰病?甚爱比大废,多厚必厚亡。故知足不辱,知止不殆,可以长久。——《道德经》不以物喜,不以己悲。——《岳阳楼记》但行好事,莫问前程。——《增广贤文》人绝大多数痛苦都来自于“得与失”之间的失衡,得到了我们开心,失去了我们痛苦。一件事能给我带来好处,我便欣喜若狂;可若是失去了点什么,比如钱财亏了、失了,那就很痛苦。人在患得患失下,就很容易患病。其实得与失是相互转化的,很多时候你感觉得到了,但是未必就是真的得到了。因为当我们得到什么的时候,相应的一定会失去什么。所有有付出
2021-02-19 18:55:11
247
2
原创 java集合
集合、数组都是对多个数据进行存储操作的结构,简称Java容器。数组在存储多个数据方面的特点:> 一旦初始化之后,其长度就确定了> 数组一旦定义好,其元素的类型也就确定了。我们只能操作指定类型的数据了数组在存储多个数据方面的缺点:> 一旦初始化以后,其长度就不可修改> 数组中提供的方法非常有限,对于添加、删除、插入数据操作,非常不方便,并且效率低下。> 获取数组中有效元素的个数需求,数组没有提供> 数组存储数据的特点:有序、可重复。对于无序,不可重
2021-01-23 20:37:18
339
1
yolov3.tar
2019-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人