工作笔记
本专栏记录了本人在工作中学习到的知识。欢迎大家查阅,
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
C++笔记-UTF8和UTF8-dom的区别
今天遇到的就是这个问题,我用notepad将ascii转utf8后,发现以前的c++解析程序core dumped了,定位到了读首行时,cout输出正常,但string[0],这种首行下标访问就不正常了,转ascii为原创 2024-10-14 13:55:37 · 277 阅读 · 0 评论 -
MySQL笔记-对mysql.sock.lock认识(2024-06-12)
此篇博文记录到个人笔记的时间为2024-06-12。原创 2024-08-26 08:36:40 · 776 阅读 · 0 评论 -
Redis笔记-分布式存储方案中哨兵模式配置
以前在系统分析师中学习到了Redis哨兵模式,只知道其中基本概念,但不知道怎么去配这个,今天看到某项目,特意记录下其配置过程。哨兵模式比主从模式,更具有容错性。Redis分布式存储方案分布式存储方案核心特点主从(Master/Slave)模式一主多从,故障时手动切换哨兵(Sentinel)模式有哨兵的一主多从,主节点故障自动选择新的主节点集群(Cluster)模式分节点对等集群,分slots,不同slots的信息存储到不同节点如下,配置2个哨兵。原创 2024-08-19 08:41:44 · 566 阅读 · 0 评论 -
Spring Boot笔记-使用dynamic-datasource配置多元数据库(MySQL和达梦)
以前都用JPA,配置多元数据库稍微麻烦那面一点点,这几天看了下年轻人的Java代码,发现Mybatis用得比较多了,而且还有比较好用的三方库,配置多元数据库,相对简单,在此记录下。在yml文件中配置,官方只给出了yml。properties没有提,但看了yml后,发现的确比properties要简洁好用多了。使用就相当简单了,用注解就可以了。下面我用jdbctemplate来调用下。这里有点要注意的primary必须指定一个,不然项目启动后会报错。启动后打印这个,就是成功了。原创 2024-07-29 08:34:16 · 531 阅读 · 1 评论 -
Linux笔记-对.a静态库的进一步理解(2024-04-09)
问:遇到问题应该及早发现才算是好的方法吧,.a静态库需要其他程序链接他时才会发现问题,那.a库的优势在哪呢?答:是的,一般来说,及早发现问题是好的编程实践。静态库(.a文件)和动态库(.so文件)各有其优势,针对不同的应用场景选择合适的库有助于提高开发效率和程序可维护性:静态库(.a):优势:独立性: 静态库可以将所有依赖项(包括第三方库)打包在一起,使得程序在不同环境中运行更为可靠。可移植性: 可以将静态库嵌入到可执行文件中,方便在没有动态库的环境中运行。原创 2024-07-22 08:41:34 · 1053 阅读 · 0 评论 -
Linux笔记-对xargs的理解(2023-12-13)
在Linux中,xargs命令的全称是"eXtended ARGuments"。它的主要作用是读取标准输入数据,并将其作为参数传递给其他命令进行处理。xargs命令通常用于解决输入参数过多导致命令行过长的问题。它可以将输入数据分割成合适的大小,并多次调用其他命令来处理这些分割后的参数。此篇记录在个人笔记库的时间是2023-12-13,公布到互联网上的时间是2024-04-09。其中,command是需要处理输入参数的命令,可以是任何合法的命令。原创 2024-04-09 08:36:58 · 513 阅读 · 1 评论 -
C/C++笔记-make编译时需要注意的问题(编译可执行程序时链接的so出现未定义的引用)
一般开源的so兼容性相当好,基本上不会出现上面的问题,自定义的so很有可能会出现。所以解决办法,还得去看makefile文件,和报错的地方,多少个参数,并且是在哪个地方定义的.原创 2024-03-25 08:44:25 · 522 阅读 · 0 评论 -
Oracle笔记-查看表已使用空间&最大空间
在 Oracle 18c 数据库中,USER_SEGMENTS 是一个系统表,用于存储当前用户(当前会话)拥有的所有段的信息。段是 Oracle 中分配存储空间的逻辑单位,用于存储表、索引、分区、簇等对象的数据。通过查询 USER_SEGMENTS 表,你可以获取当前用户所有段的信息,如表名、大小、扩展信息等。目前以Oracle18c为例,主要是查这个表USER_SEGMENTS。这将返回当前用户拥有的所有表和索引的名称、类型、大小和占用的块数。比如查表目前的空间大小和大小。查看他的spaceName。原创 2024-01-02 08:44:58 · 1582 阅读 · 0 评论 -
Linux笔记-对/dev/vda1和/dev/vda2的理解
首先是这张图:对于:/dev/vda1和/dev/vda2可以知道,这个机器是在虚拟机上的,从设备描述中可以看到,与IO有关。原创 2023-11-06 08:54:51 · 6814 阅读 · 0 评论 -
DM工作笔记-DATEADD(指定日期添加n个时间段)函数和其他时间函数
这里先介绍这样的一个函数,因为上面的CREATE_TIME是TIMESTAMP类型。所以这里要用NOW(),用来获取当前时间戳。如果再有这样的一个需求,离现在(当前时刻)2小时外的数据是过期数据,把这些过期数据拧出来。现在有个需求,让CREATE_TIME添加,2秒,2分钟,2小时,2年。达梦官方文档已经说得很清楚了,在此仅记录下笔记,方便以后进行查阅。这里说明下CREATE_TIME是TIMESTAMP类型。TIMESTAMPDIFF用于返回时间间隔。原创 2023-10-16 08:42:14 · 4279 阅读 · 0 评论 -
Java笔记-将Map转指定Class
这里有个要求,就是Map中的key要和Class中的成员名一样,并且Object中数据类型也要一样。应为其实就是用反射去赋值。原创 2023-09-25 08:36:05 · 2862 阅读 · 1 评论 -
Qt笔记-自定义QSet,QHash的Key
②qHash(const QString &, uint):生成hash的,同样要传入唯一标识的,上面的例子是用name生成的hash再和出生时间异或。①operator==:这里要注意,判断2个自定义对象是否相等,如果有唯一标识字段,比如主键,就可以直接用那个,如果没有,就在结构体中想想,拿些字段组合可以唯一标识这个结构体;构造2个内联函数,方便QHash去对比一个是operator == ,一个是qHash(const QString &, uint);在此我直接总结下,方便查阅。原创 2023-06-26 08:44:08 · 3326 阅读 · 0 评论 -
Linux笔记-so.1和so的区别(三方程序链接Qt的so.1和so)
如果是这样的,那么需要把这些都拷贝到对应的lib目录下,其他程序调用的时候一般不会直接链接到libXXXLib.so,会链接到so.版本号的程序所以有时就会出现error while loading shared libraries .... not found。领导让你从中扣出某个功能,再进行一些业务操作,变成新的程序,而要扣的某些功能,有的用了公司其他人开发的so。②使用ldd,查看程序链接到哪些dll,在国内,写的so一般都没有版本号,没有链到版本号的so要特别注意;最后屁股能坐得住椅子,慢慢测。原创 2023-06-05 20:46:13 · 5101 阅读 · 0 评论 -
Qt笔记-pro文件新增宏、if、else、编译后的shell命令(写so或dll时提高开发效率)
背景是这样的,目标是要写个dll,so,这种动态链接库,但如果直接写这玩意的话,调试起来很麻烦,需要用其他程序去加载他,特别是在linux上,没界面的那种,开发效率简直慢了不知道多少。从中LIBXXX_LIBRARY是在pro文件中定义的,当有时就加载libXXX_global.h,没有就说明是exe,就。②代码中通过pro中定义的宏,对Q_DECL_EXPORT和Q_DECL_IMPORT进行设置,设置到要导出的类上。最后来看下关键的类,也就是导出的类,提供给三方用的。③#:pro文件中“#”代表注释;原创 2023-05-31 18:02:50 · 4289 阅读 · 0 评论 -
C/C++笔记-记录一次对qmake生成的Makefile的分析(2023-02-07)
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;②用于运行时指定所有引用库的位置,作用同修改环境变量(LD_LIBRARY_PATH),并且库路径引用优先级高于LD_LIBRARY_PATH;-fPIC:用于生成位置无关的代码(Position-Independent-Code);-DQT_CORE_LIB:这个没查到,但看名称差不多能猜到是QT核心库的调试;-D_REENTRANT:它会对部分函数重新定义它们的可安全重入的版本;-L:Link链接路径;原创 2023-04-10 21:47:19 · 2396 阅读 · 0 评论 -
Linux笔记-使用grep检索指定字符串
如果这里面有很多文件夹,还需要检索子文件夹中的字符串带个-r就可以了。以前都是用find和grep这种组合命令去检索。这种更加灵活点,但是有时用grep就够了。-i:不区分大小写;原创 2023-03-30 09:05:07 · 2903 阅读 · 0 评论 -
Qt笔记-pro文件中添加-fpermissive
在Makefile里面写比较方便。老项目里面的库,一包含就报-fpermissive错误。我在Linux上成功了。原创 2023-03-13 09:18:43 · 2723 阅读 · 0 评论 -
Qt笔记-pro文件配置include和lib及遍历文件夹及文件排序
pro文件里面也可以定义变量,比如DPI_INCLUDE和DPI_LIB,调用的时候用$${DPI_INCLUDE}和$${DPI_INCLUDE}就可以了。有QDir::Time、QDir::Size、QDir::Type这些比较常用。QDir::SortFlag::Name,就是按照文件名排序。首先是pro文件配置include和lib。连接include用INCLUDEPATH。LIBS为链接的动态和静态文件。原创 2022-11-28 15:33:51 · 2830 阅读 · 1 评论 -
Qt笔记-解决QTcpSocket发送数据成功,但接收端接收不全的问题
这里主要是这样的Qt写了一个服务端,在开发环境下,没出现任何问题,但在生产环境下,就出现问题了。使用Fiddler的简单抓了下包:发现Body只有27045,而请求里面确是这样的。这里就很有意思了。这里的Qt服务端,在发送完数据后,会主动和客户端断开连接。不像其他的web服务器,需要等客户端来断开连接。这里用curl请求会有报错: 大体上的意思就还有这么多位的数据没读,通道就被关闭了。在Qt服务端关于关闭的代码是这样的: 并且这个tcpSocket->write的返回值,也是正确的,说明的确把要原创 2022-07-14 09:00:07 · 4743 阅读 · 0 评论 -
Qt笔记-使用QString和QByteArray使得字符串正常显示和十六进制显示
如下代码:#include "JSH16Analysis.h"JSH16Analysis::JSH16Analysis(){}QString JSH16Analysis::Utf8ToHex16(const QString &utf8){ QByteArray byteArray; QString ret(byteArray.append(utf8).toHex()); return ret;}QString JSH16Analysis::Hex1原创 2022-05-30 08:48:34 · 1157 阅读 · 0 评论 -
电力笔记-30个行业专业词汇(Ⅱ期)
注:以下的所有概念解释均来自于互联网。1. 潮流计算:在给定电力系统网络拓扑、元件参数、发电、负荷参量条件下,计算有功功率、无功功率、电压在电力网中的分布。是根据给定的电网结构、参数、发电机、负荷等元件的运行条件,确定电力系统各部分稳态运行状态参数的计算。2. 裕度:相位余裕,主要用来衡量负反馈系统的稳定性,并能用来预测闭环系统阶跃响应的过冲,也就是留有余地的幅度。3. 负荷基线(基线负荷):按照时间点组成的负荷线,这个基线可以这样计算。选取最近5个经拟合后的不参与需求响应和有序用电原创 2022-03-26 09:42:53 · 2791 阅读 · 0 评论 -
MySQL笔记-group by和聚合函数的使用
group by:其实就是分组,把同类的组,数据放到一起,然后用聚合函数去统计。下面是详细的说明。对应的SQL如下:SELECT * FROM fund_earning_2022 ORDER BY create_time DESC如下数据内容:这里用2个域来测试下:SELECT create_time, day_growth FROM fund_earning_2022 ORDER BY create_time DESC如果用这样的SQL语句:SELECT cr原创 2022-03-21 08:53:59 · 2926 阅读 · 4 评论 -
电力笔记-30个行业专业词汇(Ⅰ期)
注:以下的所有概念解释均来自于互联网。1. 协调控制:当单元机组的负荷指令发生变化时,协调地调整锅炉和汽轮机的负荷指令,使机组的实发功率尽快跟踪负荷指令的变化,同时保证机组的稳定性。2. 发电机组:能将机械能或其他可再生能源转变成电能的发电设备。发电机组通常包含汽轮机、水轮、内燃机(汽油机、采油机),目前核能、风能、太阳能、生物质能、海洋能都算。3. 负荷:就是承受力,指负荷主体所能承受的程度。电力负荷意思是在一定的电力供应条件下,他能承受最多用电主体的数量。4. 负荷侧:电原创 2022-03-21 08:51:41 · 4496 阅读 · 1 评论 -
Qt笔记-AES加密
Qt5.5.1好像没有,用了三方老外大神的。https://github.com/bricke/Qt-AES下载下来后,将对应的源码拷贝到项目中就可以了。这里提供个事例代码:#include <QCoreApplication>#include <QCryptographicHash>#include <QVector>#include <QDebug>#include "QAesEncryption.h"int main(i原创 2021-12-14 13:44:20 · 5979 阅读 · 8 评论 -
Qt笔记-Linux程序控制台启动界面实例
最近在做Linux的C++程序,用的是Qt控制台程序,突然间有了想法,为什么不做成向Redis启动那样的,B格也高点,就像这样的。在此写了个实例,如下运行截图:程序结构如下;源码如下:Banner.h#ifndef BANNER_H#define BANNER_Hclass Banner{public: Banner(); void printBar();};#endif // BANNER_HColorPrint.h#if...原创 2021-12-07 08:50:29 · 1611 阅读 · 1 评论 -
Qt笔记-Linux程序打印带颜色的字符串
这是脚本之家给出的一个例子:#!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m"原创 2021-12-07 08:47:18 · 607 阅读 · 0 评论 -
Qt笔记-waitForBytesWritten需要注意的地方
在Qt里面,IO控制中(文件流、Socket)都会涉及到waitForBytesWritten,这个的意思是等待写完成,这个在Windows上一般是可以省的,不会出现问题,如下:tcpSocket.write(HttpResponse::success(retBody).toUtf8());tcpSocket.disconnectFromHost();tcpSocket.waitForDisconnected();在Linux上需要这样:tcpSocket.waitForBytesWri原创 2021-12-07 08:45:51 · 7320 阅读 · 0 评论 -
Qt笔记-解决QObject::startTimer: Timers cannot be started from another thread
原因是QTime或QTImeLine这类,多线程中创建和调用要在一个线程中。因为构造函数在main线程中创建的,run是子线程中,所有,这部分代码的new要在run中去new就可以了。原创 2021-12-07 08:44:35 · 3334 阅读 · 2 评论 -
C++笔记-函数参数使用void *的野路子
这里记录一个野路子,是在开发过程中,自己无意识想到的,也对这种操作到底是正路子还是野路子搞不清楚。在此记录下,方便以后查阅。情况是这样的,有个函数,写到一半突然发现可以用递归调用(改迭代也是可以的,但递归调用思想简单,就不再想迭代了),因为已经写好的代码,都是在栈区创建的。为了方便在类的protect方法添加一个递归函数,以前的变成启动函数。如下图:public下的toJson()就是启动函数,protected里面的toJson就是递归主体。在递归主体里面,直接转就可以了。原创 2021-12-07 08:42:38 · 1516 阅读 · 1 评论 -
Qt笔记-QCryptographicHash摘要算法调用(MD5,SHA等)
Qt封装了下面的摘要算法,调用起来杠杠的。从上面的表中可以得知,估计以后Keccak要变成主流的摘要算法了。这个类提供了个静态函数,直接调用就可以了。代码如下;#include <QCoreApplication>#include <QCryptographicHash>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, ..原创 2021-11-30 08:34:27 · 644 阅读 · 0 评论 -
Qt笔记-Q_UNUSED解决编译器unused paramenter告警
最近写代码越来越有洁癖了,一点点告警,就要去改他,不像以前,只要不报错,就可以跑。以前用的Q_UNUSED这个现在又拿出来用了,但这次比较好奇,为什么用这个注解就能消除呢?查了下文档。大体上的意思就是抑制编译器的告警,但具体是怎么消除的,没说,点到Q_UNUSED看下这个宏的定义。原理就是随意调用了下变量。这个就有点意思了。...原创 2021-11-23 08:50:41 · 842 阅读 · 0 评论 -
Qt笔记-解决QSocketNotifier: Multiple socket notifiers for same socket xxx and type Read问题
Qt中的socket有个descriptor的概念,这个descriptor就代表socket。报这个错误是因为,你程序里面2个socket都绑了同一个descriptor。所以出现了问题。我的遇到的是这样的。①void QSSLServer::incomingConnection(qintptr socketDescriptor){ QSslSocket *sslSocket = new QSslSocket(this); ...... ......原创 2021-10-12 08:46:01 · 2235 阅读 · 0 评论 -
Postman|Qt笔记-解决Could not get any response
这里Fiddler抓包是有显示的:但Postman却提示Could not get any response经过各种分析,发现问题出现在服务端主要的原因就是Content-Length这个值,这里的已经告诉客户端是utf-8编码的,但里面含有中文,对应的数据Content-Length与body里面的长度不一致。服务端是这样计算长度的:class HttpResponse {public: static QString success(const QS...原创 2021-10-05 20:36:44 · 621 阅读 · 0 评论 -
Java笔记-Semaphore简单应用实例
这个Semaphore和QSemaphore使用和原理一模一样。这里简单写了个例子,开了10个线程去拿邻界资源,资源只有一个,拿到后要进行5s的业务错了,使用Semaphore,如果此资源被占用,那么该线程将会被挂起。程序运行截图如下:D:\java8\content\bin\java.exe -javaagent:D:\idea\content\lib\idea_rt.jar=52182:D:\idea\content\bin -Dfile.encoding=UTF-8 -class原创 2021-09-21 21:03:20 · 494 阅读 · 0 评论 -
Java笔记-Linux环境中因编码问题导致中文String解析有问题
背景:各个现场搭建的Linux的环境不相同,遇到了莫名其妙的问题,发现带有中文的字符串解析有问题。通过测试,发现是编码问题,在此记录下。指定为utf-8编码运行此jar包:java -Dfile.encoding=utf8 -jar xxxx.jar...原创 2021-07-27 08:48:37 · 346 阅读 · 0 评论 -
Linux笔记-inode基本概念
背景:今天去起某个服务器的Rabbitmq,提示could_not_write_file,问了相关人员也不知道咋解决。学习了下Linux文件系统,发现里面有个inode概念,df -h发现磁盘都是空的,df -ih发现rabbitmq的挂载的节点满了。因此发现了问题,就删了2-3个空文件夹。Rabbitmq跑起来(生产环境,不敢多删,明天和运维的人确认一些文件,再删多点)下面记录下学习笔记:inode存储文件元数据信息。比如类型(是文件还是目录)、权限、拥有者、时间信息、链接数(软链接)原创 2021-07-27 08:47:33 · 614 阅读 · 0 评论 -
SQL笔记-Oracle中varchar和varchar2的区别
在建表中发现一个varchar和varchar2,以前不注意,今天来查了下,这2个的区别。Oracle和DM都存在这个东西:这里我操作空字符串,Navicat都会转成null(不管是varchar还是varchar2),在此不测试了。他们的区别就是:varchar区分NULL和空;varchar2不区分,如果在项目中empty和null表示一个意思,就用varchar2...原创 2021-07-13 12:35:34 · 2041 阅读 · 0 评论 -
Qt笔记-QSslSocket双向认证
生成证书逻辑是这样的:逻辑是这样的:如果要将其导出成client_trust.jks文件,对应的客户端命令为:@echo onkeytool -genkeypair -keyalg RSA -dname "CN=localhost" -alias client -keystore client.jks -keypass cccccc -storepass cccccckeytool -exportcert -file client.cer -alias client -keystor原创 2021-07-06 07:36:52 · 1907 阅读 · 2 评论 -
SQL笔记-检索出ID为Int或Long中不连续的第一个点
命令如下:select MY_ID+1 from TableName where MY_ID+1 not in(select MY_ID from TableName) and MAP_ID+1<>(select max(MY_ID)+1 from TableName) limit 1解析下:原创 2021-06-08 08:53:11 · 524 阅读 · 0 评论 -
IDEA中报错“cannot resolve symbol XXX”,但编译正确可以运行
File -> Invalidate Caches / Restart随后:原创 2021-06-01 08:34:37 · 807 阅读 · 0 评论