自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kestiny的专栏

抬头望天,脚踏实地

  • 博客(66)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 索引不是银弹

数据库索引不是性能优化的万能良药,使用不好还会导致性能更差的情况发生!

2024-01-13 07:18:40 911

原创 MySQL索引 Error1071

MySql索引的常见错误:Error 1071:Specified key was too long,他的解法您知道多少种呢?

2023-11-25 22:28:50 1598

原创 使用QPlainTextEdit完成一个代码编辑器

用QPlainTextEdit、CommentHighlighter、QCompleter组合实现一个完备的代码编辑器,包括功能:文本编辑、显示行号、高亮编辑去、代码自动补全等。

2022-09-22 20:30:00 1572 1

原创 前端跨域的原则

前端跨域的原则与避免途径1.跨域  跨域资源共享(Cross-Origin Resource Sharing, CORS)是为解决 Ajax 技术难实现跨域问题而提出的一个规范,这个规范试着从根本上解决安全的跨域资源共享问题。2.option请求  option请求是一种探测性的请求,通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要的措施。3.跨域解决方案  若要允许跨域,传统的解决方案是服务器端设置 Access-Control-Allow-Origin: *,但是这是

2020-07-16 22:40:51 378

原创 04-MyBatis缓存

MyBatis的缓存缓存介绍为什么使用缓存  在数据库使用的过程中,有一些数据的查询频次远大于修改,甚至是不会进行修改的,如果将用户的这部分数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。因此,缓存是非常有必要的,但是也要注意,对于使用频次不高,或者经常修改的数据进行缓存也会加大系统开销。MyBatis缓存  MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。MyBatis默认

2020-07-16 22:40:22 185

原创 03-哈希表

哈希表什么是哈希表  哈希表(Hash table,也叫散列表),是根据关键码值(Key)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。  给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。什么是哈希冲突(collision)  在创建哈希表的过程中,若给定两个不

2020-07-14 21:50:27 176

原创 03-MyBatis动态SQL

MyBatis动态SQLMyBatis的动态SQL比较多,但是常用的也就几个,包括if,where,set,choose.ifif语句是条件判断,例如判断type不为空,则增加type语句<if test="type != null">type=#{type}</if>where在查询语句中,我们经常需要根据给定的不同数据类型,查询不同的语句,动态where此时正当用。<select id="select" resultType="person">

2020-07-04 19:51:56 202

原创 02-MyBatis基本使用

MyBatis基本使用MyBatis是一个半自动化的ORM(对象关系映射)框架,她的核心就在于Sql语句和对象的关系映射上面。总的来说,MyBatis的对象关系映射主要有两种方式:xml配置文件和注解方式。xml配置文件方式1.namespace命名空间MyBatis的映射文件内容都包含在一个namespace中,这个namespace中的名称必须和Mapper接口名称一致,并且还包括完整的包名。比如:package com.kestiny.mybatis.mapper;public inte

2020-07-04 19:51:16 163

原创 01-MyBatis环境配置

MyBatis环境配置MyBatis是一款优秀的持久层框架,她是半自动的化的ORM(Object Relationship Mapping)框架。1.准备工具jdk 13.0.2maven 3.6.3MyBatis 3.5.4junit 4.13logback 1.2.3MySQL-connector-java 8.0.20slf4j 1.7.252.创建一个空的maven项目可以使用IDE创建,比如IDEA或者Eclipse之类的;也可以使用命令行创建mvn arche

2020-07-04 19:41:21 217

原创 Python爬虫---爬取数据(上)

又是女票,拿了3万多条的13年某地区的公司信息,但是三年过去了,工商局的注册信息发生了巨大变化,有的注册资本增加了,有的公司老板变多了,更有不少公司不存在了,因此,需要一份最新的信息以便于她进行使用。 原先是想用工商局网站上进行爬取的,但是发现工商局网站好多验证信息,毕竟我这Python初学咋练的,是在是怕怕啊!幸好,找到一个名为天眼查的网站,这个网站没有验证,可以直接查询,因此就拿这个网站

