自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 OpenCV-Mat类型矩阵基本操作与示例

创建和初始化矩阵数据类型建立矩阵必须要指定矩阵存储的数据类型,Opencv图像处理中常用的几种数据类型如下:CV_8UC1// 8位无符号单通道CV_8UC3// 8位无符号3通道CV_8UC4CV_32FC1// 32位浮点型单通道CV_32FC3// 32位浮点型3通道CV_32FC4包括数据位深度8位、32位,数据类型U:uchar、F:float型以及通道数C1:单通道、C3:三通道、C4:四通道直接手动创建矩阵,基本方法是指定矩阵尺寸和数据类型:.

2020-06-12 11:08:51 1046 1

原创 IntelliJ IDEA自己常用的快捷键

多行注释:ctrl+shift+/ 修改同名的多个变量名:alt+shift+enter 选中数行整体前移:shift+tab 选中数行整体后移:tab 选中多行进行单行注释:ctrl+/ 输入fori按回车相当于建立一个for(int i=0;i<?;i++)循环 输入i.sout按回车相当于打印System.out.print() 输入"Hello".sout相当于打印System.out.println("Hello")...

2020-06-11 12:21:39 319

原创 python3.6.8 + pycharm + PyQt5 环境搭建

首先安装python3.6.8解释器和PyCharm软件。 其次安装pyQT5,我这次是使用pip工具安装的。安装pyQT5之前,需要先安装SIP。找到python安装目录下Scripts文件夹,我们可以看到有一个pip3.exe可执行文件。这时,在这个文件夹空白处,按shift+鼠标右键,找到在此处打开命令窗口。如图,输入 pip3 install SIP 等待安装完成。上图中我们可以看到Successfully Installed SIP 字样,说明安装SIP成功。接着继续在此处,还.

2020-06-10 10:15:00 1054

原创 Python+Anaconda+PyCharm各自区分

我们通常说的安装python,其实就是指的是安装python解释器。python解释器将python源码高级语言解析为二进制机器语言。另外python2.x和python3.x不兼容。 编辑器是编写代码的工具,python的编辑器有很多,如python解释器自带的IDLE、Anaconda中的Jupyter Notebook,也有专门针对python的PyCharm的编辑器。 pip(package installer for Python)就是库管理工具,通过pip就可以安装、卸载、更新众多的库。 .

2020-06-09 11:22:45 357

原创 Java中的多线程机制

首先弄清楚什么是进程?什么是线程?进程:正在运行的一个程序。如打开任务管理器时,会看到正在运行的QQ,360等应用,每一个正在运行的应用程序就是一个进程。线程:线程在进程里面,也可以说进程可以进一步细化为线程,是一个程序内部的一条执行路径。若同一个进程同一时间并行执行多个线程,就是支持多线程的。举个例子,打开360安全卫士后,可以选择一边杀毒的同时还可以扫描垃圾文件,其实这两个过程就是两个线程。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器。单核CPU:其实是一种假的多线

2020-06-04 17:58:09 455

原创 基本数据类型int的包装类Integer中的Integer.valueOf()方法

