自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 安装使用vcpkg的简易教程

简易安装使用vcpkg,并下载安装三方库进行使用

2023-10-28 19:10:31 3462

原创 Cannot run compiler ‘clang++‘. Output:

在安装完QT后,运行软件创建项目后,出现 类似 Cannot run compiler ‘clang++’. Output: 或者Maybe you forgot to setup the environment?Error while parsing file** giveing up 报错时或者项目文件下只有.pro文件没有其他的文件时。解决办法:软件左下角Debug图标点开选择更换构建套件kit,如果MSVC不行就换为MinGW,就可以顺利运行项目了。

2023-03-11 20:34:09 2043 1

原创 Git常用命令学习笔记

本地仓库由工作目录(持有实际文件)、暂存区(Index,缓存区域,临时保存改动)、HEAD(指向最后一次提交的结果)组成。

2022-08-11 17:57:32 271

原创 Node.js使用nrm ls 命令时出现:nrm : 无法加载文件,因为在此系统上禁止运行脚本。

nrm : 无法加载文件 C:\Users\13093\AppData\Roaming\npm\nrm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。所在位置 行:1 字符: 1解决:以管理员方式启动 windows powershell使用获取执行策略信息使用为CurrentUser更改为有效执行策略后,就可以运行 npm ls 命令了

2022-06-24 22:19:05 674

原创 Android第一行代码 Day11笔记

11. Android 进阶技巧11.1 全局获取context11.2 使用Intent传递对象11.2.1 使用Serializable方式传递对象11.2.2 使用Parcelable方式传递对象:11.3 定制日志工具11.4 创建定时任务11.5 多窗口模式

2022-03-28 19:50:47 2827

原创 Android第一行代码 Day10 笔记

10. 服务10.1 Service概述10.2 Android多线程10.2.1 线程的基本用法10.2.2 子线程中更新UI子线程发送消息切换到主线程主线程发送消息切换到子线程10.2.3 使用AsyncTask10.3 Service的基本用法10.3.1 定义一个服务10.3.2 启动和停止服务10.3.3 活动和服务进行通信10.3.4 服务的生命周期10.3.5 使用前台服务10.3.6 使用IntentService

2022-03-24 14:46:38 266

原创 Android第一行代码 Day09笔记

9. 使用网络技术9.1 WebView的用法9.2 使用HTTP协议访问网络9.2.1 使用HttpURLConnection9.2.2 使用OkHttp9.3 解析XML格式数据9.3.1 使用Pull解析方式9.3.2 使用SAX解析方式9.4 解析JSON格式数据9.4.1 使用JSONObject9.4.2 使用GSON9.5 网络编程的最佳实践

2022-03-23 15:38:41 5031

原创 Android第一行代码 Day08笔记

8. 通知8.1 使用通知通知的方法详解8.2 调用摄像头和拍照8.3 播放音频8.4 播放视频

2022-03-23 11:15:43 3427

原创 Android第一行代码 Day07笔记

7. 跨程序共享数据-内容提供器7.1 运行时权限7.2 ContentResolver的基本用法7.3 创建自己的内容提供器7.3.1 简要流程7.3.2 具体流程手动创建代码示例(提供方创建Provider):索要方代码示例:

2022-03-22 11:09:27 885

原创 Android第一行代码 Day06笔记

6. 数据存储6.1 文件存储6.2 SharedPreferences存储6.3 Sqlite3数据库存储6.4 使用LitePal操作数据库

2022-03-21 16:19:08 956

原创 Android第一行代码Day05笔记

5. BroadcastReceiver广播 5.1 BroadcastReceiver简介 5.2 接收系统广播 5.2.1 动态注册广播 5.2.2 静态注册广播 5.3 发送自定义广播 5.3.1 发送标准广播 5.3.2 发送有序广播 5.4 使用本地广播

2022-03-21 10:45:56 491

原创 Android第一行代码Day04笔记

4.Fragment4.1Fragment的简单用法:4.1.1 静态添加Fragment4.1.2 动态添加碎片4.1.3 在碎片中模拟返回栈4.1.4 碎片和活动之间进行通信4.2碎片的生命周期4.2.1 碎片的状态和回调方法4.2.2 碎片的生命周期4.3动态加载布局

2022-03-18 10:39:31 948

原创 Android第一行代码 Day03 笔记

3.UI开发3.1 常用控件3.2 4种基本布局3.3 自定义控件3.4 ListView列表3.5 RecyclerView 滚动控件

2022-03-17 11:27:42 785

原创 Android第一行代码 Day02笔记

2.四大组件之一:Activity的基本用法2.1 概述2.2 创建、配置、启动和关闭活动2.3 传递数据以及返回数据2.4 活动的生命周期2.5 活动的启动模式2.6 活动的最佳实践

