自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Android的音乐播放器的设计与实现

基于安卓的个性化音乐播放器电脑模拟器是这样的真机是这样的电脑模拟器是这样的真机是这样的

2021-04-12 21:59:45 859 2

原创 程序员成长之旅——进程间通信(IPC)

程序员成长之旅——进程间通信pipe/msgqueue/sems/shm代码及总结管道消息队列共享内存信号量练习ipcs -q/m/s于ipcrm -q/m/s的使用,并总结将二元信号量P/V操作,封装成动态/静态库,并分别使用并测试调研同步与互斥概念原理,了解生产者消费者原理。pipe/msgqueue/sems/shm代码及总结再讲进程间通信的方式之前,我们首先要知道为啥要存在进程间的通信...

2020-07-23 10:07:00 281

原创 程序员成长之旅——Delphi实现一个简单的科学计算器

程序员成长之旅——Delphi实现一个简单的科学计算器目标效果组件以及开发环境最终呈现源码GITHUB目标效果组件以及开发环境delphi7版本及以上,这里我用delphi10.4进行的练习,并且只用了edit和button两个组件进行的简单的科学计算器的实现。最终呈现当然这是作为初学者简单的为了更快速的了解这门语言而进行的练习,它还有很多功能有待完善,有兴趣的小伙伴可以一起来探索实现一下。源码GITHUBhttps://github.com/wuweiwuju/Delphi/tree/m

2020-07-08 14:53:15 1224

原创 程序员成长之旅——用日志记录Delphi是否和MYSQL连接成功

程序员成长之旅——Delphi学习记录Day2日志库的使用MYSQL连接过程日志记录MYSQL连接是否成功日志库的使用这里的日志库的话,可以从这里下载https://sourceforge.net/projects/log4delphi/下载完成之后解压缩并打开首先记住这两个路径,这时候我们打开Delphi7这个软件点上面画出来的路径将刚才两个路径进行添加这时候配置就好了MYSQL连接过程https://blog.csdn.net/zxl_1996/article/detail

2020-06-08 10:50:39 191

原创 程序员成长之旅——Delphi学习记录Day1

程序员成长之旅——Delphi学习记录Day1简单的一个四位数的展示实现首先我是下载的Delphi7这个软件。简单的一个四位数的展示实现逻辑非常简单,就是单纯的熟悉一下软件的使用1.打开软件之后,创建一个项目选Application之后,会出现这个界面这里主要用了三个双击所要编写的文本框进行了代码以及属性的编写产生的代码unit siweishu;interfaceuses Windows, Messages, SysUtils, Variants, Classes,

2020-06-05 17:07:07 212

原创 程序员成长之旅——MySql相关软件出现的问题

程序员成长之旅——MySql相关软件出现的问题Mysql下载和安装中的问题Navicat for MySQLMysql下载和安装中的问题下载地址https://dev.mysql.com/downloads/file/?id=494993安装流程1.下载好之后打开就是这个样子,当然这个my.ini是需要自己创建的;2.在此目录下创建一个记事本命名为my.ini,里面直接复制粘贴下面代码进行保存即可[mysql] # 设置mysql客户端默认字符集 default-character-

2020-06-05 14:05:25 320

原创 程序员成长之旅——C语言思维导图

程序员成长之旅——C语言思维导图相关代码

2020-05-31 10:49:02 249

原创 程序员成长之旅——智能指针

程序员成长之旅——智能指针智能指针的发展旅程智能指针的模拟实现智能指针的发展旅程我所了解的智能指针其实是为了解决一些异常安全的问题的,它是运用RAII思想封装的类,从而可以达到自动析构的形式。auto_ptrC++98提出来的第一个智能指针,它是一个类似管理权转让的形式,拷贝构造或者赋值的时候,将其原本的管理权转交给新的对象。unique_ptrC++11提出来的,它的特性非常的明确,就是防拷贝和赋值,将其私有化,或者delete。shared_ptrC++11提出来的,这是为了可以支持拷贝

2020-05-17 16:51:42 213

原创 程序员成长之旅——TCP滑动窗口机制

程序员成长之旅——TCP滑动窗口机制什么是滑动窗口它的优势是什么什么是滑动窗口我所理解的滑动窗口就是客户端和服务端控制两个窗口,一个是发送窗口,一个是接收窗口,它们会根据窗口的大小,在TCP头部进行一个发送数据大小的协商,然后进行顺序编号进行发送以及接收。它的优势是什么1.首先是可靠性它在发送多个数据的时候,确认序号是传输序号的下一位,但只要三次还是没有达到自己理想的序号的话,就会进行重传。2.其次是高效率它不会一次只发送一个数据,然后在没有收到确认应答时就阻塞住了,而是一次性发送多个数据,

