- 博客(13)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 华为软件开发面经(新人的第一篇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
原创 正向迭代器和反向迭代器之间的关系
我们可以看到,将current赋给了一个临时变量__tmp, 然后该变量先执行自减操作,再取出存储的值。前面我们提到,反向迭代器其实是从后往前,从rbegin到rend,在直观上是一种"+“, 实际上,从正向的角度来看,其实是”-", 这这好对应代码块的下两行,也就是说current和正向迭代器是存在关联的。rbegin指向容器的最后一个元素,存在超尾现象,因此,在取最后一个元素时,首先需要将目前指向位置自减,然后再解引用。在这样的场景下,我们可以从容器尾部进行一个遍历。
2023-04-21 01:01:55
184
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人