自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wayne_Dream的博客

生命不息,学习不止。我的小站:w8m.wang

  • 博客(70)
  • 收藏
  • 关注

原创 centOS7安装MySQL5.7遇到的问题

原文地址因为想把自己的项目部署到服务器上,首先得安装好项目运行环境,在安装MySQL时就遇到了各种麻烦,首先我安装的系统镜像本身已经安装了MySQL,但是却无法使用,mysql命令找不到,无奈之下我选择把它先卸载掉,重新安装我需要的MySQL5.7版本,这一整就出大事,首先可能删的不干净,导致后面安装的MySQL依旧无法运行。CentOS7,MyS...

2019-08-09 09:51:00 252

原创 阿里云服务器关于端口开放的坑

原文地址之前我运行在服务器上的Halo博客项目因为系统重启无法运行了,查看docker容器实例状态正常,caddy的反向代理也正常,但仔细看了下具体日志image发现反向代理过程中服务器无法访问502,但是Halo项目明明已经跑起来了啊,难道是端口号没有开放?查看阿里云的安全组配置,80端口和443端口明明已经开放了啊,为什么还是无法访问...

2019-08-09 09:48:00 14919 5

原创 谈谈“equals”和“==”

总是遇到 equals 和 == 这类题,之前只知道对于基本数据类型, == 比较的是值,对于引用类型,== 比较的是内存地址,但是当引用类型重写 equals 方法时,== 就可以用来比较值,因为equals方法,首先是在Object中被定义的,它的定义中就是使用==方式来匹配的。equals默认是用来比较内存地址的,但是像 String、Long、Integer 等包装类型,默认重写 equ...

2019-07-12 19:43:00 254

原创 谈谈JVM类加载机制与内存模型

1、类加载机制1.1、什么是类加载机制我的理解是Java编译器将java文件编译成字节码文件,然后类加载器将字节码文件加载进JVM,放到对应内存区域中1.2、类加载的生命周期生命周期类加载的生命周期是从类被加载到内存开始,直到卸载出内存为止的。整个生命周期分为7个阶段:加载、验证、准备、解析、初始化、使用、卸载。其中,验证、准备、解析三部分统称为连接。加载:...

2019-07-12 19:42:00 249

原创 Java中的反射与注解总结

Java反射机制经常与注解搭配,出现在各大框架中,是框架的灵魂所在,贯穿了整个框架的构成。在此对这两个Java特性做一个总结。反射能够分析类能力的程序成为反射(reflective)---from Java核心技术卷Ⅰ通过Java的反射机制,可以在程序中访问已经加载到JVM中的Java对象的描述,实现访问、检测、修复和修改描述Java本身对象的功能,Java中的java.lan...

2019-07-09 21:07:00 429

原创 Java中Object类的十二种方法及作用

Object是Java所有类的基类,是整个类继承结构的顶端,我们几乎每次都需要使用到它。Object的12种方法分别是:registerNatives()、getClass()、hashCode()、equals()、clone()、toString()、wait()、wait(long)、wait(long,int)、notify()、notifyAll()、finalize()。下面对这些...

2019-07-07 20:19:00 2413

原创 如何应对高并发:悲观锁,乐观锁,Redis

根据上一篇Demo测试情况反映,当有多个线程同时抢购时,会发生超发现象,所谓超发现象,就是原本设置库存为30000件,但是,当抢购完成后发现库存余量变成了负数,即发货量大于库存量的情况:超发现象造成这种现象的原因:当多个线程请求数据库查询库存余量时,显示有余量,但是当进行扣减库存时,库存已经用完了,但那个线程并不知道,依旧去扣减库存,造成库存为负数的情况,于是乎就出现了超发现象。测...

2019-05-27 22:22:00 1011 1

原创 SpringBoot+thymeleaf+Mybatis+MySQL:抢购商品Demo

经过之前的学习积累,今天将各部分知识结合了下,做了个Demo,参考《深入浅出SpringBoot2.x》的抢购商品Demo做了个升级,书中是使用jsp来做视图,我将它改变为使用thymeleaf模板引擎,因为这样将前后端分离,也可以减少一些配置,方便了编写与查看;书中在配置Mapper是使用的xml,我将其修改为注解,我感觉这样更直观,xml写法的信噪比太低了(ps:学通信的嘛:)),好多无效信...