2020-07-03 22:25:09 38116 23

原创 数据结构与算法学习-02栈与队列

栈与队列  栈与队列,在数据结构中也属于线性表。栈(Stack)栈的实现逻辑  栈是一种特殊的表,其特殊在于插入与删除操作只能在末端(也就是栈顶)进行,因此栈是**后进先出(LIFO)**的线性表。栈的操作也就包含了出栈(Pop),入栈(Push)和获取栈顶元素(Top)。栈的实现方式有两种,一种是数组形式的栈(如下图),另外一种是链表形式的栈。栈的时间复杂度操作时间复杂度访问O(n)搜索O(n)插入O(1)删除O(1)队列(Queue)

2020-07-03 22:08:25 160

原创 数据结构与算法学习-01数组与链表

数组与链表  数组与链表,在数据结构中都属于线性表。所谓线性表,是指所有元素都排列在一个维度上;对其中的任意一个元素来说,除了头和尾,都有且只有一个前驱元素和一个后继元素。数组数组的实现逻辑储存:数组储存在连续的内存中。访问:因为数组存储的内存连续,因此支持随机访问。所谓随机访问,也就是直接下标操作。增加:因为数组内存的连续性,因此若要增加元素,为保持数组的线性,必须把此元素之后的所有元素依次后移。删除:删除同理增加元素,必须把元素依次前移,以保证数组的线性和完整性。数组的时间复杂度

2020-07-03 22:04:03 491

原创 Python tkinter和exe打包

接上篇。   爬虫程序的核心,爬虫天眼查的公司信息类TianYanCha已经完成了,并且验证可以工作,但是给不是专业方面的人用的话,还要安装Python解释器,还没有界面是挺麻烦的,于是就想写一个简单的界面,然后打包成可执行程序给女票用。tkinter界面  由于我的界面要求很简单,只是输入两个文件路径,一个实时输出信息的文本框,于是没有选择其他的Python界面扩展,只是选择Python的事实界

2020-02-04 16:09:25 15307 25

原创 [笔记]移动语义和完美转发

移动语义和完美转发std::move、std::forwardstd::move是执行转换的函数模板。std::move无条件的将它的参数转换成一个右值。std::move本身不move任何东西,也不产生可执行代码。std::forward是执行转换的函数模板。std::forward当参数被绑定为右值时才将它的参数转换成一个右值。std::forward不转发任何东西,也不产生可执行代码。...

2019-07-25 22:43:48 420

原创 [笔记]右值引用

右值引用左值和右值C++中,左值指的是表达式结束后仍然存在的持久化对象,右值是表达式结束后就不在存在的临时对象。所有的具名变量都是左值,而右值不具名。简单区分左值和右值:左值能够取到地址,而右值不能。int i = 0; // i是左值,0是右值class Widget;W getWidget(){ return Widget();}Widget w = ge...

2019-07-25 22:43:15 156

原创 [笔记]Lambda 表达式

Lambda 表达式Lambda表达式是C++中的语法糖。形式一般Lambda表达式形如:[capture](parameters)->return-type{body}如果没有参数,空的()可以省略。返回值也可以省略。举例:std::sort(x, y, [](float a, float b){return std::abs(a) < std::abs(b);});...

2019-07-22 20:53:24 310

原创 [笔记]2.智能指针

文章目录智能指针std::unique_ptrstd::shared_ptrstd::weak_ptr智能指针原生指针是一款很强大的工具,但是依据进数十年的经验,可以确定的一点是:稍有不慎,这 个工具就会反噬它的使用者。C++11标准中规定了四个智能指针:std::auto_ptr,std::unique_ptr,std::shared_ptr,std::weak_ptr.他们都是用来辅助...

2019-07-16 08:21:36 157

原创 [笔记]转向Modern C++

转向Modern C++优先使用auto推导类型而非显示类型声明auto变量需要在声明时进行初始化 int x1; // 未初始化的int变量,值的不确定的,可能为0,也可能是别的值 auto x2; // 错误,需要初始化 auto x3 = 0; // 完美auto使变量的声明变得简单,甚至仅仅被编译器知道的类型 aut...

