⭐️vivo 2024 校招面经,很简单
vivo 2024 校招已经开奖了,今年给的确实不多,base 相对大厂有点太低了:
- Java 开发:17*15,南京,白菜价
- 软开:20*15,深圳,SP
- 测开:15*15,上海,白菜价
- 后端:17*15,深圳,白菜价
- 算法:24 * 15,深圳,SP
因为薪资给的确实有点低,很多拿到 offer 的朋友都拒了,多少都觉得这薪资有点...。
下面,给大家分享一位读者面试 vivo Java 岗位的面经,大家感受一下难度。
面试题
八股较多,但都偏基础,难度较低。
我对一二面提到的部分有代表性的面试问题进行了整理,并添加了参加答案供大家复习参考。
1、自我介绍
一个好的自我介绍应该包含这几点要素:
- 用简单的话说清楚自己主要的技术栈于擅长的领域,例如 Java 后端开发、分布式系统开发;
- 把重点放在自己的优势上,重点突出自己的能力比如自己的定位的 bug 的能力特别厉害;
- 避免避实就虚,适当举例体现自己的能力,例如过往的比赛经历、实习经历;
- 自我介绍的时间不宜过长,一般是 1~2 分钟之间。
2、介绍自己的实习经历,做了什么,学到了什么
如果你有实习经历的话,自我介绍之后,第二个问题一般就是聊你的实习经历。面试之前,一定要提前准备好对应的话术,突出介绍自己实习期间的贡献。
很多同学实习期间可能接触不到什么实际的开发任务,大部分时间可能都是在熟悉和维护项目。对于这种情况,你可以适当润色这段实习经历,找一些简单的功能研究透,包装成自己参与做的,大部分同学都是这么做的。不用担心面试的时候会露馅,只要不挑选那种明显不会交给实习生做的任务,你自己也能讲明白就行了。不过,还是更建议你在实习期间尽量尝试主动去承担一些开发任务,这样整个实习经历对个人提升也会更大一些。
3、重载和重写什么区别?项目中用到了吗?
重写就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变。
| 区别点 | 重载方法 | 重写方法 |
|---|---|---|
| 发生范围 | 同一个类 | 子类 |
| 参数列表 | 必须修改 | 一定不能修改 |
| 返回类型 | 可修改 | 子类方法返回值类型应比父类方法返回值类型更小或相等 |
| 异常 | 可修改 | 子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等; |
| 访问修饰符 | 可修改 | 一定不能做更严格的限制(可以降低限制 ) |
| 发生阶段 | 编译期 | 运行期 |
4、构造方法可以有多个吗?能被重写吗?
构造方法具有以下特点:
- 名称与类名相同:构造方法的名称必须与类名完全一致。
- 没有返回值:构造方法没有返回类型,且不能使用
<font style="color:rgb(59, 69, 78);">void</font>声明。 - 自动执行:在生成类的对象时,构造方法会自动执行,无需显式调用。
构造方法不能被重写(override),但可以被重载(overload)。因此,一个类中可以有多个构造方法,这些构造方法可以具有不同的参数列表,以提供不同的对象初始化方式。
5、接口和抽象类如何选择?为什么?
接口和抽象类的共同点
- 实例化:接口和抽象类都不能直接实例化,只能被实现(接口)或继承(抽象类)后才能创建具体的对象。
- 抽象方法:接口和抽象类都可以包含抽象方法。抽象方法没有方法体,必须在子类或实现类中实现。
接口和抽象类的区别
- 设计目的:接口主要用于对类的行为进行约束,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调的是所属关系。
- 继承和实现:一个类只能继承一个类(包括抽象类),因为 Java 不支持多继承。但一个类可以实现多个接口,一个接口也可以继承多个其他接口。
- 成员变量:接口中的成员变量只能是
<font style="color:rgb(59, 69, 78);">public static final</font>类型的,不能被修改且必须有初始值。抽象类的成员变量可以有任何修饰符(<font style="color:rgb(59, 69, 78);">private</font>,<font style="color:rgb(59, 69, 78);">protected</font>,<font style="color:rgb(59, 69, 78);">public</font>),可以在子类中被重新定义或赋值。 - 方法:
- Java 8 之前,接口中的方法默认是
<font style="color:rgb(59, 69, 78);">public abstract</font>,也就是只能有方法声明。自 Java 8 起,可以在接口中定义<font style="color:rgb(59, 69, 78);">default</font>(默认) 方法和<font style="color:rgb(59, 69, 78);">static</font>(静态)方法。 自 Java 9 起,接口可以包含<font style="color:rgb(59, 69, 78);">private</font>方法。 - 抽象类可以包含抽象方法和非抽象方法。抽象方法没有方法体,必须在子类中实现。非抽象方法有具体实现,可以直接在抽象类中使用或在子类中重写。
- Java 8 之前,接口中的方法默认是