2019-05-27 22:19:00 773

原创 二叉树的遍历方式

2019-05-12 19:42:00 133

原创 SpringBoot中的IOC和AOP

1,IOC 控制反转1.1概念Inversion of Control 控制反转或反向控制(控制转移)控制指的是对象的创建、初始化和销毁过程。 控制反转及控制的转移,意思是将控制逻辑由使用一方转移到第三框架或容器负责。当再发生组件变更后,只需要修改框架或容器配置,不需要修改关联组件。1.2思想:假设组件A调用组件B,不再由A负责创建B对象;而是先由第三方框架或容器负责实例化B对...

2019-05-11 21:41:00 3213

原创 SpringBoot中的Restful风格

什么是RESTful风格?REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移),REST 是一种体系结构,而 HTTP 是一种包含了 REST 架构属性的协议,为了便于理解,我们把它的首字母拆分成不同的几个部分:表述性(REpresentational): REST 资源实际上可以用各种形式来...

2019-05-10 18:06:00 610

原创 SpringBoot项目结构及功能

经过一段时间的学习,逐渐揭开了SpringBoot的面纱,接下来对其做一个总结。SpringBoot是简化Spring应用开发的一个框架,整个Spring技术栈的一个大整合,J2EE开发的一站式解决方案;它的特点是约定大于配置,其内部简化了大部分配置。通过pom.xml配置文件,可以很轻松的添加需要的依赖,启动器等。在IntelliJ使用 Spring Initializer快速创建项目...

2019-05-08 15:21:00 2647

原创 终结快速排序

快速排序作为最常用的排序方式(时间复杂度nlogn),Java内置sort排序用的就是快排,也是面试中常考题型,这里来将这个问题彻底解决,之前总是忘记其中的细节,知其然不知其所以然。1,首先得接收一个数组 System.out.println("请输入一个数组(用英文逗号“,”间隔):"); String s = sc...

2019-05-04 15:24:00 140

原创 Java反射机制

反射机制在Java中是非常重要的一部分,它指的是可以在运行时加载、探知、使用编译期完全未知的类。程序在运行状态中,可以动态加载一个只有名称的类,对于任意一个已加载的类,都能够知道这个类的所有属性和方法;对于任意一个对象。都能够调用它的任意一个方法和属性;获得类对象的三种方式1、Class.forName("全类名");2、类名.class;3、对象.getclass();...

2019-04-27 22:45:00 103

原创 Java中的String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。1,运行速度首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即St...

2019-04-07 21:42:00 94

原创 Java初体验之TCP/IP

好久没写了,最近刚学习Java,真的是一入Java深似海啊,比C++简单易用的特性让我有了继续深入下去的动力,Java又称C++-,可以说是C++ 的改进版,取消了类型自动转换,运算符重载,多继承,以及致命的指针,还有内存空间的动态申请与释放,Java创建了垃圾自动回收机制,更是方便了我们编码。经过一周的学习,已经初步了解了Java语言的特性,对于Ja...

2019-04-02 16:53:00 152

原创 该死的编码问题:OpenCV(3.4.5) Error: Assertion failed (!_src.empty()) in cv::cvtColor, file E:\opencvBuil......

opencv3.4.5添加contrib后,使用sift算法做特征点识别时报错,之前以为是opencv编译过程中设置不对,亦或是版本问题,又重新编译了好几遍,都还是遇到同样的问题。#include "opencv2/imgproc.hpp"#include "opencv2/videoio.hpp"#include "opencv2...

2019-03-18 13:03:00 6614

原创 八大排序算法

一、 八大排序算法1 、排序的概念排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。排序分为内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。2 、排序分类八大排序算法...

2018-12-31 15:37:00 184

原创 设计模式---工厂模式