2019-07-14 22:14:15 198

原创 [笔记]Modern CMake 3:基本介绍

Modern CMake 3:基本介绍组织项目结构CMake没有统一的项目结构,一些常用原则可以帮助我们组织更好的项目结构:项目内部能够十分方便的读取其他工程;避免项目结构冲突;并行构建.一个典型的例子(仅做参考),假设你的项目叫做project,你的库名为lib,可执行程序名为app:- project - .gitignore - README.md - LICE...

2019-06-08 21:02:15 796

原创 [笔记]Modern CMake 2:基本介绍

Modern CMake 2:基本介绍最低版本CMakeLists.txt的第一行通常都是:cmake_minimum_required(VERSION 3.1)请注意,cmake_minimun_required是不区分大小写的,但根据Modern CMake 1:Modern CMake简介中的正确模式所言,函数名需要使用小写。在CMake3.12中,对最低版本的要求可以是一个区间,...

2019-06-07 20:53:12 756

原创 [笔记]Modern CMake 1:Modern CMake简介

Modern CMake 1:Modern CMake简介运行CMake工程的流程标准选项能做的和不能做的CMake反模式CMake正确模式学习Modern CMake的总结和记录。什么是Modern CMake?指的是CMake3.1+,甚至是CMake3.14+!她是整洁,强大,优雅的,你可以花更多的精力在编码上。CMake3.11+的版本速度上有显著的提升。运行CMake工程的流程...

2019-06-02 11:53:31 1970

原创 [笔记]机器学习之Logistic回归

Logistic回归是一种广义的线性回归,他是一种分类分析方法。Logistic大概也是最常用的分类方法之一。sigmod函数  Logistic中因变量为二分类变量,某个概率作为方程的因变量估计值取值范围为0或者1,因此我们需要一个具有此性质的函数,于是,sigmod函数就进入了我们的视野。   sigmod函数的原型为:   当x=0时,sigmod函数的值为0.5;随...

2018-05-04 18:21:40 400 1

原创 [笔记]机器学习之线性回归、L1回归、L2回归

  线性回归是机器学习领域里研究最多的算法,至今已有200年研究历史了。线性回归  线性回归可用一条线表示输入值X和输出值Y之间的关系,这条线的斜率的值,也叫系数。最简单的线性回归可表示为y=ax+b。机器学习的目的就是给定数据样本(x,y),利用学习得到a,b。得到a和b后,就可以给定已知的x求出未知的y,这就是机器学习的目的和意思。   进而我们可以推广到多个变量的情况,求得对于...

2018-04-26 20:01:56 7560 2

原创 机器学习之:K-近邻算法

k-近邻算法(简称kNN)是易于理解和实现的算法,也是非常容易掌握的一种机器学习算法。本文是学习Machine Learning in Action一书的成果,在此向著作此书的Peter Harrington 致敬。01 什么是kNN  简单说,kNN算法采用计算不同特征值之间的距离进行分类的算法。kNN算法的模型就是整个训练数据集。当需要对一个未知数据实例进行预测时,kNN算法...

2018-04-21 11:02:49 361

原创 使用Java操作Hadoop API

Hadoop的环境一旦搭建完成,我们就可以进行Hadoop应用开发了,可以进行Hadoop开发的程序语言有多种选择,比如JAVA,python,ruby等等。这里我们选择JAVA语言进行开发(语言无所谓好坏,看你擅长什么喜欢什么了)。因为我选择了JAVA语言,也就选择了eclipse开发工具,这里我用的是eclipse-java-oxygen-R-win32-x86_64,当然,Hadoo

2017-08-08 18:22:37 2724 1

原创 Windows下安装Hadoop(免cygwin)

Hadoop的使用一般都在linux下,但是开发和测试其实是可以在Windows系统上进行的,然而一般的安装方式都是使用cygwin模拟linux系统进行,然后其实已经有大牛解决了这个问题,就是编译出Hadoop在Windows上缺少的库,这样就直接可以不用cygiwn模拟linux了。准备材料1、jdk-8u144-windows-x642、hadoop-2.7.1.tar.gz3、hado

