自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 QLayoutItem指针double free

QLayoutItem指针析构

2022-09-23 15:22:42 225 1

原创 OpenSSL SM4加密 CMake工程链接失败

C++ SM4 国密

2022-08-17 21:39:04 878

原创 Qt utc时间字符串转为本地时间

utc时间字符串转为本地时间

2022-08-10 17:09:20 917

原创 Qt如何优雅的处理悬空指针- QPointer

Qt如何处理悬空指针- QPointer在日常搬砖工作中,可能会遇到这样的情况:class Test{public: void setPtr(QObject *ptr){m_ptr = ptr;} bool isPtrValid(){return m_ptr != nullptr;}private: QObject *m_ptr;}int main(int argc,char **argv){ QObject *obj = new QObject(); Test test; tes

2021-06-03 19:51:50 1204

原创 QTimer timeout之后函数是异步执行还是同步执行

写一个简单的demo做个实验:#include "widget.h"#include "ui_widget.h"#include <QTimer>#include <QThread>#include <iostream>using namespace std;Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupU

2021-05-24 19:47:21 810

原创 C++ condition variable中notify_all()如何保证数据同步

先上代码:// condition_variable example#include <iostream> // std::cout#include <thread> // std::thread#include <mutex> // std::mutex, std::unique_lock#include <condition_variable> // std::conditio

2021-03-23 15:47:08 836

原创 C++中mutable关键字作用

mutable,顾名思义表示变量是可变的,与const唱对台戏。不结合实际情况根本让人搞不明白它的意义在哪里,下面结合实例说一下。假设我们要封装一个多线程下安全使用的vector,大概如下#include <vector>#include <mutex>template<class T>class ConcurrentVecor{public: //省略其他代码 bool isEmpty() const{ std::lock_guard<std

2021-03-22 18:22:28 637

原创 关于std::async如何传递引用的问题

在了解std::async()时写了一下测试代码,网上的测试代码参数一般都是基础类型值传递,但是我想看下vector并发的情况,代码如下:int doSomething(char c, ConcurrentVector<char>& vec, int* aomic){ default_random_engine dre(c); uniform_int_distribution<int> id(1,10); for(int i = 0; i <

2021-03-17 09:38:37 1014

原创 C++STL remove_if函数为什么先用一个find_if

先贴代码:template <class _ForwardIterator, class _Predicate>_LIBCPP_NODISCARD_EXT _LIBCPP_CONSTEXPR_AFTER_CXX17 _ForwardIteratorremove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred){ __first = _VSTD::find_if<_Forward

2021-03-14 19:34:25 165

原创 C++类operator () 重载和函数对象

最近翻阅C++标准库的学习文档,看到有这样一个用法:class CPrintInt{ public: void operator() (const int& elem){ cout<< elem << endl; }};int main(int argc, char const *argv[]){ vector<int> coll; for(int i = 1; i <= 9; ++i){

2021-03-12 11:48:41 935

原创 C++单例类实现宏定义

项目中单例类很多的话,每个都要声明代码回比较累赘,所以写了一个宏定义简介使用:宏定义如下:#define DECLARE_SINGTON(ClassName)\private:\ ClassName(){};\ ~ClassName(){};\ ClassName(const ClassName&);\ ClassName& operator=(const ClassName&);\ static ClassName* m_pInstan

2021-03-05 14:26:38 607

原创 java CountDownLatch使用方法

缘起在项目开发中遇到一种场景,需要给多台(100左右)设备下发指令,一台台下发速度太慢,并发下发的话需要下发结果汇总后在前端展示,这里用CountDownLatch解决问题。代码public Object deletePeople(@RequestBody String param){ List<DevicePersonDo> deleteRes = new CopyOnWriteArrayList<>(); try {

2021-03-01 13:59:48 204

原创 springboot + swagger2注意点

springboot + swagger2注意点1、如果在配置文件中设置了spring.mvc.converters.preferred-json-mapper:gson会导致swagger失效,换成Jackson就行。或者不在配置文件中写,用代码配置自定义解析器。2、controller的返回值写明参数类型,如:ResultDto;如此在文档中可以清晰看到返回值类型。3、@ApiOperation() 描述接口信息。4、@ApiImplicitParam() 描述接口参数信息。5、@ApiMo

2021-01-25 17:07:19 152

原创 Gradle + idea注意点 -- 持续更新

Q1:执行war task不生成war包,显示任务SKIPPED在build.gradel中添加war { enabled = true}Q2:修改war包文件名description = 'appName'war { enabled = true archiveName 'appName.war'}

2021-01-23 18:01:38 162

原创 python 读取图片 ‘utf-8‘ codec can‘t decode byte 0xb4

读取图片代码: with open('/Users/jason/temp/iris1.bmp', 'r') as f1: matchReq['leftEyeImage'] = f1.read()程序报错: ‘utf-8’ codec can’t decode byte 0xb4几经折腾才想起来,图片文件不能以“字符”的方式来读取,要用“字符”读取,将‘r’改成‘rb’即可!...

2020-11-16 18:27:02 1483

原创 使用HttpServletRequestWrapper后中文乱码解决方案

继承HttpServletRequestWrapper的类:public class MyRequestWrapper extends HttpServletRequestWrapper { private final String body; public MyRequestWrapper(HttpServletRequest request) throws Exception { super(request); this.body = Http

2020-11-03 22:33:57 1532

原创 mysql 使用like索引是否生效

实验在表中已经添加索引:device_serial_number -> idx_serial_number, access_time -> idx_access_time% 在左边:sql: EXPLAIN SELECT tar.id FROM t_access_record tar where 1=1 and tar.device_serial_number like 'D20001005%' ORDER BY tar.access_time desc LIMIT

2020-10-22 19:58:59 968 4

原创 mysql索引设计原则

引用自深入浅出mysql数据库开发1、搜索的索引列, 不一定是所要选择的列搜索的索引列, 不一定是所要选择的列。 换 句话说, 最 适合索引的列是出现在WHERE 子 句中的列,或连接子句中指定的列,而不是出现S在ELECT 关键字后的选择列表中的列。2、使用惟一索引考虑某列中值的分布。 对于惟一值的列, 索 引的效果最好, 而具有多个重复值的列,其索引效果最差。例如,存放年龄的列具有不同值,很容易区分 各行。 而用来记录性别的列,只含有“ M”和“F”,则对此列进行索引没有多大用处(不管 搜.

2020-10-22 18:10:14 93

原创 mysql 中 REGEXP 和IN 的效率对比

实例为了探索这个问题,新建一个表 t_personCREATE TABLE `NewTable` (`id` int(11) NOT NULL AUTO_INCREMENT ,`p_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ,`ctime` datetime NULL DEFAULT NULL ,`utime` datetime NULL DEFAULT NU

2020-10-21 22:21:10 2281

原创 解决where + order by检索很慢的问题

缘起项目中用到了这样一个语句SELECT id FROM t_access_record WHERE person_id = '985c30aad13911ea8f72509a4c827c5c'ORDER BY access_time desc其中,person_id 和 access_time添加了索引,但是检索速度超级慢(70s+),去掉其中where后只需要200ms+, 加上where去掉order by后也只需要到200ms+。使用explain查看语句执行情况发现只使用了acce

2020-10-19 11:32:09 989

原创 优化mysql检索left join + 条件检索

优化mysql检索left join + 条件检索优化前: select tar.id, tar.access_time accessTime, tar.open_door_type openDoorType, tar.is_passed isPassed, tar.device_serial_number deviceSerialNumber, tar.device_address deviceAddress, tar.in_out_flag inOutFlag, tar.depa

2020-10-16 15:22:49 300

原创 @Async注解函数一次没有执行完会执行下一次么?

缘起springboot项目中使用了@Async注解,并发操作中会多次使用改函数,使用测试了一下改函数是并发执行还是依次执行。异步函数:@Override @Async("asyncTaskExecutor") public void test() { logger.info("---------> test start"); int count = 0; for (int i = 0; i < 10000000; i++)

2020-09-25 18:12:55 704

原创 记一次Linux + jvm时区问题

缘起为了方便做项目的时候发布测试,故而在一台win10上面搭建了wsl环境,然后部署了jdk和tomcat8。项目是springboot + gradle(本来是maven项目,想尝一下gradle的味道,就换了),执行gradle命令后,通过ssh连接服务器,一键打包发布。一切仿佛那么美好,直到…有一天突然发现时间见了鬼,数据库中的时间比实际时间早了八个小时!开始怀疑是同事的服务发送的时间格式不对,或者传错了,查看日志后发现并不是。怀疑数据库连接的时区设置错误,网上搜索后,确认不是连接时区

2020-09-23 09:40:28 163

原创 idea+Gradle自动构建部署

利用gradle脚本自动编译部署到远程服务器,详细见下:/* * This file was generated by the Gradle 'init' task. */buildscript { repositories { jcenter() } //ssh插件 dependencies { classpath 'org.hidetake:gradle-ssh-plugin:2.9.0' }}plugins {

2020-08-31 17:13:46 613

原创 gradle yml中加入git提交版本信息

gradle yml中加入git提交版本信息buid.gradle文件如下import org.yaml.snakeyaml.Yaml/* * This file was generated by the Gradle 'init' task. */buildscript { repositories { jcenter() } dependencies { classpath group: 'org.yaml', name: 'sna

2020-08-31 17:11:56 485

原创 iframe带参数重定向到父页面

iframe带参数重定向到父页面缘起用layer.open 弹出iframe,然后在iframe中提交表单数据,并自动关闭iframe,在java代码中重定向到iframe的父页面,并携带参数。解决方案在iframe的表单中,设置target为_parent,这样就相当于是在父页面提交表单,否则无法在代码中重定向到父页面。<form id="form" action="<%=basePath%>accessRecordAction.do?saveFakeAccess" onsub

2020-08-13 01:52:05 991

原创 @Scheduled执行.bat脚本只执行了一次

我是用@Scheduled定时实行.bat脚本备份数据库,总是发现脚本只跑一次,百思不得其解。中午睡了个觉,突然想起来,可能是因为脚本中加了pause的原因,需要“按任意键继续”,删除之后就恢复正常了。...

2020-06-15 11:48:50 591

原创 利用expect自动同步文件到Linux并执行远程命令

原因:现在代码用远程git管理,但是Linux服务器不能连接外网,只能曲线救国:在本地写代码,然后同步代码到Linux服务器,并发送指令进行编译。准备工作:安装expect: 我电脑上已经安装了brew,执行brew install expectset user embestset pass ******set dir ~/Documents/share/application/d20set appDir ~/Documents/share/applicat...

2020-06-03 20:55:18 217

原创 获取jar包所在的路径

获取jar包所在的路径输入比较常用的功能,Mark一下;在window下面路径的最开始可能会是一个斜杠,需要手动去除一下。public String SysPath() { String path=this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); if(path.toUpp...

2020-04-29 22:39:06 1450

原创 java 向mysql中插入blob数据

public static boolean addMatchReocrd(MatchRecord record){ boolean suc = false; try { Connection connection = DbMysqlConnector.getConnection(); String sql = "{C...

2019-11-20 19:05:22 599

原创 js获取checkbox的checked值

document.getElementById("useIris").checked试了很多方法,只有这个方法成功了,mark一下

2019-10-16 20:29:56 1875

原创 js给input赋值无效的问题

新手出道,纠结了很久。$("#identifyType").attr("value", identifyType);在网上看到采用上述方法赋值,结果仍然无效。查了半天,原来是我没有给 identifyType 这个input写 id 属性,没有id属性无法赋值!(也可能是因为我是用的表单,然后直接序列化到类里面去才需要如此)...

2019-10-16 20:28:30 7392

原创 C++线程类封装实例

先上代码:class Thread : NoCopy{ Thread():_quit(false), _isRunning(false){} vartual ~Thread(){} int start(bool isJoin = false){ //默认是detach模式 if(_isRunning){ return -...

2019-05-05 10:30:05 629

原创 简述C++中static的几种用法

1、修饰局部变量,只执行一次初始化,延长了局部变量的生命周期,在程序结束的时候才释放。2、修饰全局变量,此变量只能在当前的文件中访问,其它文件不可访问,即使是extern也不行。(建议使用隐式命名空间)3、修饰普通函数(非成员函数),只能在当前文件中访问,不可在其它文件中调用。4、修饰成员变量,类的所有实体对象共享这个变量。5、修饰成员函数,在该函数中只能调用静态变量和静态函数。...

2019-04-09 22:42:50 448

原创 一个C++实用的buffer类

/** @brief Safely Buffer*/class Buffer {public: Buffer() : _data(nullptr), _size(0) { } Buffer(const byte* data, size_t size) : _data(nullptr), _size(0) { ...

2019-04-02 20:37:36 3731 1

原创 C++ 11 互斥体在函数体内的lock和unlock

话不多少,先上代码:template<class _Mutex>class LockGuard {public: explicit LockGuard(_Mutex& _Mtx) : _MyMutex(_Mtx) { // construct and lock _MyMutex.lock(); } ...

2019-03-30 16:25:17 1004

原创 C++ 单例模式的模板类 - 懒汉类型

1、简单的单例模式类class singleton{private: singleton(); ~singleton(); singleton(const singleton&); singleton& operator=(const singleton&);public: static singleton* GetIns...

2019-03-30 15:21:04 493

转载 typename用法

转自百度百科class关键字的同义词这是一项C++编程语言的泛型编程(或模板编程)的功能,typename关键字用于引入一个模板参数,例如:// 定义一个返回参数中较大者的通用函数template <typename T>const T& max(const T& x, const T& y){ return x > y ? x :...

2019-03-30 10:19:57 1009

原创 C++ 类拷贝构造函数和赋值运算符 & 禁止类的拷贝

1、通常我们定义一个类时,不显示的定义类的拷贝构造函数和拷贝赋值运算符时,编译器会生成两个默认的函数:class Foo{ Foo(const Foo&);//1 Foo& operator=(const Foo&)//2};1是拷贝构造函数,2是拷贝赋值运算符。Foo类可以做如下操作:Foo f1;Foo f2(f1);Foo f2 ...

2019-03-30 09:40:48 867

原创 C++ 基础类型转换(string, wstring,int, hex)

在项目中经常会用到类型间的相互转换,一段时间不用又会忘记,现记录一下方便后面查找。有需要的童鞋拿走不谢,哇哈哈哈....1、string转wstringstd::wstring s2ws(const std::string& s) { setlocale(LC_ALL, "chs"); size_t _dsize = s.size() + 1; wchar...

2019-03-29 17:54:28 2630

test_http_multiple.zip

QT用于多线程封装类,封装好了只需调用即可,主要特点: 1、使用EventLoop,阻塞单线程,但不阻塞主线程 2、支持多并发 3、支持超时设定

2020-04-11

ip_proxy_pool_server.zip

python实现的爬取免费ip代理源码,用VSCode就能直接跑。现在普遍网站都有反爬机制,用ip代理能有效的避开这一点。

2020-03-21

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

TA关注的人

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