1、工厂模式所谓工厂模式,就是作为一个工厂的类有一个对象以及与它关联的多个方法,客户端使用某些参数调用此方法,之后,工厂会据此创建所需类型的对象,然后将他们返回给客户端。客户端也可以创建对象,那为什么需要工厂的存在呢?因为工厂拥有以下优点:松耦合,即对象的创建可以独立于类的实现对客户端十分友好,只需知道传递的接口,方法和参数,就可以创建所需的...

2018-12-26 21:19:00 144

原创 设计模式---单例模式

1、单例设计模式的意图确保类有且只有一个对象被创建为对象提供一个访问点,使程序可以全局访问对象控制共享资源的并行访问实现方式一个简单方法就是将构造函数私有化,并创建一个静态方法来完成对象的初始化。意思就是当对象在第一次调用时被创建,此后这个类将返回同一个对象。python实现:(因为python无法创建私有的构造函数)class Sin...

2018-12-23 23:44:00 123

原创 Django URL传递参数的方法总结

1 无参数情况配置URL及其视图如下:(r'^hello/$', hello) def hello(request): return HttpResponse("Hello World")访问http://127.0.0.1:8000/hello,输出结果为“Hello World”2 传递一个参数配置URL及其视图如下,URL中通...

2018-12-20 19:19:00 2246

原创 记django中的各种坑

django报错:TypeError: __str__returned non-string (type bytes)某个django项目从python2迁移到python3的过程中,出现了以下问题:TypeError: __str__returned non-string (type bytes)经查证,是模型类中的 str 方法造成的,原因是py...

2018-12-19 11:35:00 323

原创 续上一个LOL皮肤爬虫:用pyinstaller打包成exe

