字节 飞书 C++ 客户端 一面

在最开头介绍的时候,面试官问我为什么投这个(HR捞的....,本来投的后端,被换成这个了),然后我以为是移动端,然后巴拉巴拉说了一下我认为的移动端的前景,然后面试官说这是PC端

1.class 和 struct之间的区别在哪

2.在C++中创建一个类,在一开始类中有些什么

2.static的作用,以及用static修饰全局变量和不修饰的区别

3.这段代码执行会发生什么

```C++
#include <iostream>
class A {
public :
void f() {

}
};

int main() {
A* a = nullptr;
a -> f();
    return 0;
}
```
(一开始在我看来,这就是未定义行为,应该是指向内存空间中的保留区或者是任意的一个地址;
       
     之后我查了一下,是因为类的成员函数保存在代码段,然后被所有对象所共享吗?然后没有通过this指针去访问类中的相应成员变量,所以仍然是可以调用的嘛)

4.new和malloc之间的区别在哪

5.如何限制对象创建在堆/栈上?

6.介绍一下线程的栈和进程的栈之间的关系

7.讲一下模板元编程中的特化和偏特化,以及其和函数重载之间的区别

8.讲一下异常规范

9.一个进程的栈有多大

10.虚函数和普通函数之间的区别在哪

11.计算这个类的大小

```c++
#include <iostream>

class base1{
private:
int a;
char c;
public:
virtual void fun1(){}
virtual void fun2(){}
};

int main() {
std::cout << (sizeof(base1));
    return 0;
}
```

12.虚函数指针存储在哪

13.析构函数是否要声明为虚函数

14.销毁时,子类和基类调用析构函数的顺序

15.介绍一下智能指针

16.讲一下右值

18.谈一下你对移动构造函数的理解

19.写一个unique_ptr

无反问

有一段实习是在软件所 plct实验室用模板元编程写simd库的,面试官好像不太感兴趣,项目是XV6加上自己的一些魔改,改进了一些系统调用啥的,然后加上一个acm的铜和省金,面试官也不太感兴趣(好像也没啥好问的这些东西),全程没有涉及到OS啥的,都是C/C++,差不多都答上来了,但估计挂了,感觉最后unique指针没写好,以及全程和面试官不在同一频道
全部评论
3就是未定义行为,不用想,对空指针解引用就是未定义行为,标准里写的明明白白,理论上编译器可以产生任意结果
3 回复 分享
发布于 2024-09-01 00:05 四川
6666,这个我之前字节也是这个面试官,大部分问的一模一样,手撕也是unique_ptr
2 回复 分享
发布于 2024-08-31 19:04 安徽
为何你问正常八股啦,我那个面试完问了好多前端问题,我答的很艰难
点赞 回复 分享
发布于 2024-10-22 16:02 安徽
我刚读大二时,省金基本乱杀,大厂随便去,现在我研究生快毕业了,发现好多acm区域赛金的大佬进大厂也得费力了。
点赞 回复 分享
发布于 2024-08-31 17:54 山东

相关推荐