2020-05-12 14:10:57 165

原创 程序员成长之旅——HTTP和HTTPS对比

程序员成长之旅——HTTP和HTTPS对比HTTP的缺点HTTPS首先我们要清楚http和https都是应用层上的协议,而https它是加了一个ssl层的http。他两的端口也不一样,http是80端口,https是443端口。HTTP的缺点http它最大的致命缺点就是,它不够安全,在通信的时候很有可能被不法分子监听到自己的内容,细分为三种情况:1.它在给服务端传输的时候,它不能确保所传输的服务端是真正的服务端,当然,反之,服务端也不能清楚所能传输的是真正的客户端;2.因此传输之后,有可能所传达的

2020-05-09 17:32:54 177

原创 程序员成长之旅——同步IO和异步IO(五种IO模型)

程序员成长之旅——同步IO和异步IO(五种IO模型)同步和异步同步异步消息通知阻塞和非阻塞阻塞非阻塞同步IO阻塞IO非阻塞IO信号驱动IO多路转接IO在这里首先要知道一点就是IO操作其实总的就分为两种,第一种是等待的时间,第二种就是数据的拷贝,而往往等待的时间都是高于数据拷贝的,因此为了IO的更加高效,我们都是通过来缩短等待的时间来提生IO的效率的。其次在学习五种IO模型的前提下,先了解一下其概...

2020-05-02 14:12:35 862 2

原创 程序员成长之旅——C++面向对象

程序员成长之旅——C++面向对象描述面向对象技术的基本概念类的基本概念class和struct的区别C++类对象的声明类成员的初始化静态成员变量的使用与全局对象相比,使用静态数据成员有什么优势什么情况只能用初始化列表,而不能用赋值main函数执行前还会执行什么代码?C++中空类默认会产生哪些类成员函数构造函数和析构函数是否可以被重载C++中虚析构函数的作用是什么拷贝构造函...

2020-04-30 22:33:04 143

原创 程序员成长之旅——引用和指针

程序员成长之旅——引用和指针

2020-03-17 20:50:19 180

原创 程序员成长之旅——预处理/const/static/sizeof

程序员成长之旅——预处理/const/static/sizeof预处理点击链接说明const与#define的特点和区别#define只是用来做文本替换的也就是说#define只是在预处理的时候进行展开的,它的生命周期止于编译期,它存在于程序的代码段,在实际程序中它只是一个常数、一个命令的参数、并没有实际的存在。const常量存在于程序的数据段,并在堆栈分配了空间。const常量是一个...

2020-03-15 23:02:31 191

原创 程序员成长之旅——C/C++程序基础

程序员成长之旅——C/C++基础理解C/C++基础理解C/C++基础理解i++和++i那个效率高内置类型效率几乎一样;而自定义类型的情况++i效率较高。因为++i可以返回对象的引用,而i++必须返回对象的值,所以导致在大对象的时候产生了较大的复制开销,引起效率降低。参考链接C++和C有什么不同C是一个结构化的语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。C程序...

2020-03-13 18:42:37 148

原创 程序员成长之旅——泛型模板

程序员成长之旅——泛型模板泛型编程大家都知道C++是C的超集,具有面向对象编程的能力。然而许多程序员可能还不知道,C++不仅是一个面向对象程序语言,它还适用于泛型编程。今天我们通过一些问题来认识一下泛型编程。泛型编程1.举例说明什么是泛型编程泛型编程指编写完全一般化并可以重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。所谓泛型,是指具有在多种数据类型上皆可操作的含意,在C++中...

2020-03-13 00:11:14 218

原创 程序员成长之旅——继承和多态

程序员成长之旅——继承和多态继承和多态C++的三大特性有:封装、继承、多态。今天我们来探索一下继承和多态。继承和多态先简单理解一下继承和多态:继承相当于子类继承了父类的数据和方法,子类父类我们也称为派生类和基类,继承一般我们在子类中添加的是父类没有的成员。而多态是建立在继承之上的,它使用了C++编译器最核心的技术,即动态绑定技术。其核心思想是父类对象调用子类对象的方法。接下来我们通过...

2020-03-11 10:39:27 210

原创 程序员成长之旅——进程信号

程序员成长之旅——进程信号

2020-03-03 21:33:42 240

