面试内容记录

1.const,static,volatile,inline,extern的含义
const:只读修饰,不允许被修改
static:修饰局部变量时,有默认值为0,是一个值不变的变量,为其开辟内存,函数结束后不被释放,直到程序结束才释放
修饰全局变量时,允许本源文件内所有函数访问,不能被其他源文件访问,即一个本地的变量
static修饰的函数仅允许本文件内其他函数调用。
volatile:表示每次使用volatile修饰的变量时,不是从加载到程序的存储单元读取,而是从实际地址读取,不采取优化方式。
inline:表示inline修饰的函数在使用时是直接在调用函数内展开,而不是新建堆栈内存调用,减少了开销
2.linux下如何定位内存泄漏
内存泄漏的概念:当申请的内存空间没有被及时释放时,之后的程序都将无法使用该内存空间
定位内存泄漏的方式:
a.ps和kill对程序占用的内存进行监测和释放
b.利用valgrind对程序进行调试
3.UART,IIC,SPI区别
UART:异步收发接口(全双工,异步,串行,速度最慢)三线(TX,RX,GND)
IIC:双线串行总线(半双工,同步,串行,速度第二)双线(时钟线,数据线)
SPI:同步外设接口(全双工,同步,串行,速度最快)三线(数据输出,数据输入,时钟线)
4.给指定地址赋值
int *p=(int *)0xff11f1;
*p=250;
5.iso七层模型有哪些,tcp/udp属于哪一层?
应用层,会话层,表示层,网络层,传输层,数据链路层,物理层
tcp/udp属于传输层

优缺点               优点                     缺点
TCP: 面向连接,传输稳定 连接的延时问题导致安全性不高
数据不容易丢失 连接耗时多

UDP: 无需连接,直接发送 UDP容易丢包,乱序
安全性高
6.linux下同步模式和异步模式
同步模式:由处理消息者等待消息是否被触发
异步模式:由触发机制来通知消息处理者
7.C++实现多态的方式有哪些?
首先理解多态的概念:“一个接口,多种方法”,程序运行时才决定调用的函数
分为编译时多态(静态多态):重载、泛型编程(不需要考虑数据类型的标准模板库)
运行时多态(动态多态):虚函数
实现多态的方式:
a.重载:不论是否有虚函数,在作用域相同、函数名同名的情况下,参数(个数、类型、数目)不同即为重载
b.覆盖:在不同作用域下,同名同参数的不同函数构成覆盖
c.隐藏:在不同作用域下,同名不同参数的,基类有无虚函数都是隐藏,同名相同参数的,基类无虚函数为隐藏。
8.计算结构体大小的规则
以占内存最大成员变量为宽度,其余的变量所占大小要能被最大的成员变量整除
最后加和大小要是最大成员变量的宽度倍数
9.由两种遍历二叉树的方式推出二叉树
规则,按照遍历方式的规则将二叉树逐步分解
10.堆和栈的区别、联系
在操作系统中:
堆(heap):由使用者申请,可申请的大小由操作系统的虚拟内存决定,申请效率慢
栈(stack):由系统直接分配,有系统栈空间限制,申请效率快
静态存储区域:在程序编译的时候分配,程序运行过程中一直存在,用于存放静态数据,全局数据和常量。
在数据结构中:
堆栈即指代栈这种先入后出的数据结构,由push、pop操作来操控
与堆栈相对的数据结构常指队列,队列内按照先入先出的规则(应用于二叉树层次遍历)
11.如何利用c语言直接跳转到指定的地址
首先理解一个类似于int *的数据类型 void (*)(void), 前者是指向整型数据类型的指针,后者是指向函数的指针(无参数无返回值)
(void (*)(void))0x10000000相当于把0x10000000强制转化为了函数类型指针,则最后只需要((void (*)(void))0x1000000)()执行
12.数据库的四大特性
原子性:数据库操作事务要么全部成功要么全部失败回滚
一致性:指的是数据库内事务从一个一致的形态到另一个一致的形态
隔离性:当多个用户访问数据库时,不能互相干扰,即多个并发事物之间需要隔离
持久性:一旦操作成功提交,对于数据库的改变是永久的,遇到故障也不会丢失操作。
13.单例模式的实现方式
单例模式概念:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例
实现方式:
a.一般的单例模式:声明一个静态私有的类变量,实现一个静态方法去判断该变量是否为NULL,若不是则实例化它
b.在多线程的情况下,在静态的类方法加上synchronized修饰,实现线程同步(懒汉单例)

#面试题目#
全部评论
很优秀,可以考虑字节跳动哦
点赞 回复 分享
发布于 2021-03-09 15:53

相关推荐

06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
05-11 11:48
河南大学 Java
程序员牛肉:我是26届的双非。目前有两段实习经历,大三上去的美团,现在来字节了,做的是国际电商的营销业务。希望我的经历对你有用。 1.好好做你的CSDN,最好是直接转微信公众号。因为这本质上是一个很好的展示自己技术热情的证据。我当时也是烂大街项目(网盘+鱼皮的一个项目)+零实习去面试美团,但是当时我的CSDN阅读量超百万,微信公众号阅读量40万。面试的时候面试官就告诉我说觉得我对技术挺有激情的。可以看看我主页的美团面试面经。 因此花点时间好好做这个知识分享,最好是单拉出来搞一个板块。各大公司都极其看中知识落地的能力。 可以看看我的简历对于博客的描述。这个帖子里面有:https://www.nowcoder.com/discuss/745348200596324352?sourceSSR=users 2.实习经历有一些东西删除了,目前看来你的产出其实很少。有些内容其实很扯淡,最好不要保留。有一些点你可能觉得很牛逼,但是面试官眼里是减分的。 你还能负责数据库表的设计?这个公司得垃圾成啥样子,才能让一个实习生介入数据库表的设计,不要写这种东西。 一个公司的财务审批系统应该是很稳定的吧?为什么你去了才有RBAC权限设计?那这个公司之前是怎么处理权限分离的?这些东西看着都有点扯淡了。 还有就是使用Redis实现轻量级的消息队列?那为什么这一块不使用专业的MQ呢?为什么要使用redis,这些一定要清楚, 就目前看来,其实你的这个实习技术还不错。不要太焦虑。就是有一些内容有点虚了。可以考虑从PR中再投一点产出
投递美团等公司9个岗位
点赞 评论 收藏
分享
评论
10
15
分享

创作者周榜

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