自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android系统架构开发流程(摘要)

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核空间,可能会损害厂家的利益。

2022-10-01 09:50:19 690 1

原创 嵌入式开发系统软件

就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造嵌入式软件最基本的理解是软件+硬件结合,来对产品做出定义,而非嵌入式软件又或是纯互联网行业则是单纯的对软件做出定义,其兼容性差,软件移植性差。传统行业上对嵌入式的应用较为广阔,即便现在互联网行业如此发达,但是不得不承认,传统行业在社会发展中有不可替代的地位。传统行业与互联网的结和的嵌入式开发应用更是具有光明前景的。,用于实现对其他设备的控制、监视或管理等功能。嵌入式软件就是基于嵌入

2022-09-20 09:37:42 1573

原创 嵌入式Linux系统开发---基于Yocto实现

从历史上看,Yocto Project 是从 OpenEmbedded 项目发展而来的。他们本是两个不同的项目(左侧分离视图),然而,目前的 OpenEmbedded 与 Yocto Project 已经融合为一体了(右侧合并视图),因为目前已经很少见单独使用 OpenEmbedded 了。Yocto 全称是 Yocto Project(官方简称 YP) 是 Linux 基金会在 2010 年推出的一个开源的协作项目。,而无需关心硬件体系。主要由 Poky 和 其他一些工具组成。

2022-09-20 08:46:45 2098

原创 Dbus网络通信原理与实现双向通信的关键技术点

DBUS是一种高级的进程间通信机制。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。

2022-09-19 15:42:56 1594

原创 CAN 通信原理学习

CAN(Controller Area Network)是ISO国际标准化的串行通信协议。广泛应用于汽车、船舶等。具有已经被大家认可的`高性能和可靠性`。CAN控制器通过组成总线的2根线(CAN-H和CAN-L)的电位差来确定总线的电平,在任一时刻,总线上有2种电平:显性电平和隐性电平。“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平,并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强)。

2022-09-19 08:01:18 6485

原创 qi_an_xin

奇安信一面:先介绍项目迭代器++it和++it哪个好?前置迭代返回一个引用 后置的返回一个对象。临时对象会导致效率降低。网络字节序TCPdump抓包IP地址转网络字节序 pton:将用字符串表示的IP地址转换成用网络字节序表示的整数IP头部中校验和校验的内容Main函数执行之前的过程(一些系统调用库函数类似的)全双工通信 和半双工通信涉及到的协议 通信速率问题网络路由协议IP协议的一个核心任务就是数据报的路由。即决定发送数据报到目标机器的路径。IP数据报应该发送至哪个下一跳路由,以及

2022-05-26 10:25:11 308

原创 2022 5 字节实习一面--- Pico

文章目录第一部分 自我介绍+项目第二部分 基础知识第三部分 代码题第一部分 自我介绍+项目10min自我介绍和项目介绍(项目没怎么深挖,大概了解了一下)第二部分 基础知识20min左右;面试官是根据简历上的内容有针对性的提问的,有些知识在问你之前还会先问问你掌握的怎么样,平时自己做项目接触到的多嘛。挺人性化的哈哈哈哈 不会也没啥关系具体如下:ISO七层网络模型 每一层的作用以及每一层有哪些协议;Http状态码 直接问的503 这个好像很特别 ;TCP UDP的异同;三次握手 四次挥手

2022-05-13 13:17:54 1194

原创 2022 05 字节题

文章目录leetcode 424 替换后的最长重复字符leetcode 424 替换后的最长重复字符给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。在执行上述操作后,返回包含相同字母的最长子字符串的长度。输入:s = "AABABBA", k = 1输出:4解释:将中间的一个’A’替换为’B’,字符串变为 “AABBBBA”。子串 “BBBB” 有最长重复字母, 答案为 4。滑动窗口+双指针解法//双指针

2022-05-03 19:41:06 596

原创 基础 (2022春)

文章目录【C++内存管理】【C++内存管理】参考

2022-04-21 10:10:44 1062

原创 2022 春 字节题(六)

