自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (5)
  • 收藏
  • 关注

原创 (二)C++类的内存大小计算

计算一个类对象的大小规律: 1、空类、单一继承的空类、多重继承的空类所占空间大小为:1(字节,用于标记对象地址); 2、一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的; 3、因此一个对象的大小≥所有非静态成员大小的总和(包括动态分配的变量...); 4、当类中声明了虚函数(不管是1个还是多个),那么在实例化对象时...

2020-03-05 19:16:54 1627

转载 (一)C++中虚函数的作用和虚函数的工作原理

1 C++中虚函数的作用和多态虚函数:实现类的多态性关键字:虚函数;虚函数的作用;多态性;多态公有继承;动态联编C++中的虚函数的作用主要是实现了多态的机制。基类定义虚函数,子类可以重写该函数;在派生类中对基类定义的虚函数进行重写时,需要在派生类中声明该方法为虚方法。当子类重新定义了父类的虚函数后,当父类的指针指向子类对象的地址时,[即B b; A a = &b;] 父类...

2020-03-05 13:52:58 547

原创 C++线程池实现

#ifndef __THREAD_POOL_#define __THREAD_POOL_#include<atomic>#include<vector>#include<thread>#include<list>#include<memory>#include<mutex>#include<string>#include<iostream>#include<queue>usin

2021-06-11 17:45:35 416

原创 mysql for visual studio 1.2.9无法卸载

卸载mysql的组件 mysql for visual studio 1.2.9组件时,提示“账号已存在”?解决:这是MySQL的一个bug。https://dev.mysql.com/downloads/file/?id=470092官网安装MySQL For Visual studio 2.0.5,然后卸载MySQL For Visual studio 2.0.5。卸载干净了。...

2021-01-06 17:15:16 930

原创 java03_线程同步(volatile、 synchronized)

1、volatile概念:轻量级锁。使用场景:多个线程同时对未加volatile 的变量读写,会导致数据不准确。使用:volatile boolean status = false;volatile特性: 保证共享变量对所有线程的可见性(只对原子操作有效,针对复合操作无效(比如:num++))。 1)当写一个volatile变量时,JMM会把该线程对应的本地内存中的变量强制刷新到主内存中去; 2)这个写会操作会导致其他线程中的缓存无效。 禁止指令重排序优化 .

2020-12-29 21:42:46 183

原创 java01_创建线程3种方式

1. 继承Thread,并重写run方法。2. 继承Tunable,并重写run方法,通过thread实例执行3. 继承Callable<V>, 结合FutureTask<V> 注意:ft.get()会一直阻塞调用线程import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTa...

2020-12-29 21:11:09 150

原创 java05_线程池

一、线程池参考:https://www.cnblogs.com/zincredible/p/10984459.html分类:Java通过Executors提供四种线程池:newSingleThreadExecutor :创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。newFixedThreadPool :创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadP.

2020-12-29 18:33:14 135

原创 java04_线程同步(ReentrantLock 、 读写锁)

5、ReentrantReadWriteLock 读写锁概念:读和读互不影响(共享模式),读和写互斥,写和写互斥。继承自接口ReadWriteLock特性:可重入,有公平、非公平两种模式其他概念:非公平模式(默认):当以非公平初始化时,读锁和写锁的获取的顺序是不确定的。非公平锁主张竞争获取,可能会延缓一个或多个读或写线程,但是会比公平锁有更高的吞吐量。公平模式:当以公平模式初始化时,线程将会以队列的顺序获取锁。当前线程释放锁后,等待时间最长的写锁线程就会被分配写锁;或者有一组读线程...

2020-12-29 18:27:13 131

原创 java02_线程同步(锁分类)

1、java锁分类这些锁的分类并不全是指锁的状态,有的指锁的特性,有的指锁的设计。(就是从不同的维度去区分锁)概念上分类:乐观锁、悲观锁 独享锁、共享锁 可重入锁 公平锁、非公平锁 分段锁 锁升级(无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁) JDK1.6具体实现分类(具体的锁):互斥锁、读写锁 (C++中有)锁设计(不是一种具体锁):分段锁详情: 乐观锁:乐观锁认为一个线程去拿数据的时候不会有其他线程对数据进行更改,所以不会上锁。.

2020-12-29 17:36:19 212 1

原创 window下tomcat安装

一、下载安装文件 地址:https://tomcat.apache.org/ 选择合适的版本(这里下载免安装版)下载。 将下载的文件解压到指定文件夹,比如:D:\Program Files\apache_tomcat\tomcat_9.0.40二、配置环境变量CATALINA_HOME : D:\Program Files\apache_tomcat\tomcat_9.0.40path中添加%CATALINA_HOME %\bin三、测试安装是...

2020-11-24 23:43:59 155

原创 IDEA-(Service)开启多个服务

.idea配置文件中添加如下配置即可:<component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option></component>...

2020-09-11 22:40:28 1071

转载 【Java基础】 注解

1.什么是注解1.1概念说明程序的,给计算机看的。什么是注释:用文字描述程序的,给程序员看的。百度上的解释:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制,是一种代码级别的说明。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java