原创 程序员成长之旅——二叉搜索树的简单模拟实现

程序员成长之旅——二叉搜索树的模拟实现二叉搜索树的概念二叉搜索树的模拟实现画图解析重难点代码二叉搜索树的特点和性能二叉搜索树的概念二叉搜索树又称为二叉排序树,它或者是一个空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树的所有节点的值都小于根节点的值若它的右子树不为空,则右子树上的所有值均大于根节点的值它的左右子树分别也都是二叉搜索树二叉搜索树的模拟实现画图解析重难点...

2020-02-20 18:59:52 164

原创 程序员成长之旅——各个排序的总结和对比

程序员成长之旅——各个排序的总结和对比

2020-02-13 16:04:26 161

原创 程序员成长之旅——归并排序和非比较排序(计数排序)

程序员成长之旅——归并排序和非比较排序归并排序==基本思想==时间和空间复杂度稳定性代码实现非比较排序==基本思想==时间和空间复杂度稳定性代码实现归并排序基本思想归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段...

2020-02-13 15:14:01 151

原创 程序员成长之旅——基础IO

程序员成长之旅——基础IOopen/read/write/close等文件相关系统调用接口纵向对比fd与FILE结构体之前编写的自主shell进行修改,使其支持输入/输出/追加重定向编写简单的add/sub/mul/div函数,并打包成动/静态库,并分别使用open/read/write/close等文件相关系统调用接口纵向对比fd与FILE结构体之前编写的自主shell进行修改,使其支持输...

2020-02-10 15:38:27 388

原创 程序员成长之旅——交换排序

程序员成长之旅——交换排序冒泡排序==基本思想==时间和空间复杂度稳定性代码实现快速排序==基本思想==时间和空间复杂度稳定性代码实现冒泡排序基本思想所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。图解假如是升序时间和空间复杂度时间复杂度是O(n^2)空间复杂度 ...

2020-01-21 23:11:16 195

原创 程序员成长之旅——list容器

程序员成长之旅——listlist的简介和使用list的简介list的使用list的常见问题list底层为啥是带头双向循环链表list迭代器失效list和vector的比较list的简介和使用list的简介list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代;list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立结点中,在结点中通过指...

2020-01-20 23:22:17 146

原创 程序员成长之旅——vector容器

程序员成长之旅——vector容器vector的常见使用vector的定义vector iterator的使用vector增删查改vector常见问题vector的底层实现原理以及实现机制vector空间增长问题vector< char >和string的区别vector迭代器失效问题vector的常见使用vector的定义构造函数声明vector() //无参构造vecto...

2020-01-19 19:24:21 220

原创 程序员成长之旅——string(深浅拷贝、写时拷贝)

程序员成长之旅——string简介以及深浅拷贝对比string简介string的初始化string的比较等操作string的一些特性string的查找string其它常用的函数浅拷贝深拷贝写时拷贝string简介string的初始化首先,string要使用的话,必须包含其头文件。#incldue<string>还要知道的是string类是一个模范类,位于名字空间std中,因...

2020-01-18 13:29:42 232

原创 程序员成长之旅——选择排序

程序员成长之旅——选择排序选择排序==基本思想==时间和空间复杂度稳定性代码实现堆排序==基本思想==时间和空间复杂度稳定性代码实现选择排序基本思想每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。而在这里我进行了稍微的优化,就是选择最小的放在起始位置,最大的放在最末位置,图解一下就很清楚了。图解时间和空间复杂度时间...

2020-01-15 19:55:48 159

原创 程序员成长之旅——程序的编译(预处理操作)+链接

程序员成长之旅——程序的编译(预处理操作)+链接

2020-01-13 16:26:54 136

原创 程序员成长之旅——文件操作

程序员成长之旅——文件操作什么是文件文件名文件类型文件缓冲区文件指针文件的打开与关闭文件的顺序读写文件的随机读写文件结束判定什么是文件磁盘上的文件就是文件。但是在程序设计中,我们谈的文件一般有两种:程序文件 数据文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是...

2020-01-13 15:47:26 312

原创 程序员成长之旅 ——三次握手四次挥手

程序员成长之旅 ——三次握手四次挥手三次握手四次挥手三次握手概述首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接 分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。也就是在二次握手的时候服务端就已经分配了资源,而三次握手,客户端才会分配资源。最初两端的TCP进程都处...

2019-12-06 18:40:35 154

原创 程序员成长之旅 ——网络的初识以及网络编程套接字

