2021/01/27 字节跳动测试开发岗 一面总结

1.   自我介绍;

2.   介绍一个最近在做的项目,问了和项目相关的一些问题;参与了哪些开发工作;

问了我最熟悉哪个语言,我说了C。

3.   C语言的内存管理,分区,存储

内存中供用户使用的存储空间可分为程序区、动态存储区和静态存储区。

程序存储空间

程序区

全局数据区      ----------静态存储区

堆区、栈区      ----------动态存储区

        程序区是用来存放程序代码,动态和静态存储区用来存放数据,即数据与处理数据的程序是分离的。

        静态存储区即全局数据区,存放全局数据和静态数据;

        动态存储区又分为堆区和栈区。堆区用来存放程序的动态数据,栈区用来存放程序的局部数据,即各个函数中的数据。

       动态存储是指存储一些数据的存储单元可在程序运行的不同时间分配给不同的数据;而静态存储是指存储单元是在程序运行的整个过程中固定地分配给某些数据。

4.   static的作用:

static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。 

参考:https://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html

C++的static性质:https://www.cnblogs.com/jiangyu0331/p/11643814.html

5. const的作用:

常量一旦被创建后其值就不能再改变,常量必须在定义的同时赋值(初始化),后面的任何赋值行为都将引发错误(它的值在整个作用域中都保持固定)。

可参考:https://blog.csdn.net/u010159842/article/details/51364221

6.怎么避免内存泄漏?

new 和 malloc 的一定要一一对应的delete和free掉;

7.什么是面向对象,多态是什么?

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。

特点:

①封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
②继承
提高代码复用性;继承是多态的前提。
③多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。

(允许将子类类型的指针赋值给父类类型的指针/父类型的引用指向子类型的对象)。

有两个好处:

1)应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承 
2)派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,

8.sql常用的索引

主键、唯一、普通、全文、组合

https://blog.csdn.net/weixin_46163590/article/details/106047978

9.事务的四个特点:

所谓事务就是针对数据库的一组操作,它可以由一条或者多条SQL语句组成,同一个事务的操作具备同步的特点,如果其中有一条语句不能执行的话,那么所有的语句都不会执行,也就是说,事务中的语句要么都执行,要么都不执行。

事务操作具有严格的定义,它必须满足ACID:

ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

(1)原子性: 原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。

(2)一致性:一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。

(3)隔离性:隔离性是指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被企图进行修改的事务看到 。

(4)持久性:持久性是指在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。 即使出现了任何事故比如断电等,事务一旦提交,则持久化保存在数据库中。

参考:https://www.cnblogs.com/hebao0514/p/5490698.html

9.左连接与右连接

左连接:left join 左边的表为主表,查询结果为主表的全部内容,若从表有和主表匹配的,则显示匹配的行,若没有匹配,则显示NULL;

右连接:right join 右边的表为主表,和左连接实现的功能相同。

10.sql 语句:

姓名   课程    分数

张三    语文    81

张三    数学    70

张三    英语     80

李四   ...          ...

...

查询:每个课程都>80分的学生姓名

法一:select name from students where score>80 group by name having count(*)=3;

法二:select name from students group by name having min(score)>80;

法三:select distinct name from students where name not in(

select distinct name from students where score<80);

11.矩阵顺时针旋转90°

输入:

1   2    3    4

5   6    7    8

9   10   11   12

13   14   15  16

输出:

13   9   5    1

14   10    6    2

......

解:先转置再做列交换。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值