上一篇链接1,安装pyinstallerpip install pyinstallercmd输入此条指令来安装pyinstaller,使用这个库来打包py文件。2,使用Pyinstaller(以上一个爬虫文件getLOLImg.py为例)打开cmd窗口,把路径切换到文件所在路径(文件随便放在哪里都行)打开命令提示行,输入以下内容(最后的是文件...

2018-12-15 16:43:00 173

原创 笔记10:数据结构---线性表

1,线性表的定义线性表是具有相同特性的数据元素的一个有限序列,该序列中所含元素的个数叫做线性表的长度,用n表示,n>=0。当n=0时,表示线性表是一个空表,即表中不包括任何元素。第一个元素叫表头元素,最后一个元素叫表尾元素。线性表:零个或多个数据元素的有限序列。线性表、包括顺序表和链表顺序表(其实就是数组)里面元素的地址是连续的,链表里...

2018-12-04 22:40:00 160

原创 Python---迭代器与生成器

1.迭代器(Iterator)可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个...

2018-12-02 15:54:00 99

原创 Python-copy()与deepcopy()区别

copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。首先直接上结论:—–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。—–而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签...

2018-12-02 09:56:00 124

原创 笔记09:C++中的友元(友元函数和友元类)的用法和功能

采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查...

2018-11-20 10:23:00 207

原创 笔记08:C++中头文件(.h)和源文件(.cpp)的编写

头文件(.h):写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。在写头文件时需要注意,有两种方式。#ifndef SOME_UNIQUE_NAME_HERE#define SOME_UNIQUE_NAME_HERE // contents of the header... #endi...

2018-11-18 21:22:00 508

原创 笔记07:C++中的const

1,const 限定符const int i = 0;,使用const可以将i变成一个常量,当试图对i的值进行修改时,会引发报错,需要注意的是,必须对const对象进行初始化,当然,初始化的值可以是任意复杂的表达式。也可以用一个对象去初始化另一个对象,它们是不是const都无关紧要,因为一旦拷贝完成,新的对象和原来的对象就没有任何关系了。在默认状态下,...

2018-11-17 11:48:00 96

原创 笔记06:C++中的指针

1.指针含义计算机在存储数据的时候必须跟踪3种基本属性1.存储位置2.存储的值3.存储的信息类型指针是一个变量,存储的是地址。 所以指针本质是一个地址!看到指针条件反射想到地址。对于一个常规变量,&运算符就能够取得他的地址。所以一个变量var,那么&var就是一个地址。输出地址是以十六进制来输出的。对于一个指针变量poi...

2018-11-12 14:41:00 115

原创 笔记05:C++中的重载运算

在C++中,当运算符被用于类类型的对象时,它允许我们为其指定新的含义。通过重载的方式,能使表达更加简洁明了。下面通过一个例子来总结运算符的重载问题:#include <iostream>#include <typeinfo>#include <string>using namespace std;struc...

2018-11-10 12:00:00 119

原创 笔记04:栅栏染色问题

这是一题来自Google的面试题,属于easy类题,其中的解题思路是运用动态规划的思想。这种给定一个规则,计算有多少种结果的题目一般都是动态规划,因为我们可以从这个规则中得到递推式。根据题意,不能有超过连续两根柱子是一个颜色,也就意味着第三根柱子要么根第一个柱子不是一个颜色,要么跟第二根柱子不是一个颜色。如果不是同一个颜色,计算可能性的时...

2018-11-04 13:39:00 467

原创 笔记03:爬楼梯递归问题

假设楼梯有N阶,一次只能爬一阶或两阶,问有几种爬楼梯的方法?N=1, 1种N=2, 2种N=3, 3种N=4, 5种N=5, 8种发现这好像斐波那契数列,后一个数等于前两个数之和。F(N+2)=F(N+1)+F(N)下面是c++代码:#include <iostream>using namespace std;int ...

2018-10-26 12:23:00 475

原创 笔记02:汉诺塔递归问题

游戏的目标:把A杆上的圆盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。详见视频在B站看到这个up的讲解,瞬间领悟,讲的非常好!在这里贴一个c++实现的代码。c++#include <iostream&g...

2018-10-23 17:54:00 87

原创 笔记01:C++形参与实参的区别

形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在...

2018-10-22 21:36:00 3440

原创 基于opencv模板匹配的目标检测方法

因为pcl的点云模板匹配遇到了各种困难,暂时先用opencv的模板匹配函数做一个简单的焊缝识别,看看效果。此方法的缺陷就在于物体和相机位置必须固定,只允许微小位移,否则数据将失效。1什么是模板匹配?模板匹配是一种用于查找与模板图像(补丁)匹配(类似)的图像区域的技术。虽然补丁必须是一个矩形,可能并不是所有的矩形都是相关的。在这种情况下,可以使用...

2018-09-03 22:27:00 8348

原创 PCL:点云保存遇到的问题及解决方法

之前已经完成kinect2实时获取点云,那么接下来准备将点云保存到本地,点云扩展名为pcd。在网上查找资料普遍都是这个方法。我就按着这个步骤尝试,首先创建一个空点云(pcl::PointCloud<pcl::PointXYZ> cloud;),接着定义点云的大小和格式,然后把信息写入点云,再使用(pcl::io::saveP...

2018-08-31 11:19:00 3802

原创 Kinect2.0+Libfreenect2+PCL:实时点云显示

写在前面:生成点云前提是已经安装好了libfreenect2和PCL,网上有许多这方面的大把教程,在这里就不多赘述了。-->ubuntu16.04,pcl1.8<--0,工件的点云展示---1,实现步骤先通过libfreenect2提供的getPointXYZRGB函数,得到图像中每...

2018-08-28 20:22:00 1729 1

原创 Kinect2.0-空间长度测量

1.鼠标左键按下选择起点,拖动鼠标,左键放开,确定终点。实现效果1实现效果22.在linux下使用libfreenect2开源多平台驱动来获取kinect2.0的传感器信息,得到深度信息,并通过libfreenect2提供的getPointXYZ函数,来得到相机坐标系中某一点的空间坐标。3.运...

2018-08-22 10:21:00 2945

原创 基于深度特性的物体检测定位_Linux_Kinect2.0_libfreenect2

在上一篇中已经通过opencv获得到了各种图像,在这一篇中,将通过深度特性来进行物体的识别定位。1,深度图像处理1,运用opencv函数inRange来获取一定深度范围内的物体,进行二值化操作,并在此函数中设置两个阈值,来控制深度范围。(处理对象---depth)2,运用opencv函数morphologyEx来进行开运算,目的是消除图像中的噪点,...

2018-08-16 09:40:00 1084 1

空空如也

空空如也

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

TA关注的人

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