2017-08-08 17:59:20 1089

原创 PyQt5使用QPdfWriter方式写pdf文档

在我之前的一篇博客 Qt5使用QPdfWriter方式写pdf文档 中,详细了讲述了Qt5中使用QPdfWrite而不是使用QPrinter进行pdf文件输出的功能,这里补充一篇只是此功能移植到Python下的使用而已。 直接上代码:from PyQt5.QtCore import (QIODevice, QFile, Qt, QMarginsF, QRect)from PyQt5.QtGui

2017-05-21 11:36:07 6272

原创 PyQt5使用Designer设计UI的两种实现方式

在上一篇博客Python界面库-PyQt5初探中留了一个坑,那就是如何利用Qt的Designer设计出的UI文件。本篇博客就来研究这个问题。请注意:这里只是讲如何使用Ui文件,而不会讲如何设计Ui文件,如何需要学习如何设计Ui的话,请移步到Qt5 GUI编程之类的话题去。一、Qt的方式    使用过Qt,尤其是在visual studio中使用过Qt的应该知道,在编码的过程中Qt会对一些特殊文件进行

2017-05-21 11:21:58 55587 11

原创 Python界面库-PyQt5初探

也许因为本人经常 项目的问题,用到一个新的语言,不能写界面有种莫名的心慌,于是打算研究下Python的UI库。 首先是看了Python的事实上的标准UI库-tkinter,说实话,太丑了太难用了(个人感觉哈,原因后面说)。然后网上了解了情况,发现有PyGTK、wxPython、PyQt等等一大堆的库,各有各的好,各有各 的优势。等等,我看到了什么,PyQt?没错,真的是Qt的Python实现。看过

2017-05-21 08:57:24 31821 3

原创 Qt5使用QPdfWriter方式写pdf文档

今日,项目中要使用保存pdf文件的功能,于是打算使用Qt完成此功能。 网上搜索了发下,网上大部分前辈使用QPrinter即打印机的方式答应pdf。 这种方式,在qt4成为唯一的选择,然而身为qt5的版本,qt提供了一个独立的pdf文件写入方式, 那就是QPdfWriter。QPdfWriter写pdf的方式,网上很少东西,因此只能去研究文档,自己写了,以下是研究后使用的方案,写出来共大家参考一

2017-05-18 22:27:28 12398 9

原创 Python编辑器sublime text3环境配置

最近在玩Python,以此记录学历的一些东西,也算是激励自己吧。Python安装Python的截止目前最新版本是3.6.1,这里直接就安装最新版本了。 安装过程如下:这里我去除了不想用的部分,各位看官可以根据自己的需求进行选择 下一步:这里一定要勾选上Add Python to environmentvariable,意思是把Python加入到系统的环境遍历里,这样我们就可以直接在编辑器中访问了

2017-05-17 22:59:05 11052 2

原创 Doxgen文档注释:C++

