自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java log4j2日志配置

项目中日志的xml文件结构很复杂,这里逐步解析记录下,还有相应的参考教程。<?xml version='1.0' encoding="UTF-8" ?><Configuration> <Properties> <!-- 定义日志文件的存储地址 --> <Property name="log-dir">/export/Logs/jx-search-web</Property>

2022-04-22 11:30:51 2675

原创 部署公网访问服务器

1. 云服务器选择服务器了解和对比服务器参数2. 云服务器部署3. 域名选择直接在阿里云网站上购买域名,可以查询自己想取得域名有没有被占用。还可以选择是com/cn/top等等结尾的,价格不一样。域名备案:nginx配置域名4. 关联机器域名买好之后,在工作台域名相关页面选择解析,填入关联机器的ip地址。是否用nginx的思考。看网上都在容器中加入nginx,主要是基于多台机器部署,或者一台机器部署多个应用的考虑。我们单机针对网站和小程序端的话,刚开始应该还不需要nginx。另外还有

2022-04-17 20:00:39 2285

原创 docker-compose部署Java应用和相关依赖

上次用了docker远程部署之后,发现还是有点不方便的地方。2357上传了镜像之后,不会自动启动成容器,而且许多启动时的命令还要重新打。换台机器还要从偷装mysql和minio等等。网上看到能通过docker-compose进行一键部署。docker-compose部署分为一下几步:下载docker-compose编写build镜像相关的dockerfile编写docker-compose启动的yml文件以本Java应用为例,dockerfile已经本地通过IDEA的docker-maven-

2022-04-17 17:12:15 4847

原创 docker容器间互联

单机部署的时候考虑,能不能使docker各个容器间互通呢。比如我的web应用容器可以和db容器间互通,而不是现在这样再web应用调用本机ip去访问。网上查了一下还真有这种方法。还有两种方法:1、links在容器启动时,启动命令中加入links指定链接的容器:docker run -itd --name nginx-web02 --link nginx-web:nginx01 -p 81:81 sunmmi/nginx nginxrun容器nginx-web02时,link容器nginx-web,

2022-04-15 18:20:47 1915

原创 本地配置虚拟机docker开发环境

1.开启ubuntu ssh服务sudo apt-get install openssh-serversudo /etc/init.d/ssh start 2. docker hello-world报错[vagrant@docker ~]# docker pull hello-worlddocker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while

2022-04-14 22:27:02 1717

原创 Guava库使用

今天听同事说到google的Java工具库Guava非常好用,有很多操作list和map的快捷方法。所以就来学习记录一下。Joiner静态初始化方法,创建list时指定初始值List<String> list1 = Lists.newArrayList("1", "2", "3"); //传入集合List<String> list2 = Lists.newArrayList(list1);将list字符串集合,以,形式转为字符串List<String&g

2022-03-28 21:31:08 1001

转载 JAVA面试学习资料

JAVA面试学习资料/进阶学习《JAVA进阶手册》在线文档(可免费下载)

2022-03-28 14:44:29 106

原创 windows wsl装linux踩坑

windows非官方正式版,无法登陆Micsoft账号从网上找了网盘的下载点下载,本地用命令行安装。详见链接:http://www.biliyu.com/article/1968.html命令行安装报WslRegisterDistribution failed with error: 0x80041002的错误网上找到命令行输入Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux.

2022-03-19 12:09:11 5194 1

原创 git使用理解

其实我都用git tortoise,完全UI可视化,直观又方便,推荐。

2021-07-29 11:16:33 106

原创 windows下搭建DOS汇编环境

最近导师安排个活儿,在一台老电脑上配置能编译汇编程序的DOS环境。本来想还要重装之类的,在网上找了下发现了一种方法可以直接实现。通过在windows下安装DOSBOX的DOS模拟器软件再其中安装汇编程序的编译器MASM即可实现。具体流程和参考文献如下:安装:DOSBOX+MASMDOSBOXMASM配置:参考文献编译与调试:参考文献另外老师提出可能需要用到DOS控制串口并口,所以我又在网上找了个可以支持串口并口的DOSBOX改进版本:下载链接...

2021-05-25 15:09:11 266

原创 EXCEL类十字拖拽操作上千条数据的技巧