09-24 09:36
门头沟学院 Java
小红书java面经自我介绍(一面没问项目)询问学习了多久的java?1.Hashmap的数据结果组成?2.Hashmap是线程安全的吗?3.CurrentHashmap是线程安全的吗?4.CAS操作5.如何解决hash冲突?(听过)6.手撕&nbsp;&nbsp;&nbsp;在本地手写单列模式&nbsp;&nbsp;(双重检验锁试)&nbsp;然后让写一个颜色工厂实例&nbsp;(没写出来,讲了一下思路)小红书Java实习一面1.@Autowired和@Resource的区别,(Autowired翻译是自动装配)1.注解@Autowired和@Resource的区别?@Auowired是如何注入的?2.Spring和Spring&nbsp;boot的区别?Spring&nbsp;Boot&nbsp;比&nbsp;Spring优化在哪里,为什么更轻量级?3.Spring的自动装配过程,如何识别出要装配的类?会扫描全部的类吗?4.Spring&nbsp;AOP有哪些注解?5.List有哪些线程安全的类,哪些非线程安全的类?ArrayList和&nbsp;LinkedList&nbsp;的区别?ArrayList&nbsp;的扩容机制?LinkedList的删除操作是&nbsp;O(1)的吗?6.讲一下Syncronized关键字的底层实现原理。介绍一下偏向锁,轻量级锁。volatile有哪些作用?-&nbsp;Synchronized:通过对象头和&nbsp;Monitor&nbsp;实现线程同步,依赖底层&nbsp;Mutex&nbsp;Lock-&nbsp;偏向锁:减少无竞争时的锁开销,记录线程&nbsp;ID-&nbsp;轻量级锁:多线程交替执行时避免重量级锁的性能消耗-&nbsp;Volatile:保证可见性和禁止指令重排序,不保证原子性7.讲一下单例模式有哪几种实现方式lan,e,双8.final关键字修饰变量,方法,类,有什么区别?修饰方法的话,里边的数据能修改吗?修饰类的话,里边的方法可以修改吗?里边的方法可以被重写吗?可以通过反射来修改里边的属性吗?无论什么情况下都可以通过反射来修改吗?9.讲一下Java面向对象的三大特性。说一下你对多态的理解10.线程池有哪些参数,分别讲一下有什么作用?拒绝策略有哪几种?11.Executors工具类可以用来创建线程池对吧,那么里边具体有哪些方法?12.Object类中包含哪些方法?wait()和&nbsp;sleep()&nbsp;有什么区别?getClass(),hashCode(),wait(),equals(),clone(),toString(),notify(),notifyAll13.死锁发生的原因。如何解决死锁问题?14.介绍一下双亲委派机制,使用场景,有什么好处?15.类加载的过程。16.什么时候会发生old&nbsp;GC,年轻代和老年代的比例。讲一下GC回收过程。年轻代的一块region一般是多大?年轻代专门存储大对象的空间是哪里?Old&nbsp;GC&nbsp;和&nbsp;Minor&nbsp;GC的区别?&nbsp;常见的GC&nbsp;Root类型有哪些?17.类的对象头里边存有什么数据?18.TCP/IP有哪几层?每一层分别有哪些协议?报文段的最大限制是多少字节?这个主要是受什么限制导致的?&nbsp;描述一下TCP流量控制的滑动窗口机制19.介绍一下DNS协议,DNS协议在哪一层?20.讲一下Redis的缓存穿透,缓存击穿,缓存雪崩,他们的解决方案分别有什么?&nbsp;Redis里边有一些数量很少,但是访问很频繁的热key,如何高效的,快速的把他们找出来21.https&nbsp;协议和&nbsp;http&nbsp;的区别?&nbsp;如何通过TLS/SSL协议建立加密通道,描述一下这个过程手撕,判断链表是否成环,如果成环求环的长度。6.26北京经纬恒润java校招一面0&nbsp;刚才介绍的流程落到代码实现能说一下嘛(开了共享打开了一下idea给面试官看代码)1&nbsp;final关键字的作用2&nbsp;抽象类和接口的区别3&nbsp;如果抽象类被继承的子类没有实现其全部抽象方***怎么样4&nbsp;结合你的项目举例说明你是怎么用线程池的5&nbsp;用过什么设计模式吗6&nbsp;介绍一下你用的策略模式7&nbsp;spring的aop8&nbsp;结合设计模式说说aop的实现9&nbsp;静态代理两种方法的特点10&nbsp;说说反射的作用和优缺点11&nbsp;redis的持久化机制有哪些12&nbsp;hashmap的使用场景6.24美团财务后端面经1&nbsp;注册中心不可用了微服务之间还能相互调用吗2&nbsp;rpc调用过程3&nbsp;看你用了redis和es,为什么用了多个缓存组件4&nbsp;redis单线程效率为什么快Redis&nbsp;采用单线程模型的设计,主要是为了提升性能、简化逻辑并避免多线程带来的复杂性。以下是其核心优势和原因:Redis&nbsp;的单线程模型避免了多线程之间的竞争问题。多线程需要使用锁机制来保证数据一致性,这会带来额外的开销,例如加锁、解锁和线程切换。同时,多线程可能导致死锁问题,增加了代码的复杂性。而单线程模型确保了所有请求的串行执行,不需要额外的锁机制,从而提高了稳定性和执行效率(1)(2)。Redis&nbsp;使用&nbsp;I/O&nbsp;多路复用机制(如&nbsp;epoll),使单线程能够同时处理多个客户端请求。这种机制避免了&nbsp;I/O&nbsp;阻塞问题,并且由于&nbsp;Redis&nbsp;的操作大多是内存操作,速度极快,单线程足以支撑高并发场景(1)(2)。Redis&nbsp;的核心操作简单且高效,主要是基于内存的键值存储,操作复杂度通常为&nbsp;O(1)&nbsp;或&nbsp;O(log&nbsp;N)。5&nbsp;redis有哪些数据结构6&nbsp;使用redis集群的话,数据分区过程是什么样7&nbsp;es的分词过程有了解吗1.&nbsp;连接ElasticSearch2.&nbsp;创建索引并设置分词器3.&nbsp;索引文档4.&nbsp;执行分词查询5.&nbsp;处理查询结果8&nbsp;MongoDB和mysql实用场景区别,优缺点MongoDB适合用于大数据量、高并发、非结构化数据的场景,而MySQL则更适合需要强一致性和复杂事务处理的关系型数据场景(1)。9&nbsp;mysql的acid如何实现undo&nbsp;log。如果事务失败或调用了rollback,InnoDB会利用undo&nbsp;log将数据回滚到修改前的状态(1)。MySQL通过redo&nbsp;log来实现持久性。InnoDB在事务提交时会将操作记录到redo&nbsp;log,并调用fsync接口将其写入磁盘。如果MySQL宕机,重启时可以通过redo&nbsp;log恢复数据(2)。MySQL通过锁机制和**MVCC(多版本并发控制)**来实现隔离性。一致性确保事务执行前后数据库的状态是一致的。10&nbsp;事务隔离级别的读已提交和可重复读怎么实现在数据库中,事务隔离级别中的读已提交(Read&nbsp;Committed)和可重复读(Repeatable&nbsp;Read)主要通过锁机制和多版本并发控制(MVCC)来实现11&nbsp;mysql的索引的建立选择和依据12&nbsp;你去建立索引要考量的因素有哪些13&nbsp;mysql适合范围查询吗14&nbsp;tcp怎么解决数据损坏丢包乱序问题15&nbsp;算法:反转链表快手-增量投放部门&nbsp;1面&nbsp;2025-07-15-19:30项目:拼团&nbsp;rag&amp;mcp(完全不感兴趣)&nbsp;动态线程池说一下在项目实现的时候遇到的非常难忘的事情。规则树模式&nbsp;✅人群标签&nbsp;✅领域驱动设计的好处&nbsp;(✅❌,答得一般,没答到要点)动态配置中心设计&nbsp;✅动态降级和切量降级的目的&nbsp;✅你是否知道规则树模式的其他场景&nbsp;❌介绍策略模式&nbsp;✅拼团营销策略是否可以叠加?✅责任链模式的设计实现&nbsp;✅你是否知道责任链应用的其他场景?❌你为什么使用mq通信,而不是用rpc进行微服务通信?❌项目做过压测吗?❌动态线程池的几个参数和执行流程&nbsp;✅创建对象有几种方式?❌反射的使用场景&nbsp;❌线程池核心线程数应该怎么设计&nbsp;✅手撕:线程1-100循环打印&nbsp;不会,换题。BM16&nbsp;删除有序链表中的重复元素-I字节生活服务后端一面自我介绍,拷打项目我有&nbsp;10&nbsp;万个路径规则,然后我要怎么存储这些路径规则?然后当一个请求&nbsp;path&nbsp;传过来的时候,我该怎么快速判断它是否在这路径规则里面?redis和数据库同步策略热点数据更新,redis一瞬间失效会有什么问题,怎么解决?算法:最长无重复子串(限时5min)字节&nbsp;一面根据简历问项目,你觉得项目比较难的点?你的延时任务怎么实现的?kafka的延迟队列怎么实现?kafka优先队列?对比一下kafka和rabbitmq?rabbitmq&nbsp;和&nbsp;消费者之间采用什么模式?Spring&nbsp;AOP有实现过代理模式吗?说一下mysql隔离级别?讲一下redis的Zset的底层数据结构?优先队列实现?讲讲java、kafka、rabbitmq&nbsp;的延迟队列?算法题:&nbsp;简单的在图中dps字节实习面经Redis&nbsp;数据结构Redis&nbsp;分布式架构分布式锁实现OSI&nbsp;七层模型空Channel算法题:最长回文子串字节后端一面java面经说说项目背景说说项目里的防超买你说用到了rabbitmq,如何保证可靠性算法&nbsp;寻找两个不定排序有重复的数组的中位数字节后端实习一面面经总共面试了一个小时,汗流浃背了自我介绍项目的拷打(大约15分钟)Java八股:线程进程区别使用多线程还是多进程僵尸线程计算机网络:tcp/ip网络分层tcp和udp区别以及使用领域阻塞控制(是我在前面提到了这个)MySQL八股事务级别,能防止哪些问题临时表算法怎么使用1到5的随机选择器实现1到7的随机选择器&nbsp;二叉树不相邻节点之和最大值
点赞 评论 收藏
分享
评论
9
95
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务