自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 毫无准备的字节面

1、项目 奔溃日志 查找方法2、qt 半自动内存管理3、websocket http 区别 http2.0 http 5.04、时间循环机制5、rtsp 协议6、map unordermap7、虚函数表,如何找到的8、析构函数设置为虚函数,一定要?...

2021-09-07 20:39:38 156

原创 常用的一些技巧博客汇总

1、判断大小端的问题: 使用 int 48 0是小端 |使用 1 1是大端 0是小端 |使用联合体https://blog.csdn.net/qq_36391130/article/details/819442172、

2021-07-24 17:36:41 132

原创 QT 属性系统

QT 中的属性,是qt 独有的,将类的信息暴露出来,方便QML 调用属性系统是qt基于元对象系统,为元对象系统服务提供支持语法Q_PROPERTY (TYPE NAME READ function)示例://基础属性 读写重置Q_PROPERTY(bool focus READ hasFocus WRITE setFocus RESET unsetFocus) bool hasFocus() const; void setFocus(bool on); void un.

2021-07-21 11:32:36 262 1

原创 设计模式综述:

设计模式: 代码设计的框架性的一种方法,对反复出现的问题提出的解决方案常见九种:1、单例,最常用懒汉 if (instance == null) { instance = new sigleton(); }饿汉private static Singleton instance = new Singleton();使用静态变量,保证只有一个实例线程安全的懒汉 if (NULL == instance) { ..

2021-07-17 16:00:25 112

原创 数据库综述

1、为什么需要数据库数据保存在内存里面,存取方便,可以永久保存,集合了内存和文件存取数据的优点,查询效率使用sql 语句高2、SQL :Structured Query Language 结构化查询语言。SQL 基础:增删改查:SELECT name,country FROM Websites;INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN');.

2021-07-12 18:01:57 542

原创 C++ 回调和memcpy 的小技巧

回调函数是可以避免臃肿的线程,实现功能的一种方法,A:将收集满锯木屑的容器 托运走B:锯木 并且收集锯木屑这个时候就可以回调B: 1、定义 一个回收锯木屑函数 type void

2021-07-08 20:36:15 153

原创 MQTT 和websocket 协议相关

MQTT 协议:这是在物联网应用比较广泛的一种协议,属于MQTT是基于TCP/IP协议栈构建的异步通信消息协议。

2021-07-05 21:53:06 771 1

原创 HTTP协议

HTTP协议是超文本协议,是基于TCP/IP协议来传输文本,图片等HTTP协议是基于服务器/客户端架构上的HTTP协议的几个特性:1、无连接: 用完就断开连接2、简单快速:请求服务只需要请求路径和请求方法3、灵活: 支持任意类型的数据对象4:无状态,对事务处理没有记忆功能5:默认端口80,支持B/S C/S模式常见的问题:HTTP的错误码:HTTP和HTTPS的区别URL 和URI 区别SOCKET 相关:服务器和客户端的建立流程一些函数的作用输...

2021-07-05 21:51:32 203

原创 网络编程-TCP和UDP

TCP/IP网络模型:计算机和网络设备通讯、需要保证双方基于相同的方法TCP/IP协议族: TCP UDP IP FTP ICMPOSI七层模型和TCP/IP四层模型比较:TCP:是面向链接、可靠的、基于字节流的传输层通信协议三次握手:四次挥手:那么经典问题来了1、为什么需要三次握手,两次行不行?四次行不行先回答,两次行不行问题,1、造成资源浪费。 client向server 发送数据包后,因为网络问题导致丢失延迟很长时间,此时,client会认为已经丢失,会再次...

2021-07-02 16:25:28 178 2

原创 Linux 内存问题

1、物理内存和虚拟内存malloc 能够申请得虚拟内存和物理内存无关,只是和虚拟内存地址空间有关,内存管理单元 MMU 来处理存放在贮存的查询表动态翻译虚拟地址。CPU和主存的L1-L3的高速缓存称为SRAM,DRAM表示虚拟内存系统的缓存,会出现缺页也就是缓存未命中,页表这种数据结构,记录物理页和虚拟页的关联,如果没有查找到虚拟页在DRAM,就会选择一个牺牲页,将虚拟页从磁盘复制到DRAM,替换掉牺牲页。内存管理方式:块管理:块管理是将内存分成一块一块的内存空间,将程序片段分配给一块内存,

2021-06-30 21:12:22 90

原创 并发和互斥

并发:多个执行单元同时并行执行,并发的执行单元对资源的调用具有竞态关系竞态的解决一般采用互斥的机制,访问共享资源的代码区域称为临界区。临界区需要以某种互斥机制来保护,中断操作、原子操作、信号量和自旋锁设备驱动可以采用的互斥途径自旋锁: 自旋锁首先是锁,即获取所有权上锁,执行完成解锁。其他未获取所有权的任务会进行等待直到获取到资源信号量:这是一种睡眠锁,如果一个任务尝试获取已经被持有的信号量,信号量将任务推入等待队列,进行睡眠,信号量被释放,等待队列的任务被唤醒自旋锁对信号量的比较: ...

2021-06-30 15:31:57 526

原创 用户栈和内核栈

内核创建一个进程一个进程的通过进程控制块创建属于自己的堆栈堆栈包括 用户栈和内核栈用户栈:指向用户内存空间,用于保存用户空间和子线程调用的参数、返回值和局部变量内核栈: 指向内核地址空间,保留中断现场,特别是嵌套中断,被中断信息一次性压入栈中,恢复时,按照先进后出逆序弹出中断,保存操作系统相互调用的参数、返回值和局部变量为什么不同共有:1、如果用内核栈:大小有限,用户调用次数很多,中断16个优先级,系统栈是15个,用户程序调用次数很多,15次子程序调用后的参数返回值和局部变量就不能.

2021-06-29 21:27:30 1061

原创 应用程序的堆和栈

前面提到过,每次开启一个应用实例,会创建一个进程,进程会向系统申请资源。进程对应的内存空间对应五个不同的数据区1、代码段: 代码段是用来存放程序执行代码的内存区域。大小在程序执行前可以确定,并且只读,有可能包含一些只读的常量,如字符串常量2、数据段:用来存放程序的已经初始化变量和全局变量的一块内存区域,属于静态内存分配3、BSS 段:存放未初始化的全局变量的 一块内存,属于静态内存分配,并不分配空间,只是记录需要分配空间的大小4、堆:用于存放程序动态分配的内存段,大小不固定,可以扩张和收缩.

2021-06-29 20:45:24 504

原创 Select 、POLL 和EPOLL 区别

select 、poll 、epoll 都是IO多路复用的机制IO多路复用 是通过一个进程监听多个事件的技术参考多路复用

2021-06-29 20:09:35 88

原创 fork VS vfork

fork 和vfork 都可以创建一个子进程fork: 创建和当前进程映像一样的进程 子进程中返回0 , 父进程返回子进程的pid。子进程拷贝父进程的代码段和数据段,同时父子执行顺序不确定,所以获取到子进程pid 需要对返回为0的子进程进行过滤,之后便是父进程返回子进程的pid.vfork:vfork 在创建子进程时候,共享父进程的数据代码段,子进程先于父进程先运行,在字进程调用exit/exec 函数之前,父子进程是贡献数据段,调用之后exec/exit函数后,父进程才能被调用风险点,若子进.

2021-06-29 16:42:06 86

原创 tts 中如何判断字符串中是否含有中文

在语言处理中,接口只有一个,需要判别全英文、中英文,以便调用不同接口主要工作为:1、去除std::string 的符号 包括中英文,避免误判 vector<string> remove_symbol_list {"。", "[", "’", "#", "$", "%", "&", "(", ")", "*", "(", ")", "+", "-", "/", "/", "<", "=", ">", "@", "★", "【", "】", "^", "_".

2021-06-29 16:04:12 713

原创 如何唤醒阻塞的socket 线程

在socket 通讯时候,程序退出时候,socket并未释放,这就导致socket线程被阻塞了1、同步阻塞: 等待锁的释放2、等待阻塞: 1、使用thread.sleep 造成的阻塞 结束后进入 RUNNABLE 状态 2、使用thread.wait 造成的阻塞,使用notify 或者notifyall 唤醒 3、使用thread.join 造成的阻塞,等待上一个线程进入RUNNABLE状态 4、使用threa...

2021-06-28 21:03:17 1176

原创 LINUX 内核线程和用户线程

概念:内核线程:内核线程使用内核栈和进程上下文切换的寄存器,只能运行在内核态用户线程:完全不受内核态影响,线程的创建、同步、调度、销毁都是由用户空间所决定的,也因此这种极其低消耗和高效的此外还有 轻量级线程:建立在内核空间支持内核调度的用户线程,属于内核线程的高度抽象,轻量线程只能由内核来调度,只不过调度方法像普通用户线程,每个轻量级的线程必须关联特定的内核线程,也因此轻量级线程切换的代价和内核线程一致。区别:(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。.

2021-06-28 16:38:59 1175 1

原创 LINUX 进程 线程

进程 、线程概念:定义:进程是程序执行的一个实例,在程序运行时创建,是资源分配的基本单位线程是程序执行的基本单元,一个进程有多个线程组成区别:1、从属单元不同:进程是资源分配的最小单元,线程是程序执行的最小单元2、资源分配和共享方式不同: 进程均有自己的独立资源,启动一个程序的实例,系统会创建一个进程,并且为该进程分配相应的数据段、堆栈段和代码段。不同线程共享进程的资源(部分共享,这部分后续填坑)。但是不同进程很难共享资源。也因此程序切换和创建进程的代价要远高于线程切换的代价。3、

2021-06-26 16:09:26 111

原创 C++ 出现两个头文件相互包含的解决办法

综合网络信息:相互引用解决办法 1、A导入B头文件 , B不导入A头文件 采用 extern 方式引用 2、 前向声明加指针// 声明各种类的头文件 Classes.h//前向声明class User;// 放到前面的类要用指针class Room{ /* something */ User* Admi...

2021-05-08 14:12:42 665

原创 读写锁发现的问题

读写锁发现的问题qt中写了一个c++类用map维护翻译文件,每次更换语言,先加载qm,map里面重新生成。属于一写多读的情况该map文件内容较多,同时加读写锁会导致,切换翻译,导致程序阻塞,发现因为写入过程太长,会有很多读锁在等待导致的阻塞,写加锁,读不加锁,可以避免,是否存在隐患存疑...

2020-12-29 20:06:17 250

原创   切换网络看UDP绑定端口的本质

切换网络看UDP绑定端口的本质项目中因为切换网络导致UDP监听端口失败,反复多次,找不到实际原因,尝试用绑定用QAbstractSocket::ReuseAddressHint 属性,发现绑定失败,将问题和了解的相关知识记录如下:查看端口使用情况 :netstat -aon|findstr "端口" :1、socket 本质上是特殊的I/O,可以进行文件的读写,有文件描述符2、端口的本质是进程号,负责将对应数据分发给相应的IP的具体程序来使用,监听端口号就是监听进程号3...

2020-12-10 19:45:49 393

原创 C++ 智能指针

最近在学习C++ ,之前听说过智能指针,一直没时间看。最近抽时间看了动态内存和指针一章 总而言之,智能指针不是万能,是用作处理你不知道何时释放该指针对象时候使用,分为shared_ptr (普通智能指针) 、unique_ptr (独占指针) 、weak_ptr(引用指针) shared_ptr 类 类似于vector 定义指针必须指定指针指向对象的类型,使用make_s...

2020-04-11 12:41:10 108

原创 2018年美团点评春招第二题字符数字

第二题:数字字符题目:在十进制表示中,任意一个正整数都可以用字符‘0’-‘9’表示出来。但是当‘0’-‘9’这些字符每种字符的数量有限时,可能有些正整数就无法表示出来了。比如你有两个‘1’,一个‘2’ ,那么你能表示出 11,12,121 等等,但是无法表示出 10,122,200 等数。   现在你手上拥有一些字符,它们都是‘0’-‘9’的字符。你可以选出其中一些字符然后将它们组合成一个数字,那...

2018-03-23 20:16:08 350

原创 Android的ip连接

两份参考厂家提供的额源代码有注释的:package com.mjpeg.activity;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import org.apache.http.HttpResponse;import org.apache.http.cl

2017-09-21 10:09:49 484

原创 Android的dialog和实现点击效果

new AlertDialog.Builder(VideoActivity.this).setTitle("智能家居提示").setMessage("您确定退出视频监控吗?").setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterf

2017-09-21 10:08:30 366

原创 关于Android引用出错

为了统一图片格式。将图片统一改成  .png,在xml布局中引用android:background="@mipmap/home_bg" ,文件报错:Error:Gradle: Execution failed for task ':app:mergeDebugResources'.> Error: java.lang.RuntimeException: Crunching Crun

2017-09-21 09:55:24 347

原创 Java数据类型

Java数据类型JAVA中数据基本类型主要有:int:short:long:byte:具体如下表:图片来自维基教科书,侵权删长整型数值有个后缀L,十六进制数值有前缀OX,,八进制数值有前缀O。float数值有后缀F,没有后缀的浮点数值默认为double.三个特殊的浮点数值:正无穷大:负无穷大NaN( Not a Number)关于转义字符

2017-03-16 16:53:09 319

原创 核心编程之开篇HelloWorld

The First Programe:Hello World一般来说,程序员学习新语言写的第一个测试语言是hello world:Java代码如下:public class HelloWord { public static void main(String[] args) { System.out.println("hello word"); }}

2017-03-16 15:58:41 458

原创 数据结构————开篇

数据结构尚未有清晰完整定义首先看看实际案例:图书摆放      1、如何摆放图书:按照图书字母摆放(二分查找)      2、如何查找图书:图书馆常用方法:      1、划分类别,指定区域给特定类别的书籍      问题1、如何分配书柜:      问题2、如何划分类别:解决问题的方式与数据的组织方式相关通过一些案例可以看出数据结构:数据对象在计算机的组织方式

2017-03-08 10:41:30 321

原创 java系列理论----对象与类

java语言和C++一样,也有对象和类,也是属于OOP(面向对象程序设计)语言之一,并且JAVA是完全面向对象,这也就是为什么没有指针的原因。OOP(Object-oriented programming)和PP(Procedural programming)      面向过程是指采用程序调用或函数调用来实现流程控制,只要体现在命令式编程。主要强调动作——告诉电脑该怎么做。

2017-03-07 16:33:49 555

原创 cmake相关

一、扩展动态库:     动态库在ffmpeg编译时用语句,enable shared;    生成.so文件。加载时使用ADD_LIBRARY(libname [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)比如:add_library( imported-lib

2017-02-28 09:50:56 414

原创 ffmpeg移植android编译问题解决

因项目需要用到视频监控技术,从网上查的可以用ffmpeg来实现视频的编码解码功能系统;win10开发软件:IDEANDK:13B;ffpeg:3.2写个shell脚本,执行编译#!/bin/bash NDK=D:\android\sdk\ndk\android-ndk-r13bSYSROOT=D:\android\sdk\ndk\android-ndk-r13b\p

2017-02-26 15:24:30 1348

原创 android镜像目录收集更新

此部分引自     http://www.androiddevtools.cn/#中国科学院开源协会镜像站地址:IPV4/IPV6: mirrors.opencas.cn 端口:80IPV4/IPV6: mirrors.opencas.org 端口:80IPV4/IPV6: mirrors.opencas.ac.cn 端口:80上海GDG镜像

2017-02-25 10:28:34 420

原创 js显示当前时间及其时钟显示

1.弹窗显示,当前时间和日期:main.js var box=new Date(); alert("当前日期"+box.getFullYear()+"/"+box.getMonth()+"/"+box.getDay()); alert("现在时间"+box.getHours()+":"+box.getMinutes()+":"+box.getSeconds());

2016-11-29 10:37:50 2549

SSM框架实现实时检查用户名是否已经注册以及注册按钮提交表单

本资源主要是用于ssm框架用于实时验证,给予jquery和1ajax来查询数据库数据来判断是否用户名可用

2017-11-25

javascript高级教程

《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性。《JavaScript高级程序设计》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。《JavaScript高级程序设计(第3版)》附录展望了未来的API和ECMAScript Harmony规范。   《JavaScript高级程序设计(第3版)》适合有一定编程经验的Web应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。

2016-12-09

空空如也

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

TA关注的人

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