使用场景:今天遇到要给一个文件夹几千张图片写个list,形如:.\sample\6\00001.jpg,末尾序号一直延伸到几千。本来可以直接在第一行写下.\sample\6\00001.jpg,然后通过右下角十字往下拖拽,但发现一下要拖到几千行,而且新创建的excel表格一次才显示几十行,要不断拖好久滚动条。就想找有没有能直接处理几千行的类似十字拖拽的技巧。最后找到了,记录一下。核心还是用了公式法,但公式开始也不知道怎么表述,因为名称里既有字符串又有序号,怎么让指定序号按指定格式递增。尝试了许久,通过

2021-05-11 15:26:09 1456 1

原创 2020秋招面试汇总(C++)

总体几乎所有问题都答出来了,主要问的刚好都是我会的,看了昨天我同学跟我说的,发现没几个能答出来的,今天的虽然很偏,但刚好是我知道的,一问一答像对答案一样,也是走了狗屎运,但愿能过吧。这里做个总结和我自己感觉自己没做好的地方两个人面试记得询问另外一个人,最后反问环节我只听了技术小哥的意见,HR姐姐并没有说,我也没有问,我应该再主动问一下她,尤其是这种两人面试的时候应该照顾一下另一位的感受,不应该全程我跟技术小哥讨论技术,忽略了HR姐姐。虽然不是很关键,这也是人细节的一部分。...

2021-01-07 22:03:02 924

原创 C++类的大小和字节对齐

之前牛客网做C++测试题遇到结构体对齐和类大小的问题,没怎么在意,以为就记住了。可是今天看面试问题的时候又看到了,有的地方就想不起来了,所以决定开篇文章记录一下。类大小的问题1.空类class A{};sizeof(A); //1解析:类的实例化就是为每个实例在内存中分配一块地址;每个类在内存中都有唯一的标识,因此空类被实例化时,编译器会隐含地为其添加一个字节,以作区分。2.虚函数类class A{ virtual void Fun();};sizeof(A); //4

2020-08-25 17:17:31 948

原创 位运算的知识

今天做了道位运算的题,在本地IDE试了下对1取反,用~n,发现结果竟然是-2,有点难以理解。所以查了下相关知识,记录一下。(按位取反)运算的理解:按照我平时的理解,当我使用按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是按位取反的运算结果(这点没问题)例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下:5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101执行运算,即5后: 1111

2020-08-19 17:52:47 199

原创 (算法题)两条不相交的线

同学面试华为手撕算法的一道题目。直接给我的时候我是懵的,面试官也提醒了动态规划和方程,可带着这样的思路也没想起来,想着怎么这么难。后来吃完饭闲来无事网上查了一下,发现竟然是Leetcode的原题,看了一下思路,恍然大悟,原来原理和最长公共字符串的思路一样!所以特地来记录一下。题目:(Leetcode 1035)我们在两条独立的水平线上按给定的顺序写下 A 和 B 中的整数。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他

2020-08-14 22:33:34 7288 2

原创 C++的float类型数比较问题

之前刷题做到一道题,看到题解很奇怪:计算一个数字的立方根,getCubeRoot(double input)。题解采用了二分法,但比较时并不是用直接==比较是不是达到了目标值,而是这样写的:if(mid*mid*mid-a<0.0000001 && mid*mid*mid-a>-0.00000001)printf("%.1lf",mid);当时就有点懵,今天又看到了一道面试题:写出float x 与“零值”比较的if语句看了题解:const float EPSI

2020-08-10 09:47:10 1852

原创 魔方教学系统(基于QT)

没能及时复盘写下来 现在很多想不起来解法实现关于引用 直接.h 就能在类里使用全局变量的使用播放器串口通讯线程信号槽设计模式的探讨 不然情景选择按键下全是switch

2020-07-30 22:13:51 1184

原创 C++初始化列表

定义与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。1)在构造函数执行时,先执行初始化列表,实现变量的初始化,然后再执行函数内部的语句2)成员初始化的顺序只与声明的顺序有关,而跟初始化列表的顺序无关。例如我们写成: id(i),name(s),但是我们还是先初始化变量name(s),,然后id(i),因为我们先声明的变量name ,然后id 。3)成员之间可以相互初始化:a(12), b(a) //a,b为相同类型

2020-07-28 17:33:26 242

原创 C++类内存分布

书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。1、配置工具工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来:先选择左侧的C/C+±>命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到所有相关类的内存布局,如果写上/d1 reportSingleClassLayoutXXX(XXX为类名),则只会打出指定类XXX的内存布局