2022-03-15 11:26:12 1758

原创 Android第一行代码 Day01笔记

概览1. 前置知识2. Android应用程序2.1 Android项目结构2.2 Android模拟器

2022-03-15 11:22:38 1041

原创 Excel根据出生日期和身份证使用公式计算年龄

根据身份证计算年龄,并且出生月份大于当前月份,则年龄加1=IF(MONTH(DATE(MID(D1,7,4),MID(D1,11,2),MID(D1,13,2))) < MONTH(NOW()),YEAR(NOW())-MID(D1,7,4),YEAR(NOW())-MID(D1,7,4)+1)根据短日期计算年龄,并且出生月份大于当前月份,则年龄加1=IF(MONTH(D1) < MONTH(NOW()),YEAR(NOW())-YEAR(D1),YEAR(NOW())-YEAR(D

2021-11-21 15:07:02 2638

原创 二叉树的原理及前中后序、层序遍历的实现

概览1.二叉树1.1 概念1.2 二叉树的基本形态1.3 两种特殊的二叉树1.4 二叉树的性质1.5 二叉树的存储1.6 二叉树的基本操作1.7 二叉树的层序遍历1.8 前中后序的非递归实现1.9 小结1.二叉树1.1 概念1.2 二叉树的基本形态1.3 两种特殊的二叉树1.4 二叉树的性质1.5 二叉树的存储1.6 二叉树的基本操作1.7 二叉树的层序遍历1.8 前中后序的非递归实现1.9 小结...

2021-07-29 11:27:08 508

原创 浅谈Java集合框架之栈和队列的使用及实现

概览1.队列(Queue)1.1 概念1.队列(Queue)1.1 概念队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 的特性。入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头(Head/Front)...

2021-07-28 07:04:01 320

原创 浅谈Java集合框架之List、ArrayList、LinkedList的使用及实现

概览1.List2. ArrayList2.1 仿写真实的List接口2.2 仿写真实的ArrayList2.3 仿写真实的Iterator接口(迭代器)2.4 仿写真实的Iterable接口2.5 Iterator的实现类ArrayListIterator2.6 泛型的ArrayList3. LinkedList3.1 节点类(Node)3.2 仿写真实的LinkedList3.3 Iterator的实现类LinkedListIterator4. ArrayList 和LinkedList的区别1.Li

2021-07-26 23:25:44 201 2

原创 浅谈Java面向对象编程之多态、继承、抽象类、接口

1. 包包 (package) 是组织类的一种方式。使用包的主要目的是保证类的唯一性。1.1 导入包中的类java中提供了很多现成的类供我们使用public class Test { public static void main(String[] args) { java.util.Date date = new java.util.Date(); // 得到一个毫秒级别的时间戳 System.out.println(date.getT

2021-07-24 22:15:25 1252 10

原创 网络基础(2):传输层UDP协议、TCP协议(三次握手,四次挥手)、网络层IP协议

概览1. UDP协议1.1 特点1.2 UDP协议端格式1.3 面向数据报1. UDP协议1.1 特点无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息面向数据报: 不能够灵活的控制读写数据的次数和数量,只能一次接收(系统级别的操作:调用系统函数)没有发送缓冲区(发了消息就不管),有接收缓冲区数据最大64k1.2 UDP协议端格式1.3 面向数据报—

2021-05-23 17:18:02 305 1

原创 快速排序:Hoare法、挖坑法、前后指针法

1.1 原理从待排序区间选择一个数,作为基准值(pivot);Partition: 遍历整个待排序区间,将比基准值小的(可以包含相等的)放到基准值的左边,将比基准值大的(可以包含相等的)放到基准值的右边;采用分治思想,对左右两个小区间按照同样的方式处理,直到小区间的长度等于1,代表已经有序,或者小区间的长度等于0,代表没有数据1.2 快速排序图示1.3 代码示例(原理-partition)1.3.1 Hoare法 //hoare版本 public int partitionHo

2021-05-19 19:04:51 253 1

原创 归并排序

1. 1 原理归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。1.2 归并原理图示(合并两个有序数组)1.3 示例代码1.3.1 合并两个有序数组 public void merge(int[] array,int lowIndex,int midInd

2021-05-19 17:47:14 64

原创 堆排序

1.1原理基本原理也是选择排序,只是不在使用遍历的方式查找无序区间的最大的数,而是通过堆来选择无序区间的最大的数。注意: 排升序要建大堆;排降序要建小堆。1.2.堆排序图示1.3 示例代码1.3.1 利用向下调整方法创建大堆: public void swap(int[] array,int index1,int index2){ int tmp = array[index1]; array[index1] = array[index2];

2021-05-19 16:26:09 72

原创 网络基础(1):网络协议初识、TCP/IP五层模型、数据包封装和分用、认识IP和MAC地址、网络传输基本流程

概览1. 网络发展2. 网络协议初识2. 1 OSI七层模型2.2 TCP/IP五层模型(或四层模型:不算物理层)1. 网络发展独立模式: 计算机之间相互独立网络互联: 多台计算机连接在一起, 完成数据共享网络互联:使用交换机局域网:通过交换机和路由器连接在一起广域网:组网方式:公网上,网络节点组成,每一个节点,可以是:所谓局域网和广域网只是一个相对概念,广域网也可以看做一个比较大的局域网。2. 网络协议初识协议是一种约定,计算机之间的传输媒介是光信号和电信号,通

2021-05-18 21:03:09 1223 13

原创 Java多线程基础:线程创建、线程控制、线程安全、线程间通信、单例模式、阻塞式队列、线程池

多线程1.初识多线程1.1 概念1.2 多线程使用场景1.3 jconsole1.4 线程的状态1.4.1 线程所有状态1.4.2 状态转移图2. 线程控制2.1 创建线程2.1.1 使用Thread类重写run方法创建2.1.2 实现Runnable接口2.1.3 其他变形2.1.4 解读start() 和 run()2.2 Thread类属性及常用方法2.2.1 Thread类常见构造方法2.2.2 Thread类常见属性2.2.3 Thread类的常用方法介绍静态方法:作用在当前代码行即当前线程实例方

2021-05-15 17:11:09 148 2

原创 Linux多线程基础(2):生产者与消费者模型、POSIX信号量、读写锁、线程池、单例模式

概览1. 生产者消费者模型1.1 123原则1.2 优点1.3 图示1.4 实现2. POSIX信号量2.1 概念2.2 接口2.2.1 定义2.2.2 初始化2.2.3 阻塞等待2.2.3.1 阻塞方式的等待2.2.3.2 非阻塞方式的等待2.2.3.3 带有超时时间的等待2.2.4 唤醒2.2.5 销毁信号量2.2.6 实现同步与互斥2.3 实现3. 读者写者问题(读写锁)3.1 背景3.2 读写锁接口3.2.1 初始化3.2.2 销毁3.2.3 加锁3.2.3.1 读加锁3.2.3.2 写加锁3.2.

2021-05-15 16:52:19 191 1

原创 Linux多线程基础(1):线程概念、线程控制、线程安全、死锁

概览1. 多线程概念1.1 什么是线程2. 线程控制2.1 创建线程2.2 线程终止2.2.1 return返回2.2.2 void pthread_exit(void *retval)2.2.3 int pthread_cancel(pthread_t thread)2.3 线程等待2.4 线程分离3. 线程安全3.11. 多线程概念1.1 什么是线程linux内核中是没有线程的概念的,而是轻量级进程的概念:LWP,通俗的线程概念其实是c库当中的概念。在一个程序里的一个执行路线就叫线程(thre

2021-05-12 19:22:48 258 1

原创 Linux进程信号

信号1. 信号概念2. 信号的产生2.1 硬件产生2.1.1 ctrl+c:SIGINT(2)2.1.2 ctrl+z:SIGTSTP(20)2.1.3 ctrl+\:SIGQUIT(3)2.2 软件产生2.2.1 kill命令2.2.2 kill函数2.2.3 abort函数3. 信号的注册3.1 位图加sigqueue队列3.2 非可靠信号的注册3.3 可靠信号的注册4. 信号的注销4.1 非可靠信号的注销4.2 可靠信号的注销5. 信号的处理5.1 SIG_DFL:默认处理方式SIGCHILD信号5.

2021-05-01 11:22:24 444 1

原创 Linux进程间通信

1. 进程间通信初识1.1 进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。由于进程都拥有自己独立的进程虚拟地址空间,从而导致了进程的独立性,通过进程间通信,可以让不同的进程进行协作。

2021-04-28 21:21:29 115 1

原创 Java基础IO

1. 基础IO1.1 理解IOI/O包括:BIO:同步阻塞的IONIO:同步非阻塞IOAIO:异步非阻塞IO1.2 IO读写方式IO本质就是对数据的读写操作本地文件IO网络IO1.3 IO的特性本质上属于数据传输涉及两个设备间数据的传输方向,一般来说,只关注自己程序的一方数据流:io数据包裹另外一个io数据包裹时,可以设置格式,编码IO读取,读取部分数据以后,这部分数据在之前的IO流就消失,也就是读取操作只操作一次java进程的IO操作,对进

2021-04-27 21:02:02 118 1

原创 Linux下MiniShell的简单实现

1. 思路在学习了linux进程概念和进程控制以后,简单的来实现一个minishell。启动一个父进程,用以从标准输入里面读取用户输入的命令行内容由父进程解析用户输入的内容中,哪些是命令,哪些是命令行参数,存放进argv数组中父进程fork一个子进程,让子进程进行程序替换(execvp),执行用户输入的命令,对命令参数为NULL,或替换失败的子进程进行退出。父进程阻塞的等待子进程退出(wait),待子进程退出后,再去循环获取用户输入思路图示:2. 实现代码2.1 头文件及宏定义部分#

2021-04-20 20:21:44 509 1

原创 Linux 进程控制

进程查看:ps命令ps -ef —— 查看进程信息ps -aux —— 更为详细的查看进程信息例:ps -aux | grep main —— grep后跟程序名称进程创建进程就是pcb,创建一个进程就是创建了一个pcb,复制了调用fork的这个进程pcb的信息(内存指针、程序计数器、上下文数据)这个新的进程,运行的代码与调用fork的进程一样,并且运行位置也相同。两个进程运行的程序相同:哪个是调用进程(父进程),哪个是新建进程(子进程)在父进程中返回子进程的pid,是大于0的;在子进程中

2021-04-19 18:06:07 206 1

原创 Linux动态库与静态库

概览1. 测试代码2. 动态库与静态库初识3. 动态库3.1 库搜索路径3.1 生成动态库3.2 使用动态库3.3 查看当前程序依赖的动态库3.4 查看文件属性3.5 移动或删掉动态库4. 静态库4.1 生成静态库4.2 使用静态库4.3 移动或删掉静态库5. 使用外部库(延伸)1. 测试代码测试程序://////////////////test.h///////////////////#ifndef __TEST_H__#define __TEST_H__#include <stdio.

2021-04-16 18:08:21 130 1

原创 Linux基础IO

基础IO1.C语言操作文件接口(回顾)1.1 FILE *fopen(const char *path,const char *mode)1.2 size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream)1.3 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)1.4 int fseek(FILE *stream, long offset, int

2021-04-15 18:43:38 643 6

原创 关于 /usr/bin/ld: cannot find -lc的问题

在使用 gcc -static 静态链接时,出现如下错误:/usr/bin/ld: cannot find -lccollect2: 错误:ld 返回 1原因分析:可能是因为静态库没有安装,先检查有没有安装静态库:yum list installed | grep glibc-static如果没有安装,则安装即可:yum install glibc-static...

2021-04-11 16:19:50 529 1

原创 Linux进程概念

概览冯诺依曼体系结构操作系统进程概念调度进程状态冯诺依曼体系结构现代计算机的硬件体系结构 ——计算机应该包含五大硬件单元输入设备 —— 采集数据的,比如典型的键盘,网卡接收网络中的数据输出设备 —— 进行数据输出,比如典型显示器,网卡向网络中发送数据存储器 —— 进行中间数据缓冲(内存),硬盘为外存运算器:进行数据运算 运算器+控制器=CPU中央处理器控制器:进行设备控制所有的设备都是围绕存储器工作的cpu不会直接从输入设备获取数据进行处理,而是先把数据放到存储器中,cpu从存储器

2021-04-07 21:43:32 152 1

原创 Linux 常用工具之yum、vim、gcc、gdb、make/Makefile的使用

目录1.软件包管理工具2.vim编辑器3.gcc编译器4.调试器5.项目自动化构建工具6.项目版本管理工具1.软件包管理工具—— 安装其他软件的工具yum—— linux中默认的管理工具,提供软件包的查看,安装,移除等操作三板斧操作:查看:yum list —— 查看所有软件包yum search —— 搜索指定软件包yum makecache —— 将软件包信息保存到本地安装:yum install —— 安装软件包(安装安装包必须要有管理员权限)首先切换为管理员用户:su r

2021-04-07 12:11:12 496 2

原创 git clone 出现fatal: unable to access ‘https://github 类错误解决方法

git clone 遇到问题:fatal: unable to access ‘https://github.comxxxxxxxxxxx’: Failed to connect to xxxxxxxxxxxxx将命令行里的http改为git重新执行。

2021-04-06 19:06:04 367

原创 Linux基础指令之文件权限指令

文件访问权限指令:1. umask 命令—— 查看或者设置文件的创建权限掩码,也就是说掩码决定了一个文件的创建的默认权限正规计算方法:在 shell 下创建文件默认给定的权限 111 111 111 777 满权限umask 默认掩码 000 000 010 002方法:给定权限&(~掩码)选项:-S 人性化显示...

2021-03-31 14:52:34 278 1

Android开发笔记

Android开发笔记

2022-03-13

空空如也

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

TA关注的人

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