2020-06-15 00:31:51 241

转载 首次使用idea需要配置哪些东西

首次使用idea需要配置哪些东西?最近因为我的eclipse无法配置sts,于是将战场转移至idea,首次使用idea,所有的配置都得重新开始配,在这里记录一下配置,造福自己,造福别人(手动捂脸)。。。。我目前所想到的需要配置的有jdk,Tomcat,maven,Git。下面会介绍怎么在idea里面配置这些东西。一、配置jdk1、首先要保证自己的jdk下载好了,然后环境变量也配置好了,我这里环境变量是配好了,就不多说了。2、打开idea,点击file->project structu

2020-06-02 21:06:25 3682

转载 搭建vscode+vue环境【转】

https://blog.youkuaiyun.com/mao834099514/article/details/79138484

2020-06-01 22:28:54 116

转载 在Intellij IDEA中使用Debug【转】

https://www.cnblogs.com/chiangchou/p/idea-debug.html

2020-06-01 21:58:43 135

原创 windbg 符号文件设置

srv*path*http://msdl.microsoft.com/download/symbolsD:\mysymbols

2020-05-28 15:31:49 316

原创 VS+QT工程转QtCreator工程

1、vs2015打开Qt工程,点击Qt VS Tool,Create Basic.pro file2、在弹出的对话框中可以选择需要转换的工程以及配置pro文件中的参数。3、选择保存pro文件的路径。一般默认路径为工程本身的路径,点击保持工程目录下回生成了相应的App.pro文件。就能够自动将VS2015工程转换为QtCreate工程了。...

2020-05-18 15:12:24 1752

原创 VS工程编译错误问题汇总

1、普通文件无法解析(能够跳转)-把相对路径改成绝对路径2、sdk库的头文件编译不通过-lib是否包含。

2020-05-14 16:34:49 375

原创 postman介绍与应用

Postman是什么:Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端。它可以模拟用户发起的各类HTTP/HTTPS请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配。支持http,https协议界面布局:1、可以设置环境变量,在url中使用。比如{{IP}} {{PORT}}2、请求报文中: form-data: Web表单默认的传输格式,设置key-value形式的数据来模拟填充表单...

2020-05-14 16:23:23 1826

原创 vs2015 Qt工程 fatal error C1083: 无法打开预编译头文件

将头文件stdafx.h、stdafx.cpp从VS移除后重新添加即可

2020-04-21 00:37:47 803

原创 vs+qt开发环境安装

VS2013+QT5.6.0安装一、VS2013安装1、下载 VS2013 、QT5.6.0 、qt-vs-addin-1.2.52、安装VS2013,双击运行vs_ultimate.exe进行安装3、选择软件安装位置,不建议安装在C盘下,会导致系统变慢,可以安装在D:\Program Files文件夹下。 4、此处可有选择要安装的工具,由于在以后开发过程中主要...

2020-04-16 20:19:37 1558

原创 C 格式化输入输出

一、C语言 1)字符串:放在数组中,存储字符串的数组的最后一个元素是\0, 用来标记字符串的结束。空字符不是数字0,它是非打印字符,它的ASCⅡ码值为0。 2)strlen()和sizeof():strlen()计算字符串的长度(不带 \0),sizeof()计算变量在内存中占的字节数。 3)scanf()函数 示例:#include <st...

2020-04-03 13:48:00 175

转载 最长上升子序列问题

广场上站着一支队伍,她们是来自全国各地的扭秧歌代表队,现在有她们的身高数据,请你帮忙找出身高依次递增的子序列。例如队伍的身高数据是(1、7、3、5、9、4、8),其中依次递增的子序列有:(1、7),(1、3、5、9),(1、3、4、8)等,其中最长的长度为4。输入描述:输入包含多组数据,每组数据第一行包含一个正整数n(1 ≤ n ≤ 1000)。紧接着第二行包含n个正整数m(...

2020-04-01 21:10:15 218

原创 C++11多线程-条件变量(std::condition_variable)

互斥量(std::mutex),互斥量是多线程间同时访问某一共享变量时,保证变量可被安全访问的手段。 在多线程编程中,还有另一种十分常见的行为:线程同步。线程同步是指线程间需要按照预定的先后次序顺序进行的行为。C++11对这种行为也提供了有力的支持,这就是条件变量。条件变量位于头文件condition_variable下。 配合std::unique_lock一起使用,...

2020-03-31 16:36:11 562

原创 C++ std::swap使用

一、自定义swap()swap就是通过引用来交换a,b的值template<typename T>void swap(T &a,T &b) noexcept{ T temp = std::move(a); a = std::move(b); b = std::move(temp);}...

2020-03-31 14:53:59 747

原创 C++11 std::thread的使用

一、使用及接口构造:std::thread、 thread th_(fn, args)常用接口:joinable、detach 、join、get_id、swap、operator=(移动复制构造)1、std::thread构造函数1)默认构造: 创建一个空的std::thread执行对象2)初始化构造: 创建一个std::thread对象,该std::thread对象...