关于Integer.valueOf()用法。public class Demo { public static void main(String[] args) { Integer i1=50; int i2=50; Integer i3=Integer.valueOf(50); Integer i4= new Integer(50); System.out.println(i1==i2); System.out.println(i1==i3);

2020-06-03 23:05:53 1283

原创 Java中的泛型-学习笔记

泛型概述泛型是JDK1.5版本以后出现新特性。用于解决安全问题,是一个类型安全机制。泛型好处:将运行时期出现问题ClassCastException问题,转移到了编译时期。方便于程序员解决问题。让运行时问题减少,安全。 避免了强制转换麻烦。泛型格式:通过<>来定义要操作的引用数据类型。在使用java提供的对象时,什么时候写泛型呢?通常在集合框架中很常见,只要见到<>就要定义泛型。其实<> 就是用来接收类型的。当使用集合时,将集合中要存储的数据类

2020-06-03 18:10:32 202

原创 c++中的vector容器

vector容器的数据结构和数组相似,也称为单端数组。vector与数组的区别:数组的长度是固定的,一旦初始化后长度就固定了。而vector的长度是可变的,可以动态扩展。什么是动态扩展?并不是在原空间之后续接新空间,而是找到更大的内存空间,然后将原数据拷贝新空间,释放原空间。构造函数 vector<int>v1; //默认构造 for(int i=0;i<5;i++) { v1.push_back(i); } //遍历容器 for(v

2020-06-03 16:20:38 324

原创 C++中的string类以及成员方法

目录String类string构造函数string赋值操作string字符串拼接string查找和替换string字符串比较string字符存取string插入和删除string子串String类string是c++风格的字符串,实际上string本质上是一个类string类内部封装了很多成员方法。string构造函数string s1; //默认构造const char* str="hello";string s2(str); //使.

2020-06-03 15:36:16 610

原创 C++中STL初识与vector存放数据类型

消除

2020-06-03 14:30:41 296

原创 Java中的增强for循环

高级for循环格式为:格式:for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){ }特点:对集合进行遍历。只能获取集合元素。但是不能对集合进行操作。迭代器除了遍历,还可以进行remove集合中元素的动作。如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。传统for循环遍历和高级for循环有什么区别呢?高级for有一个局限性。必须有被遍历的目标。建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚...

2020-06-02 19:06:39 1003

原创 Java集合框架中的Map集合

Map集合和Collection集合的区别?Map集合是有Key(键)和Value(值)的,Collection集合是只有Value。Collection集合底层也是有Key和Value,只是隐藏起来。什么是Map集合呢?Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。Map集合中的子类有:Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低; HashMap:底层是哈希表数据结构,允许使用 nul

2020-06-02 18:58:56 202

原创 Java中的正则表达式

什么是正则表达式?正则表达式:符合一定规则的表达式。作用:用于专门操作字符串。特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。好处:可以简化对字符串的复杂操作。弊端:符号定义越多,正则越长,阅读性越差。具体操作功能:匹配:使用String类中的 matches()方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false; 切割:使用String类中的 split()方法; 替换:使用Str

2020-05-31 15:40:26 378

原创 Java网络通信之UDP通信

目录网络编程网络通信要素UDP通信网络编程网络参考模型有两个:OSI参考模型和TCP/IP参考模型网络通信要素IP地址:InetAddress网络中设备的标识 不易记忆,可用主机名 本地回环地址:127.0.0.1 主机名:localhost Java中的InetAddress是一个代表IP地址的对象。IP地址可以由字节数组和字符串来分别表示,InetAddress将IP地址以对象的形式进行封装,可以更方便的操作和获取其属性。InetAddress没有构造方.

2020-05-31 14:02:48 441

原创 Java集合类中Set类以及HashSet和TreeSet

目录HashSetTreeSet集合框架中的Set类:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。HashSet特点:底层数据结构是哈希表。是线程不安全的。不同步。 HashSet是如何保证元素唯一性的呢? 是通过...

2020-05-23 21:26:50 271

原创 Java集合类中的List类以及常用的子类

List接口中常用类:ArrayList继承自Collection类,所以继承了其增删改查的特性。使用前需导入包:import java.util.*;例1:迭代器的使用class CollectionDemo{ public static void main(String[] args) { //创建一个集合容器。使用Collection接口的子类。ArrayList ArrayList al=new ArrayList(); //添加元素

2020-05-23 15:54:02 819

原创 Java中的集合框架中的Collection类

集合类为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式 。数组和集合类同是容器,有何不同?数组虽然也可以存储对象,但一旦被定义后其长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。集合类的特点集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。集合中为什么会出现不同的容器?因为每一个容器对数据的存储方式不同。这个存储方式称之为数据结构。.

2020-05-23 14:18:13 236

原创 Java中基本数据类型对象包装类

基本数据类型对象包装类。byte Byteshort Shortint Integerlong Longboolean Booleanfloat Floatdouble Doublechar Character将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。JDK1.5提供了自动装箱(autoboxing)和自动拆箱(autounboxing)功能, 从而实现了包装类和基本数据类型之间的自动转换基本数...

2020-05-23 13:06:49 255

原创 Java中的String类和StringBuffer类

1.String类String类的特点:字符串是一个特殊的对象 字符串一旦初始化就不可以被改变 分析以下两句代码有什么区别?String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象//字符串最大特点:一旦被初始化就不可以被改变。String s2 = new String("abc");s1在内存中有一个对象。s2在内存中有两个对象。(先new一个对象,然后把"abc"传递给String的构造函数)。在这里,先不谈堆 和 栈 ,先简单引入常量池这个

2020-05-23 12:42:14 485

原创 Java中类、继承、接口、异常练习题

注意:按Java规范书写程序代码,如果你认为程序有错误,请指出,并说明程序错误原因。1.编译会成功吗?class Demo{ public static void func() { try { throw new Exception(); } finally { System.out.println("B"); } } public static void main(String[] args) { tr

2020-05-18 13:13:34 603

原创 Java中的异常机制-学习笔记

异常由来:异常问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。异常其实就是java对不正常情况进行描述后的对象体现。对于异常问题的划分:两种:一种是严重的问题,一种非严重的问题。对于严重的,java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。对与非严重的,java通过Exception类进行描述。对于Exception可以使用针对性的处理方式进行处理。Java中的异常体系:图片来源于博客:https://www

2020-05-17 18:09:14 288

原创 Java中的多态和内部类-学习笔记

目录多态内部类匿名内部类多态什么是多态?定义:某一类事物的多种存在形态。例如:动物中猫,狗。猫这个对象对应的类型是猫类型:猫 x = new 猫();同时猫也是动物中的一种,也可以把猫称为动物类型:动物 y = new 猫();我们发现:动物是猫和狗具体事物中抽取出来的父类型。也就是父类型引用指向了子类对象。多态的体现:父类或者接口的引用指向或者接收自己的子类对象 。多态的作用:多态的存在提高了程序的扩展性和后期可维护性。多态的使用前提.

2020-05-15 23:29:56 237

原创 Java中抽象类和接口-学习笔记

目录抽象类抽象类概述抽象类的特点抽象类举例代码讲解抽象类相关问题接口抽象类抽象类概述抽象的定义:抽象就是从多个事物中将共性的,本质的内容抽取出来。例如:狼和狗共性都是犬科,犬科就是抽象出来的概念。抽象类:Java中可以定义没有方法体的方法,该方法的具体实现是由子类来完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。抽象方法的由来:多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只.

2020-05-15 13:31:40 203

原创 Java中的继承机制-学习笔记

目录继承的概述继承的特点super关键字函数覆盖子类的实例化过程final关键字继承的概述多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可; 多个类可以称为子类,单独这个类称为父类或者超类; 子类可以直接访问父类中的非私有的属性和行为; 通过 extends 关键字让类与类之间产生继承关系。类定义格式:class SubDemo extends Demo{}; 继承的出现提高了...

2020-05-14 22:49:10 490

原创 Java中的面向对象的概念,类与对象,封装,构造函数,this关键字,static关键字

目录面向对象的概念类与对象的关系封装构造函数this关键字static关键字单例设计模式面向对象的概念如何理解面向对象?面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象 面向对象是基于面向过程的面向对象的特点:是一种符合人们思考习惯的思想 可以将复杂的事情简单化 将程序员从执行者转换成了指挥者 完成需求时: ...

2020-05-13 18:24:59 403

原创 Java中的一维数组和二维数组-学习笔记

目录数组的定义数组的内存结构数组操作常见问题数组的常见操作二维数组数组练习题数组的定义数组的概念:同一种类型数据的集合。其实数组就是一个容器。数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。定义数组的格式:元素类型[] 数组名= new 元素类型[元素个数或数组长度];例如:int [] arr = new int[3]; //定义一个可以存储3个整数的容器还有另外一种格式:元素类型[] 数组名= new 元素类型[...

2020-05-08 22:41:25 1666

原创 Java中的函数-学习笔记

目录1.函数的定义2.函数的特点3.函数的应用4.函数的重载1.函数的定义什么是函数?函数就是定义在类中的具有特定功能的一段独立小程序 在Java中“函数”也称为“方法”定义函数的格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...){执行语句;return 返回值;}格式中的具体含义:返回值类型:函数运行后的结果的数据类型。参数类型:是形式参数的数据类型。形式参数:是一个变量,用于存储调用函数时传递给函数...

2020-05-08 18:25:22 240

原创 Java中的循环结构笔记整理

Java中的循环结构共三种:代表语句:while ,do while ,for。注意:for循环里面的各个表达式运行的顺序为:初始化表达式只读一次,判断循环条件表达式,条件为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止 ; while循环与for循环可以互换,区别在于for为了循环而定义的变量在for循环结束后就在内存...

2020-05-07 23:09:58 342

原创 Java中判断结构和选择结构

1.判断结构2.选择结构if语句的特点:每一种格式都是单条语句; 第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中 ; if后面条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;注意:if else 结构可以简写为三元运算符。格式为: 变量 = (条件表达式)?表达式1:表达式2三元运算符的特点:...

2020-05-07 18:22:40 1710

原创 Java编程语言基础部分笔记

本次总结了毕向东老师的视频课程笔记,以备后期学习。目录1.关键字2.标识符3.注释4.常量和变量5.运算符1.关键字定义:被Java语言赋予了特殊含义的单词特点:关键字中的所有字母都为小写2.标识符定义:在程序中自定义的一些名称组成特点:由26个英文字母大小写,数字(0-9 )和下划线(_) 以及'$' 组成。 定义合法标识符规则:a)...

2020-05-07 15:58:49 301

原创 Java jdk-14.0.1下载及安装和配置环境变量

1.在官网下载jdk-14.0.1版本。地址:https://www.oracle.com/java/technologies/javase-jdk14-downloads.html左边对应着不同的系统,我的是Windows系统64位,下载的是Windows x64 Installer版本。2.下载好以后安装过程很快,在这里不用多说了。下图为下载好的exe程序。3.详细说一下...

2020-05-05 10:41:40 13665 7

原创 MATLAB中如何定义全零的一维数组

有时候我们在使用matlab进行数学运算的时候,想定义一个全零的一维数组,怎么定义呢?第一步首先我们需要知道在matlab定义全零数组使用的是zeros()函数,在命令行窗口中输入“help zeros”,可以看到函数使用方法,如下图所示:第二步如果输入zeros(1,6),生成1行6列的全零一维数组,如下图所示:因此我们只要输入zeros(1,n)格式就可以定义全零的一维数组...

2020-04-29 15:34:20 24556 1

原创 C++中的预处理命令

预处理命令是C++统一规定的,但是它不是C++语言本身的组成部分,不能直接对它们进行编译。因此必须在对程序进行通常的编译之前,先对程序中这些特殊的命令进行“预处理”,根据预处理命令对程序作相应的处理。经过预处理后,再由编译程序对预处理后的源程序进行通常的编译处理,得到可供执行的目标代码。 C++提供的预处理功能主要有以下3种: (1)宏定义 (2)文件包...

2020-04-13 22:07:40 1215

原创 C++中的虚函数和抽象基类的应用

假设类的层次结构的顶层是抽象基类Shape(形状)。Point(点),Circle(圆),Cylinder(圆柱体)都是Shape的直接派生类和间接派生类。所谓抽象类是不用来定义对象而只作为一种基本类型用作继承的类,由于它经常用作基类,通常称为抽象基类。凡是包含纯虚函数的类都是抽象类。该程序一共有四个头文件和四个源文件。//shape.h//声明抽象基类Shape#include...

2020-04-13 16:13:49 526

原创 Visual Studio中继承时出现error C2504未定义基类的错误解决方法

出现此类错误的原因是出现了多重包含头文件的问题。应该在main.cpp源文件中只包含派生类的头文件即可,而不应该把基类的头文件包含进来。因为我们在派生类的头文件中已经对基类的头文件进行了包含。例如,下面的例子。有两个头文件,基类为shape.h,派生类为rectangle.h。以及对应的实现文件shape.cpp和rectangle.cpp和主函数源文件main.cpp。//shap...

2020-04-13 14:09:03 6793 1

原创 C++中类的封装性和信息隐蔽

1.公用接口与私有实现的分离C++通过类来实现封装性,把数据和与这些数据有关的操作封装在一个类中。在面向对象程序的设计中,在声明类时,一般把所有的数据指定为私有的,使它们与外界隔离,把需要让外界调用的成员函数指定为公用的,这样外界通过公用的函数来实现对数据的操作。因此,公用成员函数是用户使用类的公用接口,或者说是类的对外接口。通过成员函数对数据成员进行操作称为类的实现。为了防止用户任意...

2020-04-06 16:02:04 764

原创 C++处理字符串的方法——字符串类与字符串变量

C++提供了一种新的数据类型——字符串类型(string类型),在使用上和char、int类型一样,可以用来定义变量,这就是字符串变量。实际上,string并不是C++本身具有的基本类型,它是C++标准库中声明的一共字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象。1.字符串变量的定义和引用(1)定义字符串变量和其他类型变量一样,字符串变量必须先定义后使...

2020-04-06 12:55:02 2585

原创 C++中的数据格式输出

通常为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出。有两种方法可以取实现它,一种是使用控制符的方法,另外一种是使用流对象的有关成员函数。1.使用控制符控制输出格式输入输出流的控制符 控制符 作用 dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设...

2020-04-01 18:01:33 2735

原创 QString中的arg()用法

QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const上面为arg()的函数原型。注意:用于填充字符串中的%1,%2...为给定的参数。其中取代的为%1,%2,...,%99.注意最小为%1最大为%99。使用arg(str1).a...

2020-01-03 11:41:44 3784

原创 《Qt Creator快速入门》第二章总结

1. 第1,2和22行是预处理指令,避免该头文件多重包含。命名空间Ui中的前置声明是为了加快编译速度,也可以避免在一个头文件中随意包含其他头文件而产生错误。这并不需要该类的完整定义,所以可以使用前置声明。这样就不用在这里添加ui_hellodialog.h的头文件包含,而可以将其放到hellodialog.cpp文件中进行头文件包含。第12行定义了Q_OBJECT宏,扩展了普通C++类的功能,具备...

2019-12-29 14:09:08 181

空空如也

空空如也

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

TA关注的人

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