Doxgen的使用包括两个方面,一个是代码的注释规则,另外一个是利用doxgen生成相应的HTML和chm文件。注释规则文件注释 /*! * @file core.h * @brief 核心类core * @author author * @date 2016-11-12

2016-11-12 13:39:38 2321

原创 Python初接触:SQLite和Excel操作

昨日,女票拿了一个Excel文档,里面有上万条数据要进行分析,刚开始一个字段分析,Excel用的不错,还能搞定,到后来两个字段的分析,还有区间比如年龄段的数据分析,实在是心疼她那么的辛苦,于是就想给她程序处理之。当然,我是一直C++和Qt的,当时就想直接Qt+sqlite3写入数据库,然后就各种数据查询就行了,可做起来却发现,她机器上没有Qt环境,没有C++编译器,得,如果配置环境也得几个小时了,可

2016-09-29 15:35:09 4619 1

原创 Qt Drag and Drop

Qt的Darg和Drop的不同的两部分,并且之间可以传递数据信息,是相当的好用的。一下分别讲述。DragDrag的部分,其实很简单,需要重新实现mousePressedEvent方法,数据的放在QMimeData方法中,而Drag事件只是一个简单的QDrag方法,具体实现如下:void XXXX::mousePressEvent(QMouseEvent* event){ QListWidg

2016-06-21 11:30:38 1548

原创 64位程序获取CPUID,不使用汇编指令

最近项目中想使用CPU,硬盘,网卡的ID进行加密授权验证,但是CPU的序列号获取网上都是一些使用内嵌汇编的方式,然后我的是64位程序,微软不支持内嵌汇编指令,只好研究替代方式了。进过查找,发现微软推出了__cpuid和__cpuidex函数替代了汇编指令,于是打算使用。 在网上找到有使用__cpuid获取厂商,family,CPU名称的代码,直接拿来使用了(^~^)。对于获取CPU的ID,网上一直

2016-04-22 12:02:16 9015 3

原创 vs2008编译Qt4.8.6-OpenGL 64位版

最近工作中需要用Qt4.8.6的OpenGL的64位版本,网上没有找到相关东西,只好自己编译了。过程如下: 1. 在Qt官网下载对应版本的Qt源代码,比如我需要4.8.6,就下载4.8.6的源代码。官网地址:https://www.qt.io/download/。 2. 解压下载的安装包,注意qt源代码放的路径不能在中文下,不能包含空格,最好放在盘符的根目录下,比如D:/Qt。 3. 在vs2

2016-04-15 11:23:15 2726

原创 Qt调用webserver完成登录操作

最近工作中需要使用webserver的方式进行登录界面的验证,之前写过一个用winsocket2的,好麻烦,这次决定使用qt了,研究了下,果然简单很多啊。整体而言,需要关注的类有两个:QNetworkAccessManager和QNetworkReply。话不多说,上代码。头文件如下,部分有注释:#ifndef HTTPOPERATOR_H#define HTTPOPERATOR_H#incl

2016-04-06 15:34:36 4743 2

原创 Windows下ffmpeg录制视频命令

目前需要一个视频录制的功能,本来想用ffmpeg进行编码的,结果研究了下,发现如果完成得花不少时间,但是项目比较急,所以,只好使用命令行了,先行记录下录制屏幕的命令,后续有时间进行编码研究。 我的需求是录制整个屏幕,故而,需要命令如下: ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1600x900 -i...

2016-03-28 09:47:03 10768 9

原创 CLion+Qt5环境配置

Qt本身使用qmake进行编译的,但是CLion使用cmake进行组织管理,因此,在CLion中使用Qt需要一些特殊的cmake设置。新建工程打开CLion,新建project,工程名称为Widget修改cmakelist文件新建的工程,自动包含一个cmakelist.txt和main.cpp文件。要使工程可以使用Qt5的UI和信号槽机制,则需要分别包含UIC功能和MOC。...

2015-11-17 10:38:24 24433 3

原创 CLion显示行号,字体颜色设置

最近迷上CLion编辑器,对于一些习惯性设置,由于第一次使用,所以记录之以作分享。显示行号File-&gt;Settings-&gt;Editor-&gt;General-&gt;Appearance右侧,Show line numbers更改字体颜色字体File-&gt;Settings-&gt;Editor-&gt;Colors &amp; Fonts-&gt;...

2015-11-14 20:59:49 49685

C语言18个经典问题答录

在C 语言中, 类型转换意味着“把这些二进制位看作另一种类型, 并作相应的对待”; 这是一个转换操作符, 根据定义它只能生成一个右值(rvalue)。而右值既不能赋值, 也不能用++ 自增。

2011-02-21

java基础教程TXT版本

这本书也从另一个角度也给了我深刻的启迪。我刚开始的时候以为Java“只是另一种程序设计语言”。这个想法在许多情况下都是成立的。但随着时间的推移,我对它的学习也愈加深入,开始意识到它的基本宗旨与我见过的其他所有语言都有所区别。

2010-07-27

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

TA关注的人

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