24校招,忆恒创源测试开发工程师一面(上)

大家好,我是chowley,今天回顾一下,我之前参加Memblaze的面试,英文题给我干麻了

部门:长三角区域

时间:40min

平台:腾讯会议

过程

  1. 自我介绍
  2. 英文自我介绍
  3. 前两段实习时间很短,为什么?
  4. 你们需要用python写脚本吗?
  5. CI/CD用的gitlab、devops、jenkins
  6. docker用的多吗?
  7. 你知道SSD HOD(机械硬盘)之间的区别吗? ● 容量:机械硬盘一般在1T左右,而固态硬盘一般会用的容量125G或者250G。 ● 重量、体积:固态硬盘要更轻、体积更小。 ● 功耗:固态硬盘的功耗也要低于机械硬盘。 ● 防震抗摔型:机械硬盘都是磁碟型的,数据储存在磁碟扇区里。而固态硬盘是使用闪存颗粒制作而成,内部不存在任何机械部件,因此在发生碰撞和震荡时能够将数据丢失的可能性降到最小。 ● 价格:固态硬盘的价格要比机械硬盘高出许多。 ● 噪音:固态硬盘运行基本无噪音,而机械硬盘的噪声相对明显。
  8. 为啥SSD I/O更快? 固态硬盘是从存储单元里读写数据,HDD 是机械的,磁头从盘片上读写数据,电子的当然比机械的快。 同时HDD是靠机械的磁头在盘片上读写数据,要经过寻道读写等过程,都需要时间,而ssd 是通过电路选择存储位置进行读取,电的速度是非常快的,所以ssd比hdd更快。
  9. 学校的项目是咋来的?
  10. 开发项目
  11. 比赛
  12. python面向对象还是面向过程? Python有很多面向对象的特性,例如类、对象、继承、多态、封装等等。 Python也有很多面向过程的特性,例如函数、变量、流程控制、模块等等。 Python甚至允许在一个程序中混合使用不同的范式,例如在一个类中定义函数,在一个函数中创建对象等等。 因此,我们不能简单地说Python是面向对象的还是面向过程的,而应该说Python是既可以面向对象又可以面向过程的。
  13. 面向对象的三大基本特征?啥意思? 面向对象的三大基本特征是封装、继承和多态。
  • 封装(Encapsulation):封装是指将数据(属性)和行为(方法)封装在类中,并对外部提供访问接口。通过封装,可以隐藏对象的内部状态,只允许通过对象的方法来访问和修改内部状态,从而保证数据的安全性和一致性。
  • 继承(Inheritance):继承是指一个类(子类)可以继承另一个类(父类)的属性和方法。子类可以在不修改父类的情况下增加新的功能或修改已有的功能。通过继承,可以实现代码的重用和扩展。
  • 多态(Polymorphism):多态是指同一个方法在不同的对象上有不同的表现形式。在面向对象的程序设计中,多态是指通过父类或接口的引用,调用子类的方法,不同子类实例可以具有不同的行为。多态可以提高代码的灵活性和可扩展性。
  1. Python中常用的数据结构? 包括列表(list)、元组(tuple)、集合(set)和字典(dict)等。其中,列表和元组是有序的数据结构,集合是无序的数据结构,字典是键值对的数据结构。

  2. 列表和元组的区别:

    • 列表是可变的(mutable),可以通过索引修改、添加、删除元素;而元组是不可变的(immutable),一旦创建就不能修改。
    • 列表使用方括号([])来表示,元素之间用逗号分隔;元组使用圆括号(())来表示,元素之间也用逗号分隔。
    • 列表适合存储有序的集合,元组适合作为不可变的数据记录。
  3. 遍历字典的方法: 遍历字典可以使用for循环,通过遍历字典的键或键值对来访问字典的元素。

    • 遍历键:使用字典的keys()方法获取所有键,然后通过for循环遍历键,再通过键访问对应的值。

      for key in my_dict.keys():
       print(key, my_dict[key])
      
    • 遍历键值对:直接使用for循环遍历字典的items()方法返回的键值对元组。

      for key, value in my_dict.items():
       print(key, value)
      
  4. 深拷贝和浅拷贝: 深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在复制对象时可能遇到的概念。

    浅拷贝只复制对象的引用,如果对象中包含可变对象(如列表、字典等),则复制后的对象仍然与原对象共享这些可变对象。浅拷贝可以使用copy模块的copy()方法实现。

    import copy
    list1 = [1, 2, [3, 4]]
    list2 = copy.copy(list1)  # 浅拷贝
    list1[2][0] = 5
    print(list1)  # [1, 2, [5, 4]]
    print(list2)  # [1, 2, [5, 4]]
    

    深拷贝会递归地复制对象及其包含的所有可变对象,新对象与原对象完全独立。深拷贝可以使用copy模块的deepcopy()方法实现。

    import copy
    list1 = [1, 2, [3, 4]]
    list2 = copy.deepcopy(list1)  # 深拷贝
    list1[2][0] = 5
    print(list1)  # [1, 2, [5, 4]]
    print(list2)  # [1, 2, [3, 4]]
    

    在实际应用中,根据需要选择浅拷贝还是深拷贝来确保程序的正确性和效率。

总结

难度:3.5/5,都是常见面试题

面试官专业程度:专业,但是小姐姐顺着我简历上的链接,把我之前的文章全看了,还问我是不是来刷经验的。。

体验打分:3.5/5,除了英文自我介绍,hr也没提前通知我,没准备成尬聊了

后半段见下篇博客

好了,以上就是本文的全部内容,如有问题可留言讨论。

本人正在组建校招测试开发方向的交流社区,如果您对测试求职方面感兴趣,欢迎加入了解。

我是chowley,一个专注互联网技术和产品质量保障领域的博主,我们下次再见!

欢迎点赞、评论、收藏,it's important for me.

Searching for QALog.

#软件开发2024笔面经##测试开发##春招##面试#
chowley的校招历程 文章被收录于专栏

记录了chowley在24校招的技术面试全过程

全部评论

相关推荐

10-18 22:26
门头沟学院 Java
wzkk111:满帮海外业务是集团的重点项目,投入很大的,也在大量招人,一两年应该是没啥问题的,两年的时候你差不多也该跑路了。跳槽的话,毕业两三年跳槽主要还是看学历和技术,背书的话,其实总部也一般,面大厂的时候基本没咋听说过。满帮技术算是互联网的通用技术,部分基建还是挺好的。加班大概是995,但有些组的话甚至到10点多
offer帮选
点赞 评论 收藏
分享
评论
13
29
分享

创作者周榜

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