荣耀一面(互联网软件开发工程师)
1.项目都是实习的相关经验吗?
是,都是实习接触的
2.大学期间的一个比赛是做了什么?
xxxx
3.在学校成绩排名
xxxx
4.主修的语言是什么?Go还是C++,了解过java吗?
主要是Go,C++之前有学习和做过项目。
5.面向过程和面向对象的区别?
主要从使用角度来说吧,面向对象是直接去使用对象,不了解具体实现过程,面向过程会把实现过程作为中心,一步步的调用函数。
6.Go是自学的吗?自学的过程
先看一下语言的语法大概,然后写小demo,最后去学习一种框架的文档,写出实际需要的项目。
7.网上学习的网站有哪些?
官方文档、书籍
国外:stackoverflow
国内:博客园、掘金
8.C++ new和malloc的区别、
new和delete一起使用,new在申请的时候会初始化,不能改变申请空间的大小。
malloc和free使用,malloc在申请的时候只会返回一块内存空间,malloc可以改变申请空间的大小。
9.delete和free的区别是什么?
delete 是 C++ 中的一个操作符,可以进行重载;而 free 是 C 中的一个函数,不能进行重载;
free 只会释放指向的内存,不会执行对象的析构函数;delete 则可以执行对象的析构函数;
10.真正释放内存是用什么?
没理解面试官想问的,
真正释放内存应该是操作系统内部的内存管理?
11.C++内存模型
堆、栈、代码段、数据段
12.堆和栈的区别
堆主要是程序员自己空间内存的申请释放,栈主要是系统自动控制,程序员申请的内存一般都是在堆上,但也可能在栈上。栈由系统自动分配,速度较快。
13.重载和重写的区别是什么?
重载的方法名字相同,主要是传参和返回类型不同。
重写是传参返回类型相同,函数体不同。
14.链表和数组的区别是什么?
链表是非连续的,数组是连续的
15.插入删除操作的话谁更快?
链表,O(1)
16.判断链表是否存在环?
快慢指针
17.进程和线程的区别?
在系统里并没有实际区别,都有自己的PCB,但线程是轻量级的进程,只有堆栈寄存器和少量的资源。
18.线程有哪些状态?
(不知道说对没)
创建、阻塞、就绪、运行、终止
19.死锁的原因?
互斥、不可剥夺、占有且等待、循环
(最关键的互斥当时忘记了)
20.介绍一下网,七层网络模型或者四层网络模型
先介绍四层模型,然后拓展到七层模型。
21.TCP和UDP属于那一层?
传输层
22..TCP和UDP区别是什么?
TCP:三次握手、四次挥手、拥塞控制、流量控制、超时重传、
UDP:面向无连接、不保证可靠
22.微信是TCP还是UDP?
我回答了个UDP,因为我以前看QQ实现方法,我看人家说的消息是用的UDP,但下来看了看,微信消息发送应该是用TCP。
但其实感觉问这种问题就很奇怪,除非是去实际抓包,才能直接人家用的什么,不然光发消息,TCP和UDP不都有实现的方法嘛。
23.TCP的三次握手和四次挥手
24.HTTP和HTTPS的区别?是哪一层协议?
都是基于TCP的应用层协议,HTTP是超文本传输协议,是明文传输,存在安全风险,HTTPS使用了加密传输,多了一层TLS的握手过程
25.HTTPS是怎么加密的?
在建立通信前使用非对称加密,在通信过程中全部使用对称加密的方式加密明文数据。
26.为什么要采用两种加密方式
非对称加密使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢,在数据传输的时候需要考虑效率问题,所以改用堆成加密。
27.了解的设计模式有哪些?
工厂、代理、观察者、单例
28.静态代理和动态代理的区别是什么?
(纯不会,只知道一种代理模式,应该就是静态代理)
1、静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。
2、静态代理事先知道要代理的是什么,而动态代理不知道要代理什么东西,只有在运行时才知道。
29.工厂模式有几种?
简单工厂、抽象工厂、普通工厂
30.一般用什么方法解决Hash冲突
拉链法,开放地址法
31.map和set有什么区别?
(go里没有set)
C++中的map是存储KV,set只存储K
反问
回答的普普通通吧,面试官最后说让我注意官网手机号的流程更新,感谢我投递荣耀,我感觉应该是g了...
#荣耀##荣耀求职进展汇总#一些面经总结