自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 华为软件开发面经(新人的第一篇Blog)

**华为软件开发面经**背景:大概9月中旬,我在图书馆的时候接到了一个比较陌生的电话,出于好奇,在挂断的情况下简单的进行了搜索,发现是华为。匆忙出去了,幸运的是HR又打过来了,迅速约了面试时间。或许生活这是这样,总在不经意间给你惊喜。一面:由于时间比较紧,我已经做好了放弃的准备。面试的前一天陪朋友在酒吧喝了很多的酒,第二天八点,昏昏沉沉地起了床,简单喝了杯豆浆醒酒,找了间无人的教室进行面试。由于我使用的是Python,在面试前40分钟,还特意看了一些底层知识。10.05面试开始。首先简单

2020-09-24 23:05:09 2247 1

原创 一种基于协程池的构想

线程的创建是有开销的,从线程的角度来看,本质上就是处理一个任务,从C++的角度来看,就是std::thread或者pthread_create注册一个函数。与其让线程执行完了就去释放,不如采用池化的思想,通常可能是做成负载均衡的,用一个管理线程去动态检测线程池的负载,来判断是创建还是销毁线程。协程作为一种用户态的,更轻量的设计,理应得到更好的运用。是不是可以有这种一种设计,设计一个协程池,用户向协程池提交任务,由协程池来调度,当有recv或者send的任务时就让出,去执行另一个任务。

2024-06-10 00:12:16 126 1

原创 adb forward在调试中的应用

在日常的安卓应用开发中,我们需要对应用进行调试。Android Studio和手机是必不可少的。一种可行的方案是端口转发,即adb forward。应用的进程会有一个socket端口,可以看做是写在系统逻辑里的,debug版本的app就会启动这个端口。对应手机端的应用B,是服务器。这就是将PC端的8000端口转发到手机端的9000端口。如图,PC和adb建立了一条socket通道,手机和adbd建立了一条socket。两者的桥梁就是adb以及adbd。

2024-02-17 22:23:29 392 1

原创 【C++入门】指针和引用

记得学生时,第一次面试腾讯,面试官问什么是引用。那时的自己还是埋头刷算法,不懂八股文,只能说引用是别名。许多年过去了,我应该能回答这个问题了吧。

2024-02-07 20:29:33 342 1

原创 [Go入门]数组

由于数组的长度固定,所以在Go里面很少直接使用。然而,万丈高台起于垒土,在理解slice之前,我们必须先理解数组。数组的长度是数组类型的一部分,所以[3]int和[4]int是两种不同的数组类型。数组的长度必须是常量表达式,也就是说,这个表达式的值在程序编译时就可以确定。默认情况下,一个新数组中的元素初始值为元素类型的零值。” 出现在数组长度的位置,那么数组的长度由初始化数组的元素个数决定。数组中的每个元素都是通过索引来访问的,索引从0到数组长度减1。Go内置的函数len可以返回数组中的元素个数。

2024-02-02 01:19:14 363

原创 [C++入门] 虚函数的奇技淫巧

所谓虚函数表,是编译器自动为一个带有虚函数的类生成的一块内存空间,其中存储着每一个虚函数的入口地址。由于函数的入口地址可以看成一个指针类型,因此这些虚函数的地址间隔为四个字节。而每一个带有虚函数类的实例,都拥有一个虚函数指针——vptr,在类的对象初始化完毕后,它将指向虚函数表。无用的知识3: 该类的大小 sizeof(Base) = sizeof(void*)。原因很简单,包含了虚函数,所以会包含一个vptr,即虚指针。该指针指向虚函数表,无用的知识2: 该类的大小还是1字节,和有多少普通函数没关系。

2024-01-26 01:53:06 320 1

原创 [C++入门]构造/析构/赋值运算1

作为一门面向对象的语言,我们无法绕开class这个概念。与class密切相关的可能是一个或多个构造函数,一个析构函数,一个copy assignment操作符。这些基础操作对对象的初始化、转换和清理尤为重要。这些工具的构造离不开我们,同样也离不开一双无形而又神奇的大手——编译器。

2024-01-26 01:14:12 450 1

原创 [C++入门] typename的双重含义

如上两行代码是大家在编程中常使用的两种声明方式。有些人喜欢class,可以少打几个字母。其他人可能更喜欢typename,因为这暗示了参数并非一定得是个class类型。但是从C++的角度来看,声明template参数时,两者意义完全相同。

2024-01-21 17:04:04 315 1

原创 设计模式之原型模式

即用原型实例创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。既然不需要知道任何创建的细节,势必需要在基类或子类内部提供恰当的接口,以封装的形式满足创建的需求。

2023-10-14 10:23:11 29 1

原创 观察者模式Demo(转自大话设计模式 C++版本)

【代码】观察者模式Demo(转自大话设计模式 C++版本)

2023-10-13 01:33:31 35

原创 leetcode1 两数之和

leetcode两数之和题解,从入门开始,不断了解算法!

2023-09-12 00:54:03 54

原创 正向迭代器和反向迭代器之间的关系

我们可以看到,将current赋给了一个临时变量__tmp, 然后该变量先执行自减操作,再取出存储的值。前面我们提到,反向迭代器其实是从后往前,从rbegin到rend,在直观上是一种"+“, 实际上,从正向的角度来看,其实是”-", 这这好对应代码块的下两行,也就是说current和正向迭代器是存在关联的。rbegin指向容器的最后一个元素,存在超尾现象,因此,在取最后一个元素时,首先需要将目前指向位置自减,然后再解引用。在这样的场景下,我们可以从容器尾部进行一个遍历。

2023-04-21 01:01:55 184 2

原创 std::set 严格弱序

关于set排序的一些踩坑

2023-04-19 11:49:27 97 1

空空如也

空空如也

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

TA关注的人

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