谁不是喝酒喝到吐
码龄6年
关注
提问 私信
  • 博客:38,603
    38,603
    总访问量
  • 37
    原创
  • 364,652
    排名
  • 17
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2019-03-15
博客简介:

liwenjie0的博客

查看详细资料
个人成就
  • 获得30次点赞
  • 内容获得1次评论
  • 获得97次收藏
创作历程
  • 28篇
    2021年
  • 9篇
    2019年
成就勋章
TA的专栏
  • 智能优化算法
    1篇
  • FWA烟花算法
    1篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Android音视频开发(3)MediaPlayer运行过程

这篇博客主要讲一下音视频开发过程中MediaPlayer的一整个创建以及运行的过程,主要以代码进行详解。1.从创建到setDisplay的过程当外部调用MediaPlayer.create(this,“ ”)时,以下是其创建过程的代码: 3 public static MediaPlayer creat(Context context,Uri uri,SurfaceHolder 4 holder,AudioAttributes audioAttributes,int a..
原创
发布博客 2021.10.23 ·
2414 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Android音视频开发(2)常用的系统播放器MediaPlayer

1.状态图及生命周期MediaPlayer是一个多媒体播放类,通过它控制音视频流或本地音视频资源的播放过程。它分为很多状态,如下图所示:图中的单箭头弧代表同步函数调用,双箭头弧代表异步函数调用。1.1 Idle状态及End状态Idle就绪态:MediaPlayer创建实例或调用reset函数后,播放器被创建所处的状态。End结束态:调用release函数后,编程End状态。...
原创
发布博客 2021.10.21 ·
2340 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

音视频开发必备基本基础知识(1)

最近收到了朋友邮寄过来的一本书,刚拿回来就趁机学习了一波音视频开发的知识。现就音视频开发的一些基本知识做一个总结。如下:1.视频编码通过特定的压缩技术,将视频格式文件转换成另一种视频格式文件的方法。视频编码主要分为2个系列,分别如下:MPEG系列:ISO下属的MPEG,VCD(MPEG1),DVD(MPEG2)等H.26X系列:ITU(国际电传视讯联盟),侧重网络传输。2.音频编码AAC:专为声音数据设计的文件压缩格式。有损压缩格式MP3:是一种音频压缩技术。只保留能听到的低
原创
发布博客 2021.10.20 ·
1471 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C++中经典面试问题(三大特征、隐藏、重载、覆盖,虚函数,异常,智能指针以及强制类型转等)

C++(面向对象)的三大特征:1.封装:将客观事物抽象成类,每个类对自身的数据和方法实行protected(保护),public(公有),private(私有)。2.继承:广义的继承有三种方式。实现继承、可视继承、接口继承。 实现继承:使用基类的属性和方法而无需额外编码的能力 可视继承:子窗体使用父窗体的外观和实现代码 接口继承:仅使用属性和方法实现之后到子类实现3.多态:是将父类对象设置成为一个或更多它的子对...
原创
发布博客 2021.08.08 ·
465 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

群体智能优化算法--烟花算法(附优化参数的通用代码)

烟花算法是由北京大学谭营教授提出了烟花算法。这是一种既简单又具有较强优化能力的算法。根据烟花爆炸的原理,每个烟花爆炸之后会选择最好的烟花作为下一次爆炸的烟花。而且在多个烟花爆炸的同时,每个烟花都是相互独立的,寻找最优爆炸烟花只在自身本身爆炸范围内寻找。该算法的鲁棒性体现在自身算法的特点上。适应度值的不同,会导致爆炸半径及产生烟火的数量不同,每个烟花个体之间是相互独立又是相互交流的,非常便捷。一、烟花算法组成爆炸烟花:烟花爆炸产生火花。在此过程中,主要包括了爆炸强度、爆炸幅度、位移操作...
原创
发布博客 2021.08.07 ·
3333 阅读 ·
4 点赞 ·
0 评论 ·
25 收藏

FWA_function_opt.m

发布资源 2021.08.07 ·
m

详细剖析linux的内存管理方式(分段式、分页式、段页式),以及进程状态的具体关系

进程状态之间的关系:1.分段式内存管理:分段:进程地址空间按照逻辑关系将自身划分为若干个段,每个段都有自己的段名,从0开始编址。内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段不相邻。组成:段号--段号的位数决定每个进程最多可分为几段。 段内地址--段内地址位数决定每个段最大长度是多少段表:一张映射表,是为了程序正常运行,从物理内存中找到逻辑段的存放位置。...
原创
发布博客 2021.08.03 ·
1398 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

Stack与queue的底层实现、区别。

一、stack(栈):先进后出1.栈是一种只能从表的一端存取数据且遵循 "先进后出" 原则的线性存储结构。栈的开口端被称为栈顶;相应地,封口端被称为栈底。 向栈中添加元素,此过程被称为"进栈"(入栈或压栈); 从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);2.栈的实现顺序栈:采用顺序存储结构可以模拟栈存储数据的特点,从而实现栈存储结构;链栈:采用链式存储结构实现栈结构;3.接口使用stack(const contain...
原创
发布博客 2021.08.03 ·
1439 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

一文秒懂软链接与硬链接、dup、dup2函数。

dup、dup2实现文件描述符重定向dup函数:int dup(int oldfd);作用:返回一个新的文件描述符(最小可用文件描述符)newfd,且指向oldfd所指向的文件项。dup2函数:int dup2(int oldfd,int newfd);作用:返回一个最小可用文件描述符newfd,且newfd与传入的oldfd指向同一个表项;newfd若newfd已经被open过,那么就会先将newfd关闭,然后让newfd指向oldfd所指向的文件表项,如果newfd本身就等于o...
原创
发布博客 2021.08.02 ·
294 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vector与list的接口介绍与如何使用以及区别,附代码。

一、vector向量(Vector)是一个封装了动态大小数组的顺序容器,它能够存放各种类型的对象。可认为向量是一个能够存放任意类型的动态数组。函数实现:1.构造函数:vector() 无参构造vector(size_type n, const value_type& val = value_type()) 构造并初始化n个valvector (const vector& x); 拷贝构造(只能拷贝同类型vector)vector (InputIterator firs
原创
发布博客 2021.08.02 ·
290 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

内存分布malloc/calloc/realloc/free/new/delete、内存泄露、String模板、浅拷贝与深拷贝以及模拟string类的实现

内存分布一、C语言中的动态内存管理方式:malloc/calloc/realloc和free1.malloc:从堆上获得指定字节的内存空间,函数声明:void *malloc (int n);函数执行成功,malloc返回获得内存空间的首地址;如果函数执行失败,那么返回值为NULL。通过malloc函数得到的堆内存必须使用memset函数来初始化。char *str = (char*) malloc(100);assert(str != nullptr);2.calloc
原创
发布博客 2021.08.02 ·
403 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

一文带你入门C++,类与对象、6个默认成员函数、this指针以及static关键字。

C++98关键字:63个一、命名空间规则(namespace) 1.命名空间可以解决函数、全局变量名重复的问题,包在不同的命名空间里的重复函数,实际就是两个完全无关的函数。 2.命名空间允许续嵌套:嵌套内部和外部没有任何关系。 3.命名空间允许重名:重名的命名空间就会被合并。注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。它解决了C语言中只能用文件划分作用域的缺点。命名空间使用有3种方式。 第1种:加命名空间名称...
原创
发布博客 2021.07.31 ·
291 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

高级IO--5种及select、poll、epoll的原理、执行以及优缺点

高级IO:5种典型的IO模型/多路转接模型---三种实现四种IO模型:阻塞IO/非阻塞IO/信号驱动IO/异步IOIO的过程:发起IO调用,等待IO条件就绪,然后将数据拷贝到缓冲区进行处理---等待/拷贝阻塞IO:为了完成IO,发起调用,若当前不具备IO条件,则一直等待类似于钓鱼,没有鱼上钩就一直等待.一个IO完毕后才能进行下一个,对于资源没有充分利用,大部分时间都在等待.非阻塞IO:完了完成IO,发起调用,若当前不具备IO条件,则立即返回(通常干其他事情需要循环操作重新..
原创
发布博客 2021.07.30 ·
452 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

带你一文搞懂网络层的IP协议\数据链路层的以太网\ARP协议以及DNS和NAT协议

TCP连接管理中的保活机制:TCP协议是面向连接通信,若通信双方长时间没有数据往来,就需要确定对方还是否在线,连接是否正常? 若通信双方长时间(7200秒)没有数据往来,在服务端会向客户端每隔一段时间(75秒)发送一个保活探测数据包,要求对方进行响应,若多次(9次)无响应,则认为连接断开.(时间都是可以配置的),连接断开对上层程序编写的影响:recv返回0/send触发异常网络层/链路层协议的解析:网络层:IP协议V--4位版本:IPV4/IPV6L-4位头部长度:I...
原创
发布博客 2021.07.28 ·
815 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

带你一文看懂MySqL中的事务与索引

子查询:在一条sql语句中嵌入在其他sql语句中的select语句,也叫嵌套查询 单行子查询:返回一行记录的子查询。 查询与“成绩优秀” 同学的同班同学:select * from student where classes_id=(select classes_id from student wherename='成绩优秀'); 多行子查询:返回多行记录的子查询(关键字IN和NOT IN)select * from score...
原创
发布博客 2021.07.27 ·
134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手

网络基础:TCP/IP四层模型中的典型协议--理解网络通信的流程原理应用层协议:负责应用程序之间的数据沟通 网络版计算器:客户端向服务端传递两个数字以及一个运算符,服务端收到数据进行解析得到数字与运算符,然后进行运算,最终将结果返回给客户端int num1=10; int num2=20; char op="+";客户端需要将多个数据对象进行格式组织,然后通过网络数据传输,传递给服务端方案一:将3个数据对象组成成为一个字符串:“10;20+”方案二:将3个数据对象在...
原创
发布博客 2021.07.27 ·
1080 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

OSI七层、TCP/IP五层、UDP、TCP的socket编程(服务端及客户端)、字节序转换、多进程以及多线程服务端的实现

1.网络以覆盖范围划分:局域网/城域网/广域网 互联网/因特网 以太网/令牌环网--组网方式2.在网络中必须能够为一表示每一台主机,才能实现点到点的精确通信 IP地址: ipv4:uint32_t 无符号4个字节的整数 DHCP/NAT ipv6:uint_t addr[16];网络通信中的每条数据都必须具备:源IP地址/目的IP地址--表示数据从哪个主机来,到哪个主机去。 目的IP地址:能够让网络中的路由器为每一条数据根据目的地址选择不同的路...
原创
发布博客 2021.07.26 ·
506 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查

什么是数据库?存储数据的仓库数据库的存储介质:磁盘和内存。为什么要用数据库不用文件?(数据库与文件进行数据存储的区别)1.文件存储安全性低2.数据库对数据进行良好的存储,查询以及管理3.便于程序控制(C/S架构)关系型数据库:以行和列的形式组织(OLTP)联机事务处理 Oracle:甲骨文产品,适合大型项目,适合复杂业务逻辑,如ERP、OA等,收费 MySQL:甲骨文,不适合复杂业务,开源 ...
原创
发布博客 2021.07.25 ·
225 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

生产者消费者模型、信号量、线程池以及单例模式的实现

生产者消费者模型!!---对典型的应用场景设计的解决方案生产者与消费者模型应用场景:有线程不断的生产数据,有线程不断的处理数据。数据的生产与数据的处理:放在同一个线程中完成,因为执行流只有一个,那么肯定是生产一个处理一个,处理一个后才能生产一个,这样的话依赖关系太强---如果处理比较慢,也会拖的生产速度慢下来。因此将生产与处理放到不同的执行流中完成,中间增加一个数据缓冲区,作为中间的数据缓冲场所。生产者与消费者解决的问题:1.解耦和 (将各个功能分离)2.支持忙闲不均/3.支持并发.
原创
发布博客 2021.07.23 ·
357 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

线程安全、同步与互斥机制以及死锁的产生与实现

线程安全:多个执行流对临界资源争抢访问,但是不会出现数据二义性。线程安全的实现: 同步:通过条件判断保证对临界资源访问的合理性。 互斥:通过同一时间对临界资源访问的唯一性实现临界资源访问的安全性。同步如何实现?/互斥如何实现? 互斥的实现:互斥锁互斥锁实现互斥的原理:互斥锁本身是一个只有0/1的计数器,描述了一个临界资源当前的访问状态,所有执行流在访问临界资源都需要判断当前的临界资源状态是否允许访问,如果不允许则...
原创
发布博客 2021.07.22 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多