程序员成长之旅 ——网络的初识以及网络编程套接字 网络的初识网络编程套接字UDP网络编程TCP网络编程网络的初识IP地址:IPV4—uint32_t类型的一个整数,用于在网络中唯一标识一台主机IPV6—128位—没有推广起来—不向前兼容ipv4但是由于网络使用的人口越来越多,因此ip不够用了,这时候大佬就想到了两种方式解决这个问题。DHCP动态地址分配技术–谁上网给谁分配NAT...

2019-12-04 16:07:09 421

原创 程序员成长之旅 ——进程控制

程序员成长之旅 ——进程控制 代码实现进程创建、等待、终止迷你自主shell的编写封装fork/wait等操作,编写函数process_create ( pid_t* pid, void* func, void* arg ),func回调函数就是子进程执行的入口函数,arg是传递给func回调函数的参数popen/system这两个函数和fork的区别.代码实现进程创建、等待、终止迷你自主sh...

2019-11-07 20:57:30 191

原创 程序员成长之旅 ——进程概念

程序员成长之旅 ——进程概念 进程和程序的区别程序进程区别进程的进程调度算法代码模拟实现孤儿和僵尸进程的场景setenv, export环境变量相关的函数和命令进程和程序的区别程序完成特定任务一系列指令集合单道程序: CPU只能一次执行一个程序多程序设计:CPU执行多个程序,每个进程区别进程的进程调度算法代码模拟实现孤儿和僵尸进程的场景setenv, export环境变量相...

2019-10-28 20:12:46 134

原创 程序员成长之旅 ——linux常用工具

程序员成长之旅 ——linux常用工具 除了vim还有哪些厉害的编辑器vimEclipseBracketsEmacsLight TableChocolatSublime Text除了gcc还有哪些厉害的编译器MSVCClangGCC/G++ICCIBM XL C++调试的时候为啥还需要编译选项中添加 -greadelf命令彩色进度条的实现Linux下软件安装的几种方式(源码安装, rpm安装, y...

2019-10-23 13:03:40 212

原创 程序员成长之旅 ——了解Linux下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password

程序员成长之旅 ——linux重要命令的了解 dutftopfreepstacksusudoadduserpasswddutftopfreepstacksusudoadduserpasswd

2019-10-22 20:37:39 181

原创 程序员成长之旅——Linux初识:Linux下的重要目录

程序员成长之旅——Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp /proc/sys/SElinux/bin/usr/lib/usr/local/var/tmp重要目录/proc<1. / proc是系统内核提供的文件系统(也是伪文件系统),它放置的数据都是内核中的信息;2.例如:系统...

2019-10-12 09:31:41 389

原创 程序员成长之旅——Linux初识:目录权限方面的总结

程序员成长之旅——Linux初识篇:目录权限问题,并进行增删查( cd, touch, ls, rm, mv)等需要哪些权限进入目录的权限touch, ls, rm, mv需要的权限touch需要的权限ls所需要的权限mv需要的权限rm需要的权限进入目录的权限权限是什么就是对某项进行决策程度和范围,通俗来说,就是规定哪些事情能做,哪些事情不能做,那么在Linux中有哪些权限呢?基本权...

2019-10-10 12:28:50 214

原创 程序员成长之旅——Linux命令练习

程序员成长之旅——Linux命令练习1. 将之前所创建的目录和文件全部清理掉2. 在家目录下创建 ~/workspace/cmd 目录以及 ~/workspace/test 目录(什么是家目录?)3. 进入 ~/workspace/cmd 目录,创建一个空文件my.txt4. 使用重定向>>与echo命令向my.txt文件写入 hello world 数据5. 将my...

2019-10-09 12:48:32 478

原创 程序员成长之旅——模板初阶

程序员成长之旅——模板初阶泛型编程函数模板函数模板的概念函数模板的格式函数模板的原理函数模板的实例化模板参数的匹配原则类模板泛型编程如何实现一个通用的加法函数呢?int Add(int left, int right){ return left + right;}double Add(double left, double right){ return left + right;...

2019-10-03 13:23:43 168

原创 程序员成长之旅——C/C++内存管理上篇

程序员成长之旅——C/C++内存管理上篇C/C++内存分布C语言中动态内存管理方式C++中内存管理方式operator new 和 operator deletenew 和 delete 实现原理内置类型自定义类型C/C++内存分布先看一个代码段的题int globalVar = 1;static int staticGlobalVar = 1;void Test(){ static...

2019-10-03 12:54:45 200

空空如也

空空如也

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

TA关注的人

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