jottings~
一个无头无脑爱追星的人在某次面试所碰到的问题写了个破破烂烂的随笔~
封面安利~~哈哈哈哈哈
问题1:c++智能指针的作用,内部如何实现?
RAII(resource acquisition is initialization):资源获取即初始化
智能指针是行为类似于指针的类对象,内部依赖于模板类实现。
作用:自动管理内存的分配和释放,减少因为手动管理内存带来的错误。
实现原理:将new获得的地址赋给智能指针对象,在智能指针过期时会自动调用delete释放内存。
问题2:函数外的变量存放在哪?临时变量存放在哪?
c++管理数据内存的方式
自动存储(栈):
函数内部定义的变量(局部变量)使用自动存储空间,在函数调用时变量产生,函数结束变量消亡。
静态存储(堆中的静态内存区):
整个程序执行期间都存在的存储方式,静态变量(函数外定义、static修饰)。
动态存储(堆):
new、delete管理内存池,一个自由存储空间即堆,变量生命周期不受函数和程序生命周期控制。
问题3:进程间通信方式?线程间通信方式?
进程间通信:有名管道、无名管道、消息队列、共享内存、信号、信号灯集
线程间通信:同步(条件变量)、互斥(互斥锁)
问题4:tcp/ip七层模型
七层模型:应用层-表示层-会话层-传输层-网络层-数据链路层-物理层
tcp在传输层
tcp寻址方式:ip寻址,ip确定唯一物理机
问题5:在用户现场碰见程序崩溃重启后仍崩溃问题,如何快速定位问题点?
我的答案:核心转储,调试崩溃(有时无法看出具体问题)
貌似面试老师给我说了个啥,我没记住......
?大神们,你们都有哪些方法啊,求告知。
问题6:linux抓包tcpdump
tcpdump [option] [protocal] [dir] [type]
option:-c(限制抓包次数)
protocal:tcp/udp/icmp/ip/ip6/arp/ether/wlan
dir:src/dst
type:host/net/port(type后需要接参数)
问题7:Modbus有哪几种寄存器?
#1字节寄存器
线圈寄存器(01读线圈、05写单线圈、15写多线圈)、离散输入寄存器(02读线圈)
#2字节寄存器
保持寄存器(03读寄存器、06写单寄存器、16写多寄存器)、输入寄存器(04读寄存器)
问题8:一些范围
无符号整形数的范围-32767-32768
有符号整形数的范围0-65535
#64位系统/32位系统
char 1字节
int 4字节
short 2字节
long 8字节
float 4字节
double 8字节
unsigned int 4字节
char* 8字节/4字节
题外话:老师说了很多数据库,只了解Sqlite的我来说都没听过,更没用过...
so~~~~~
浅浅先知道一下存在的各类型数据库都有哪些叭~(后边再来学习用法吧)
关系型数据库:MySql/Oracle(商用)/PostgreSQL/Sqlite/MariaDB
文档型数据库:MongoDB/CouchDB
键值数据库:Redis/AmazonDynamoDB
列存储数据库:Apache Cassandra/HBash
图数据库:Neo4j/ArangoDB
时间序列数据库:InfluxDB/TimescaleDB
多模型数据库:Couchbase/OrientDB
国产数据库:OceanBase/TiDB/达蒙/羲和/人大金仓(Kingbase)/华为GaussDB