文章目录leetcode 210 课程表 IIleetcode 210 课程表 II现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] = [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示:[0,1] 。返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回 任意

2022-04-10 22:28:16 290

原创 MySql基础

基本操作存储 过程锁机制视图触发器日志存储引擎索引SQL优化JDBC事务窗口函数pyMySQLSQL语言基础1 概述:2 SQL语言的特点:

2022-03-27 13:59:24 162

原创 春 字节题(五)

文章目录leetcode 55 跳跃游戏 && leetcode 45 跳跃游戏IIleetcode 55 跳跃游戏 && leetcode 45 跳跃游戏II55给定一个非负整数数组nums,你最初位于数组的第一个下标,数组中的每个元素代表你在该位置可以跳跃的最大长度;判断是否能够到达最后一个下标;例如:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

2022-03-26 12:27:44 3115

原创 排序算法 &&LRU缓存算法

leetcode 912 排序数组给定一个整数数组nums,请你将该数组升序排列;方法一:优化后的快排解法//快排用三数取中进行优化class Solution{public: //三数取中进行优化 void GetMid(vector<int>& nums, int left, int right) { int mid = left + (right - left) / 2; //中间元素下标 if (nums[left

2022-03-25 10:59:41 731

原创 春 字节题(四)

文章目录leetcode 198 打家劫舍leetcode 414 第三大的数leetcode 198 打家劫舍leetcode 414 第三大的数

2022-03-17 11:28:58 856

原创 Linux编程--小注

文章目录第二章 IP协议详解第二章 IP协议详解摘抄两个名词:无状态:是指IP通信双方不同步传输数据的状态信息,因此所有的IP数据报的发送、传输和接收都是相互独立、没有上下文关系的;无状态服务最大的缺点是无法处理乱序和重复的IP数据报。无连接:是指IP通信双方都不长久的维持对方的任何信息。这样,上层协议每次发送数据的时候,都必须明确指定对方的IP地址。...

2022-03-14 16:32:04 174

原创 2022春刷题---字节题(三)

回文链表题目要求:给定一个链表的头节点head,请你返回是否为回文链表;例如:输入:head=[1,2,3,3,2,1]输出:trueC++实现://回文链表class Solution{public: bool isPalindrome(ListNode* head) { stack<int>s; ListNode* p = head; while (p) { s.push(p->val); p = p->next;//将所有的

2022-03-11 10:45:11 2231

原创 基础知识(2022 春)

文章目录【C++ string和C中的Char*】【C++ string和C中的Char*】string是c++里的,不是c里的。用string存储字符串时,不用设定字符串的长度,而char要设定,string也不必担心内存是否足够等。还有就是,string有很强很方便的功能,比如可以方便的赋值,方便的比较大小。具体内容可以看看C++ primer......

2022-03-08 11:13:11 705

原创 笔记本题目 复习(一)

反转链表

2022-03-07 13:48:25 831

原创 WebServer-master

文章目录轻量级Web服务器搭建涉及的知识点总结 2022春整体知识框架Eventfd 事件通知创建文件描述符HTTP请求之get/post & 长连接和短连接Reactor(反应池) 架构异步日志系统的实现阻塞IO和非阻塞IO串行化和闩锁 latch介绍thread.join()方法移动构造函数Java之wait() notify()/notifyall()条件变量和互斥量一起使用内联函数Muduo 架构的几个封装函数RALL(资源获取即初始化)机制详解并发控制的悲观主义策略和乐观主义策略(乐观锁和

2022-03-06 21:53:55 2186

原创 Redis 基础知识

文章目录基础数据类型持久化过期键的删除策略内存相关事务集群方案分区分布式缓存异常其他基础数据类型持久化过期键的删除策略内存相关事务集群方案分区分布式缓存异常其他

2022-03-04 16:12:00 2532

原创 字节题 春(二)

文章目录剑指offer 连续子数组的最大和leetcode 2 无重复字符的最长子串leetcode 11 盛最多水的容器leetcode 160 相交链表leetcode 1884 鸡蛋掉落剑指offer 连续子数组的最大和leetcode 2 无重复字符的最长子串leetcode 11 盛最多水的容器leetcode 160 相交链表leetcode 1884 鸡蛋掉落...

2022-03-03 17:05:47 468

原创 Mit 6.824(二)

文章目录分布式系统笔记(二)lecture 4 --Primary-Backup Replicationlecture 5 -- Go Threads and Raftlecture 6 -- fault tolerence raft(共识算法)分布式系统笔记(二)lecture 4 --Primary-Backup Replication单台计算机的故障停止fail-stopstate transfer 状态转换Replicated state machine 复制状态机方案一个Linux

2022-02-25 16:07:13 514

原创 Mit 6.824 (三)

文章目录分布式系统笔记(二)lecture 7分布式系统笔记(二)lecture 7

2022-02-25 12:06:39 2255

原创 2022 春 刷题(一)

文章目录leetcode 209 长度最小的子数组leetcode 209 长度最小的子数组算法要求:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。例如:输入 target=7 nums=[2.3.1.2.4.3]输出:2 [4,3]是符合要求的最短数组用滑动窗口解法:算法实现:

2022-02-23 10:10:09 1042

原创 Mit 6.824 (一)

分布式系统笔记lecture 1分布式系统的简介同一个代码在多台计算机上运行 引发安全问题性能和容错并发编程 时序问题设计分布式系统的根本原因是想获得更好的性能四次实验:Lab 1–MapReduceLab 2–Raft算法 为了实现容错Lab 3–K/Vserver 可以完成复制和容错Lab 4–分片式KV服务 把KV服务器分发到一系列独立的集群中,通过切分KV存储系统。通过这些独立的副本集群进行加速,并行的对集群进行多个复制重点内容基础设施 (存储 通信和计算问题存储是最重

2022-02-21 23:15:53 1547

原创 muduo---C++网络编程库

陈硕 muduo参考资料muduo源码剖析muduo基于Reactor模式实现Reactor模式也是目前大多数Linux端高性能网络编程框架和网络应用所选择的主要架构,例如内存数据库Redis和Java的Netty库等。muduo 架构整个架构依照reactor模式,如如下图:所谓的reactor模型,是有一个循环的过程,监听对应事件是否触发,触发时调用对应的callback函数进行处理;这里的事件在muduo中包括socket可读写事件、定时器事件。在其他网络库中如libevent也包

2022-01-16 15:21:10 3624

原创 深入了解 Reactor 网络编程架构模型

Reactor网络编程架构模型常见的网络编程模型有:Reactor Proactor Asynchronous Completion Token and Acceptor_Connector这里介绍最主流的reactor模型:通常网络编程模型处理的主要流程如下: initiate => receive => demultiplex => dispatch => process eventsI/O多路复用可以用作并发事件驱动(event-driven)程序的基础,即整个事件驱动

2022-01-16 14:32:28 2097

原创 leetcode 8 将字符串转换成整数atoi(有限状态机解法)中等

针对本题引入自动机:字符串处理的题目往往涉及复杂的流程以及条件情况,如果直接上手写程序,一不小心就会写出极其臃肿的代码。因此,为了有条理地分析每个输入字符的处理方法,我们可以使用自动机这个概念:我们的程序在每个时刻有一个状态 s,每次从序列中输入一个字符 c,并根据字符 c 转移到下一个状态 s’。这样,我们只需要建立一个覆盖所有情况的从 s 与 c 映射到 s’ 的表格即可解决题目中的问题代码实现:#include<iostream>using namespace std;#

2022-01-12 12:35:52 2553

原创 准备的基础知识 (五)

文章目录操作系统中的内存结构操作系统中的缺页中断操作系统中的内存结构一个程序本质上是由未初始化数据区BSS段、数据data段、代码text段组成的。一个可执行程序在存储(没有调入内存)时分为代码段、数据区和未初始化数据区三部分。BSS (未初始化数据区):通常用来存放程序中未初始化的全局变量和静态变量的一块内存区域。BSS段属于静态分配,程序结束后静态变量资源由系统自动释放。data 数据段:存放程序中已初始化的全局变量的一块内存区域。数据段也属于静态内存分配text 代码段:存放程序执行代码

2022-01-09 16:55:43 777

原创 链表相关(一)

大师傅敢死队风格

2022-01-07 11:38:51 710

原创 动态规划相关

文章目录理论基础什么是动态规划动态规划的解题步骤动态规划如何debug以斐波那契数列 (leetcode509)为例说明理论基础什么是动态规划动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品

2022-01-06 12:47:06 687

原创 排列组合问题

提出需求:从 n 个人里面,选出 k 个人,有多少中选法。解题思路:这个问题用递归求解,要从 n 个里面选 k 个,首先要判断,n 和 k 的关系,如果n小于k;则没有选法,如果等于,则只有一种选法;如果大于,我们可以分成,选中当前的这个和不选中当前这个来进行递归,每一次选择总量都减一;选中当前这个的话,要从剩下的 n-1 个中选择 k-1个;不选中的话,要从剩下的 n-1 中选择 k 个,如果要选择的数量变成0的话,标识着找到一种选法,返回1。代码实现:#include<iostrea

2022-01-05 22:59:45 404

原创 二叉树相关(一)

提出需求:用哈希实现:#include<iostream>using namespace std;#include<vector>#include<unordered_map>#include<string>#include<algorithm>class Solution{public: vector<vector<string>>groupAnagrams(vector<string&

2022-01-05 22:37:39 961

原创 设计模式之 外观模式 && 模板方法模式

**外观模式**为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。设计分为三个阶段:首先,设计初期,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低,其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用也都会产生很多很小的类,这本是好事,但也给外部调用他们的用户程序带来了使用上的困难

2022-01-05 21:38:51 285

原创 QT学习笔记 (四)

文章目录QT消息机制事件event()事件过滤器绘图和绘图设备Qpainter绘图设备文件系统基本文件操作二进制文件读写文本文件读写QT消息机制事件event()事件过滤器绘图和绘图设备Qpainter绘图设备文件系统基本文件操作二进制文件读写文本文件读写...

2022-01-03 17:58:57 357

原创 QT学习笔记(三)

文章目录布局管理器系统提供的布局控件利用widget做布局常用控件QLabel控件使用显示文字显示图片显示动画QLineEdit设置获取内容设置显示模式其他控件自定义控件布局管理器所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里,以便窗口能够按照我们需要的方式进行渲染。这就涉及到组件定位的机制。Qt 提供了两种组件定位机制:绝对定位和布局定位。绝对定位就是一种最原始的定位方法:

2022-01-02 15:09:03 343

原创 QT学习笔记(二)

文章目录QMainWindow菜单栏工具栏状态栏铆接部件核心部件(中心部件)实现菜单栏和状态栏以及工具栏的相关设置QMainWindowQMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。菜单栏一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面

2021-12-31 15:24:44 734

原创 QT学习笔记(一)

文章目录一、在pro文件里一些命名规范一、在pro文件里pro文件里注释是用 #QT += core gui #包含的模块QT += core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets#大于4版本以上的 包含widget模块TARGET = tcpTestServer #目标 生成的.exe程序的名称TEMPLATE = app # 模板 应用程序模板 Application

2021-12-30 20:26:37 969

原创 编写 shell 脚本

文章目录简介基础使用shell运行输出重定向输入重定向多命令顺序执行常用符号read读取键盘输入的值数值运算变量置换变量默认变量局部变量环境变量declare申明变量类型基础语法echo打印输出printf 格式化打印cut提取列test条件判断流程控制if判断case多选择判断for循环while循环until循环简介Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,

2021-12-30 13:03:15 2890

原创 滴滴实习面经

滴滴出行 工程框架与算法 秋储实习生面试2121.6.22 一面 至今没有二面的通知 凉凉!自我介绍 没问C++基础 没问数据库聊项目(以下都是项目里的内容 大概40min 全程1h进程 线程 的区别 优缺点 TCP/IP UDP各自的优缺点 可靠传输 流量控制 拥塞控制 三次握手 四次挥手 为什么不两次握手 time_wait过多会对系统有什么影响为什么都用进程 不考虑在一个进程下开辟三个线程?网络通信模型 7层 socket通信信号量机制的原子性 信号量加 减 恢复 三个过程是如何

2021-12-29 16:28:18 537

空空如也

空空如也

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

TA关注的人

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