2020-07-28 11:56:17 296

原创 栈的三种实现方式(C++)

一、基于deque实现优点:利用deque动态管理内存,栈的内存无上限,STL中的栈也是基于deque实现的。 template<class T> class MyStack{ deque<T> dq; public: void push(T element){ dq.push_back(element); } void pop(){ assert(!empty()); dq.pop_

2020-07-27 22:50:35 738

原创 计算最大公约数最小公倍数(C++实现)

华为的一道机考题,记录一下思路手下是数学方法解析,算最小公倍数,需要用到最大公约数。首先将用计算机算法算最大公约数的原理。最大公约数辗转相除法(欧几里得 Euclidean)    用“较大数”除以“较小数”,再用较小数除以第一余数,再用第一余数除以第二余数;反复直到余数为零为止。  图解:  代码实现://迭代int gcd(int a, int b) // greatest common divisor 最大公约数{ while(a%b){ int tmp

2020-07-24 17:09:30 2345

原创 扫码打印机项目

1 背景:之前做的一个项目,贴片LED配粉机每次工人操作需要手动写下产品信息和制作人还有时间,这个过程耗费了时间,而且有的坏粉还会被人为修改错误记录导致无法追查,所以设计一种扫码和自动打印标签的装置能把产品信息采集下来,并且与不同的信息组合生成新的一维码或者二维码,贴到产品或者工作记录上。2 系统组成:扫码枪是直接淘宝采购的扫码枪,通过485接到STM32串口2,打印机也是淘宝采购精普小型打印机,可以打印各种便签,并且只要输入相应的指令和ASCII码内容就能自动转换成一维码或者二维码,非常的方便。打

2020-07-16 22:55:30 752

原创 线材检测项目(基于QT)

背景这也是之前做的一个项目。主要目的是一个粗的电线里面有三种颜色的线在一起,需要通过机器视觉检测出来相互之间的位置,保证黄色线在最上面。他们有个专门的电机旋转电线,需要给到控制电机的PLC需要旋转的角度。我们主要负责做识别检测部分和上位机操作软件。检测的线材如图:系统组成硬件主要为摄像头,工控机,串口转MODBUS。PLC控制不是我们负责的,我们只需要通过MODBUS把需要旋转的角度发送过去即可。只知道他们那边的PLC用的是中研五轴十轴模块。摄像头采用了映美精的GigE彩色工业相机。工控机采用

2020-07-12 22:21:53 1094

原创 解释二叉树深度和高度

今天小伙伴在群里问到,面试官问这个问题。我第一印象,这不是一回事吗? 去查了查,竟然还真有区别,所以在此记录一下。高度和深度是相反的表示,深度是从上到下数的,而高度是从下往上数。我们先来看看高度和深度的定义,某节点的深度是指从根节点到该节点的最长简单路径边的条数,而高度是指从该节点到叶子节点的最长简单路径边的条数。所以树的深度和高度是相等的,而对其他节点来说深度和高度不一定相等。注意:这里边的条数是规定根节点的深度和叶子节点的高度是0;(也可规定为1)如 B和C节点深度都为1,因为从根节点到到该

2020-07-09 18:51:27 5242

原创 C++右值引用

转载一篇C++ 右值引用的文章实在太长太深刻了 以后用到的时候再细看&&链接:https://www.jianshu.com/p/d19fc8447eaa

2020-06-29 18:30:16 111

原创 C++中explicit关键字的作用

explicit意思显式,对应的implicit 隐式。首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的。常用来防止隐式调用构造函数。class A{ public: A(int a){cout<<a<<endl;}};class B{ public: explicit B(int b){cout<<b<<endl;}};int main(){

2020-06-18 09:21:46 487

原创 C语言中volatile关键字的作用

在看C语言基础知识的时候看到了volatile关键字,不是很理解,所以查了资料,总结一下。volatile译为:易变的volatile是一个类型修饰符(type specifier),就像我们熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量;volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。简单地说就是防止编译器对代码进行优化。比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XB

2020-06-18 08:51:03 6676 2

原创 C++ 函数const引用传参

今天看google C++代码规范时看到有一条:函数传参的引用必须要加const。就觉得有些奇怪,引用传递不就是为了方便,而且直接能修改原数据了,但加上const变常量之后等于又无法修改原数据了,为什么还必须规定要这样矛盾的做法呢?下面就是收集到的资料。&是为了引用传递,防止值传递的复制数据const是为了保护数据不被改动const&防止传值时拷贝构造函数的调用开销简单来说就是,在不加const 和 & 的情况下,进行普通的函数调用,必然会有值传递,如果数据量大花费时间长(

2020-06-16 20:32:06 3318 1

原创 C++ 编程风格及代码规范

right clean code --Facebook会写代码,还要尽量做到写简洁和优美的代码,因为代码不只写,还有读,可读性也是很重要的一环。这是我自己做的一个脑图:这是另外一个大神的总结:Google的C++编码规范中文链接:http://zh-google-styleguide.readthedocs.org/en/latest/google-cpp-styleguide/PDF下载

2020-06-16 17:35:37 268

原创 卡尔曼滤波解决UWB无线时钟同步时的时间漂移(含MATLAB仿真)

本篇承接UWB那篇,专门介绍下卡尔曼滤波解决UWB无线时钟同步时的时间漂移的原理。

2020-06-14 22:54:46 6621 28

原创 CCP无线时钟同步(UWB)

本篇承接UWB那篇,专门介绍下时钟同步的原理。

2020-06-12 22:50:06 3030

原创 UWB信号强度估算(DW1000)

本篇承接UWB那篇,专门介绍下从DW1000读取相关信息估算收到的UWB信号强度。

2020-06-05 22:52:43 4025 12

原创 TWR双边测距

本篇承接UWB那篇,专门介绍下双边测距的原理。

2020-06-05 22:45:54 6284 2

原创 UWB定位系统

1 背景:这是之前研一的时候一直在做的项目。老师好像从Decawave海南那边的研究所得到了一套不知道是要淘汰还是没有上市的定位测试系统。已经有了针对DW1000的外围硬件PCB设计,我们基于这些进行后续的开发。最终目标是完成一套能够在监狱使用,定位监狱服刑人员的系统。2 系统组成:硬件分为基站(Anchor)和信标(Tag),软件分为下位机的硬件在跑得嵌入式软件和上位机PC在跑得解算和GUI软件。基站关键部分是ATSAM4E8+DW1000,信标关键部分是STM32+DW1000软件下位机C语言

2020-06-04 22:44:32 12886 11

原创 无刷电机与有刷电机

之前开会听到老师和电控工程师讨论用无刷电机还是有刷电机,便去查了些资料,整理汇总了一下。有刷电机有刷电机是大家最早接触的一类电机,例如很多电动小玩具,或者很多家用的吹风机里面的电机都是有刷电机。有刷电机的主要结构就是定子,转子,电刷,通过旋转磁场获得转动力矩,从而输出动能。电刷与换向器不断接触摩擦,在转动中起到导电和换相作用。随着电机转动,不同时刻给不同线圈或同一个线圈的不同的两极通电,使得线圈产生磁场的N-S极与最靠近的永磁铁定子的N-S极有一个适合的角度差,磁场异性相吸、同性相斥,产生力量,推动电

2020-06-01 09:41:50 804 2

原创 第一篇文章(关于为什么写博客的思考)

一直想开始写博客文章,却一直拖延,不知道要从哪里开始写什么,也不知道什么时候开始。今天刚好是个契机。上午和组里开会的时候听到老师和杭州公司那边的电控工程师在讨论方案里用直流有刷电机还是直流无刷电机,各种特性和实现的弊端都张口就来,分析的头头是道。会后我就去查了些关于电机的资料,看了半天发现其实我很早之前就查过一次,可并没有形成记忆变成自己的知识,导致过了一段时间后遇到相同的问题还要去重新找,在资料堆里翻来翻去从头想起,这就导致效率很低下。我就想到如果之前有写过相关资料汇总和提炼后的博客,那会后想回忆起来

2020-05-29 23:22:18 216

扫码打印机project.7z

一种扫码和自动打印标签的装置能把产品信息采集下来,并且与不同的信息组合生成新的一维码或者二维码,贴到产品或者工作记录上。

2020-07-25

wire线材检测项目(基于QT).7z

这也是之前做的一个项目。主要目的是一个粗的电线里面有三种颜色的线在一起,需要通过机器视觉检测出来相互之间的位置,保证黄色线在最上面。他们有个专门的电机旋转电线,需要给到控制电机的PLC需要旋转的角度。我们主要负责做识别检测部分和上位机操作软件。

2020-07-12

空空如也

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

TA关注的人

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