2020-03-31 14:47:05 906

转载 C++11: std::function和std::bind的用法

一、关于std::function 的用法:其实就可以理解成函数指针格式:std::function<函数指针类型> = 函数(lambda表达式、成员函数)1. 保存自由函数void printA(int a){ cout<<a<<endl;}std::function<void(int a)> func;func...

2020-03-30 20:17:05 573

原创 C++ std::async使用

https://www.cnblogs.com/haippy/p/3284540.htmlhttps://www.cnblogs.com/haippy/p/3235560.htmlhttps://www.cnblogs.com/haippy/p/3236136.htmlhttps://www.cnblogs.com/haippy/p/3346477.html

2020-03-30 19:14:37 137

原创 C++实现10进制到任意进制的转换

#include<iostream>using namespace std;int main(){ //10进制转换成任意进制 long a; cin >> a; int base; //base进制 cin >> base; int b[100]; int num = 0; int i = 0; while (a >...

2020-03-29 21:38:11 2952 1

原创 sqlite思维导图

转载请标明出处!

2020-03-23 18:14:15 257

原创 vs2015查看变量在内存中存储

一、调试--》窗口--》内存定义结构体Astruct A { int a; char b; char *c; char d;};int main(){ A * pa = new A(); pa->a = 5; pa->b = 'a'; pa->c = "hello"; pa->d = 'b'; system("pause");...

2020-03-20 23:41:45 1223

原创 对结构体中字符数组赋值时,出现表达式必须是可修改的左值的问题。以及strcpy和memcp区别

问题:在C++中为结构体中的字符数组赋值时,出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。struct A { int a; char b; char c[10]; char d;};int main(){ A aa; aa.a = 5; aa.b = 'a'; aa.c = "hello"; //错误! 字符串数组复制不能用“=”...

2020-03-20 22:51:16 1495

原创 VS2015调试---数据断点的使用

一、数据断点作用:变量被莫名其妙的更改了,需要再被更改的时候启用断点。比如:在多线程场景中,需要知道数据被哪个线程更改了。二、使用方法:1)在程序开始出打上一个断点(定位的变量之前),数据断点需要在开始调试之后才能设置。2)调试--》新建断点--》数据断点(快捷键Ctrl+B)在地址栏对要监测的变量取地址,如上监测变量c,条件和操作是可选的,只要后面再修改变量c的值,就可以...

2020-03-20 21:53:11 1572

原创 sqlite触发器使用

触发器:old:insert update delete前的就数据new:insert update的新数据可以将new old看做结构体,个类名是其字段-- 触发器 -- CREATE TRIGGER inser_StudentInfo AFTER INSERT ON StudentInfoBEGININSERT INTO book(ID, Guid, Ev...

2020-03-19 19:51:24 327

原创 C++创建链表及链表反转

直接上代码实现:/*mylist.h*/#pragma once#include <iostream> //链表节点 struct ListNode { ListNode():iData(0),pNext(nullptr){} int iData; ListNode * pNext; }; //带头结点链表 class MyList { ...

2020-03-15 15:15:23 407

原创 VS2015 新建项目没有QT

1、工具-->扩展和更新2、查看qt插件是否禁用3、2017版本的qt选项会隐藏在visual C++ --->测试选项下面

2020-03-14 14:46:18 1272

原创 (一)python中\和字符原样输出

一、\的使用1、转义字符字符串输出时,遇到转义字符会转换成相应内容。常用的转义字符:转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \’ 单引号 \” 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \...

2020-03-10 22:20:42 3842

原创 C++回调函数的基本理解和使用

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。https://baike.baidu.com/item/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0...

2020-03-10 16:05:18 822

转载 C++ volatile关键字详解

1、什么是volatile volatile关键字是一种限定符用来声明一个对象在程序中可以被语句外的东西修改,比如操作系统、硬件或并发执行线程。遇到该关键字,编译器不再对该变量的代码进行优化,不再从寄存器中读取变量的值,而是直接从它所在的内存中读取值,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。下面写个代码测试一下volatile关键字注:VC6.0中一般调试模式...

2020-03-10 15:57:54 653

转载 C++中typedef和using

一、typedeftypedef是C/C++语言中保留的关键字,用来定义一种数据类型的别名。ypedef定义的类型的作用域只在该语句的作用域之内typedef经常使用的场景包括以下几种:指定一个简单的别名,避免了书写过长的类型名称 实现一种定长的类型,在跨平台编程的时候尤其重要 使用一种方便阅读的单词来作为别名,方便阅读代码1.1 减少书写类型的长度这一使用方式比较常见的...

2020-03-10 15:22:10 6978 1

mysql-for-visualstudio-2.0.5

解决mysql-for-visualstudio 1.2.9无法卸载

2021-01-06

windbg 安装文件.rar

windbg 安装文件.rar

2020-05-28

VirtualBox-6.1.0.rar

VirtualBox-6.1.0.rar

2020-05-28

windebug.rar

windbg

2020-05-28

sqlitedb库文件

sqlitedb库文件

2020-05-28

空空如也

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

TA关注的人

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