当前位置: 首页 > news >正文

Vivo开奖了,劝退价。。

vivo 也开奖了,不过有小伙伴反馈是个劝退价,甚至不如隔壁的 oppo,要说这两家也是渊源颇深,一家是绿厂,一家是蓝厂,高管也都是早期步步高出来的。

给大家盘一下开奖的信息,方便大家横向做个对比,毕竟第一份工作真的很重要,不要让自己:

  • 硕士 211 研发岗 17k*15,base 上海,白菜,加上补贴 27万的年包
  • 末流双 985 研发岗总包 36 5% 的公积金
  • 硕士其他,也是 17k 的 base,安卓开发,还有 12 月的补贴(房补之类)
  • 硕士其他测试岗仍然是 17k 的 base,几乎和前面的安卓开发一模一样,说明 vivo 的内部定价系统是比较死板的
  • 本科 211 后端开发倒是开到了 18k,说明面评比较好。
  • 硕士 985 Java 后端 17k,纯粹的大白菜

接下来就给大家分享一个《Java 面试指南》中收录的同学 10 的 vivo 一面面经,来看看 vivo 的面试官都喜欢问哪些问题,好做到知彼知己,被面试官吊打,哦不,吊打面试官(dog)。

让天下所有的面渣都能逆袭

vivo 同学 10 一面面经

实习具体开发的功能是哪些

润了一下技术派作为实习项目。

1、整体前后端分离骨架的搭建,后端用的 Spring Boot+MyBatis-Plus+Redis+RabbitMQ,Admin 管理端用的 React,用户端用的 Thymeleaf。

2、使用 JWT + Session + Filter + AOP 完成用户登录和权限校验,支持微信扫码登录

3、作者使用 Markdown 发布教程、文章,图片会自动上传至 OSS 并使用 CDN 分发,用户可以点赞、收藏、评论,并且使用 RabbitMQ 进行异步消息处理

4、对接讯飞星火、智谱 AI、字节豆包、阿里通义、OpenAI 等多家大模型,完成派聪明 AI 助手功能的开发,使用了策略模式和工厂模式,新增模型时非常简单,并通过 WebSocket 和 Stream 流实现及时通信和消息一点一点输出的效果

5、使用 Redis 实现作者白名单和用户活跃榜单,并且对热点数据进行缓存,为了提高缓存效率减轻 Redis 压力,还增加了本地缓存 Caffeine 作为二级缓存

6、借助 xxl-job 实现文章定时发布,ES 实现快速高效的文章查询等等。

遇到的最深刻的问题,怎么解决的

遇到最深刻的一个问题是,如何解决高并发情况下,大量用户同时访问同一篇热点文章,在缓存未命中的情况下,大量请求会同时访问数据库,对 DB 造成极大的请求压力,很容易将我们的 MySQL 打宕机,进而影响整个服务,这个时候该怎么办?

一开始尝试通过 Redis 的 setIfAbsent(key,value,time)手动释放锁,但遇到了锁不能及时释放的问题、误释放别人的锁,以及过期时间的设置是否合理等问题。

最后还是通过引入 Redission 的看门狗算法进行解决,这样就可以一劳永逸了,不过手动尝试的方式的确也让我对看门狗算法有了一个更深入更直接的了解,它的内部实现也是按照我之前手动的逻辑实现的,起一个定时任务,每 10 秒检查一下锁是否释放,如果没有释放就延长至 30 秒。

什么是序列化,什么是反序列化

序列化(Serialization)是指将对象转换为字节流的过程,以便能够将该对象保存到文件、数据库,或者进行网络传输。

反序列化(Deserialization)就是将字节流转换回对象的过程,以便构建原始对象。

三分恶面渣逆袭:序列化和反序列化

怎么删除/创建一张表和设定主键

在 MySQL 中,我们可以使用 DROP TABLE 来删除表,使用 CREATE TABLE 来创建表并设定主键。创建表时,可以在定义列的同时设置某一列为主键,如将 id 列设为主键:PRIMARY KEY (id)。

CREATE TABLE users (id INT AUTO_INCREMENT,name VARCHAR(100) NOT NULL,email VARCHAR(100),PRIMARY KEY (id)
);

索引,索引优化举例,为什么使用索引更快

数据库文件是存储在磁盘上的,磁盘 I/O 是数据库操作中最耗时的部分之一。没有索引时,数据库会进行全表扫描(Sequential Scan),这意味着它必须读取表中的每一行数据来查找匹配的行(时间效率为 O(n))。当表的数据量非常大时,就会导致大量的磁盘 I/O 操作。

有了索引,就可以直接跳到索引指示的数据位置,而不必扫描整张表,从而大大减少了磁盘 I/O 操作的次数。

MySQL 的 InnoDB 存储引擎默认使用 B+ 树来作为索引的数据结构,而 B+ 树的查询效率非常高,时间复杂度为 O(logN)。

索引文件相较于数据库文件,体积小得多,查到索引之后再映射到数据库记录,查询效率就会高很多。

索引就好像书的目录,通过目录去查找对应的章节内容会比一页一页的翻书快很多。

三分恶面渣逆袭:索引加快查询远离

索引优化举例?

在实际开发中,我们可以通过合理使用单字段索引、复合索引和覆盖索引来优化查询。例如,如果要加速查询 age 字段的条件,我们可以在 age 字段上创建索引。

CREATE INDEX idx_age ON users(age);

如果查询涉及多个字段 age 和 name,可以使用复合索引来提高查询效率。

CREATE INDEX idx_age_name ON users(age, name);

当我们只需要查询部分字段时 SELECT name FROM users WHERE age = 30;,覆盖索引可以提升查询效率。

CREATE INDEX idx_age_name ON users(age, name);

由于 age 和 name 字段都在索引中,MySQL 直接从索引中获取结果,无需回表查找。

事务的概念

事务是一个或多个 SQL 语句组成的一个执行单元,这些 SQL 语句要么全部执行成功,要么全部不执行,不会出现部分执行的情况。主要作用是保证数据库操作的一致性。

事务具有四个基本特性,也就是通常所说的 ACID 特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

三分恶面渣逆袭:事务四大特性

举例用sql实现升序降序

在 SQL 中,可以使用 ORDER BY 子句来对查询结果进行升序或降序排序。默认情况下,查询结果是升序排序,也可以通过 DESC 关键字进行降序排序。

例如,如果我想对 employees 表中的数据按工资升序排序,我会使用:

SELECT id, name, salary
FROM employees
ORDER BY salary ASC;

此外,如果我需要根据多个字段进行排序,例如先按工资降序排列,再按名字升序排列,我可以使用:

SELECT id, name, salary
FROM employees
ORDER BY salary DESC, name ASC;

Java中的集合有哪些

Java 集合框架可以分为两条大的支线:

①、Collection,主要由 List、Set、Queue 组成:

  • List 代表有序、可重复的集合,典型代表就是封装了动态数组的 ArrayList 和封装了链表的 LinkedList;
  • Set 代表无序、不可重复的集合,典型代表就是 HashSet 和 TreeSet;
  • Queue 代表队列,典型代表就是双端队列 ArrayDeque,以及优先级队列 PriorityQueue。

②、Map,代表键值对的集合,典型代表就是 HashMap。

二哥的 Java 进阶之路:Java集合主要关系

线程的概念,线程有哪些状态

线程是操作系统中调度的最小单位,它是进程中的独立执行单元。多个线程可以共享同一个进程的资源,如内存和文件句柄,但每个线程都有自己独立的栈和寄存器。与进程相比,线程的创建和上下文切换开销更小,因此在需要并发执行任务时,多线程是一种常用的解决方案。

三分恶面渣逆袭:进程与线程关系

在编程中,多线程的典型应用包括并行处理、I/O 操作、并发服务器等场景。每个线程都有自己的生命周期,包括新建、就绪、运行、阻塞和终止。

说一下GC,有哪些方法

垃圾回收(Garbage Collection,GC)就是对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。

JVM 在做 GC 之前,会先搞清楚什么是垃圾,什么不是垃圾,通常会通过可达性分析算法来判断对象是否存活。

二哥的 Java 进阶之路:可达性分析

在确定了哪些垃圾可以被回收后,垃圾收集器(如 CMS、G1、ZGC)要做的事情就是进行垃圾回收,可以采用标记清除算法、复制算法、标记整理算法、分代收集算法等。

了解哪些设计模式,开闭原则

单例模式、策略模式和工厂模式。

在需要控制资源访问,如配置管理、连接池管理时经常使用单例模式。它确保了全局只有一个实例,并提供了一个全局访问点。

在有多种算法或策略可以切换使用的情况下,我会使用策略模式。像技术派实战项目中,我就使用策略模式对接了讯飞星火、OpenAI、智谱 AI 等多家大模型,实现了一个可以自由切换大模型基座的智能助手服务。

技术派派聪明 AI 助手

策略模式的好处是,不用在代码中写 if/else 判断,而是将不同的 AI 服务封装成不同的策略类,通过工厂模式创建不同的 AI 服务实例,从而实现 AI 服务的动态切换。

后面想添加新的 AI 服务,只需要增加一个新的策略类,不需要修改原有代码,这样就提高了代码的可扩展性。

什么是开闭原则?

开闭原则(Open-Closed Principle, OCP),指软件实体应该对扩展开放,对修改关闭。这意味着一个类应该通过扩展来实现新的功能,而不是通过修改已有的代码来实现。

举个例子,在不遵守开闭原则的情况下,有一个需要处理不同形状的绘图功能类。

class ShapeDrawer {public void draw(Shape shape) {if (shape instanceof Circle) {drawCircle((Circle) shape);} else if (shape instanceof Rectangle) {drawRectangle((Rectangle) shape);}}private void drawCircle(Circle circle) {// 画圆形}private void drawRectangle(Rectangle rectangle) {// 画矩形}
}

每增加一种形状,就需要修改一次 draw 方法,这违反了开闭原则。正确的做法是通过继承和多态来实现新的形状类,然后在 ShapeDrawer 中添加新的 draw 方法。

// 抽象的 Shape 类
abstract class Shape {public abstract void draw();
}// 具体的 Circle 类
class Circle extends Shape {@Overridepublic void draw() {// 画圆形}
}// 具体的 Rectangle 类
class Rectangle extends Shape {@Overridepublic void draw() {// 画矩形}
}// 使用开闭原则的 ShapeDrawer 类
class ShapeDrawer {public void draw(Shape shape) {shape.draw();  // 调用多态的 draw 方法}
}

内容来源

  • 星球嘉宾三分恶的面渣逆袭:https://javabetter.cn/sidebar/sanfene/nixi.html
  • 二哥的 Java 进阶之路(GitHub 已有 12000+star):https://javabetter.cn

相关文章:

Vivo开奖了,劝退价。。

vivo 也开奖了,不过有小伙伴反馈是个劝退价,甚至不如隔壁的 oppo,要说这两家也是渊源颇深,一家是绿厂,一家是蓝厂,高管也都是早期步步高出来的。 给大家盘一下开奖的信息,方便大家横向做个对比&…...

鸿蒙打包hvigorw clean报错No npmrc file is matched in the current user folder解决

问题 在执行hvigorw clean等命令时,报错如下: Error: The hvigor depends on the npmrc file. No npmrc file is matched in the current user folder. Configure the npmrc file first解决方案 在用户当前目录下新建.npmrc文件,并配置如下…...

无人机救援系统基本组成

无人机救援系统基本组成 1. 源由2. 组成2.1 无人机载具2.1.1 多旋翼2.1.2 垂起固定翼2.1.3 智能避障2.1.4 物资投递 2.2 智能吊舱2.2.1 云台2.2.2 高清摄像2.2.3 红外热成像2.2.4 激光测距2.2.5 目标跟踪 2.3 通讯链路2.3.1 超长距离通信2.3.2 长距离通信2.3.3 中等距离通信 2.…...

git入门教程

git入门教程1:git简介git入门教程2:git发展历史git入门教程3:安装配置git入门教程4:git工作流程git入门教程5:git仓库操作git入门教程6:git基本版本控制git入门教程7:git与远程仓库的交互git入门…...

AMBA:AHB_Slave_Mux的解析与HREADY、HREADYOUT

相关阅读 AMBAhttps://blog.csdn.net/weixin_45791458/category_12800219.html?spm1001.2014.3001.5482 简介 从1999年的AMBA2发布以来,AHB协议中就存在数据选择器,如图1所示的AHB2协议的总线互连。 图1 AHB2的总线互连 这幅图画得比较粗糙&#xff0…...

初始Linux (2) : 权限

1. su [用户名]及权限概念 Linux中有两种用户:普通用户、超级用户 超级用户可以再 linux 系统下做任何事情,不受限制;而普通用户只能做有限的事情。 可以使用指令:su -快速进入root账户,但需要输入相关密码。 超级用…...

在Mac下安装时间序列软件Hector

1.软件介绍 Hector 是一款开源软件,专用于 GNSS 时间序列数据的处理与分析,广泛应用于地球科学研究。它帮助研究人员从 GNSS 数据中提取长期趋势、周期性成分,并建模噪声特性,用于地壳形变、地震影响和气候变化等方面的研究。Hec…...

JVM1.8内存模型

一、内存模型概览 本文介绍的是JDK1.8的内存模型。1.8同1.7相比,最大的差别就是元空间取代了永久代。元空间的本质和永久代类似,都是堆JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不存在虚拟机中,而是…...

windows C#-类型系统(上)

C# 是一种强类型语言。 每个变量和常量都有一个类型,每个求值的表达式也是如此。 每个方法声明都为每个输入参数和返回值指定名称、类型和种类(值、引用或输出)。 .NET 类库定义了内置数值类型和表示各种构造的复杂类型。 其中包括文件系统、网络连接、对象的集合和…...

【酷狗音乐】逆向登录参数分析

mid、uuid参数 从cookie里面取值kg_mid,没有就生成 dfid也是从cookie里面取的kg_dfid 清空cookie dfid "-"也是可以的 md5加密了一个随机uuid import uuid import hashlibuuid1 str(uuid.uuid4())def md5_encrypt(text):return hashlib.md5(text.enco…...

Jenkins面试整理-Jenkins Pipeline 是什么?

Jenkins Pipeline 是一种将 Jenkins 中的持续集成和持续交付(CI/CD)流程定义为代码的方式。Pipeline 提供了一种灵活、可维护的方式,通过脚本来描述构建、测试、部署等流程。Jenkins Pipeline 使用 Groovy 作为脚本语言,并可以通过 Jenkinsfile 来定义和管理流水线。 Jenki…...

RHCE第三次实验

要求 (1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。 ​ (2)访问缴费网站实现数据加密基于https访问。 架设一台NFS服务器,并按照以下要求配置 1、开放/nfs/shared目录,供所…...

基于LORA的一主多从监测系统_4G模块上巴法云

临时添加一个更新,更换云平台为巴法云,事情的起因是因为阿里云这个老六,早上睡了一觉起来发短信告诉我云平台给我停了,得交钱,好嘛,不过也没办法现在这基本都收费,当然还有onenet可以用&#xf…...

pip使用

pip全称pip install package,是python第三方包sitepackage管理的工具,安装,卸载第三方包。安装python时可以选择安装pip,或自己安装pip 查看pip是否安装:pip --version 安装pip :pip python -m pip install --upgrade…...

Django ORM详解:外键使用(外键逻辑关联)与查询优化

Django数据库迁移 # 创建迁移 python manage.py makemigrations your_app_name # 应用迁移 python manage.py migrate # 查看迁移状态 python manage.py showmigrations # 回滚迁移 python manage.py migrate your_app_name 0001 # 修改表后,删除迁移记录和表删除迁移记录后重…...

【Python】实战:使用input()从键盘获取一个字符串,判断这个字符串在列表中是否存在(函数体不能使用in),返回结果为True或False

使用input()从键盘获取一个字符串,判断这个字符串在列表中是否存在(函数体不能使用in),返回结果为True或False def exists_in_list(input_string, str_list):# 遍历列表中的每个元素for item in str_list:if item input_string: # 如果当前元素等于输…...

【YApi】接口管理平台

一、简介 YApi 是一个用于前后端开发团队协作的 API 管理平台,帮助团队更加高效地进行 API 接口的设计、测试、文档管理和版本控制等工作。 YApi 主要功能: API 设计和管理:提供 API 设计和文档生成工具,使开发者能够轻松创建、…...

QNAP威联通NAS忘记密码怎么办?

创作立场:原创不易,拒绝搬运~ hello 大家好,我是你们的老伙伴,稳重的大王~ 如题:在使用QNAP 威联通NAS期间,如果忘记密码,怎么去找回密码呢? 每台QNAP 威联通NAS,在机器…...

MySQL FIND_IN_SET 函数详解

文章目录 1. 基本语法2. 使用场景3. 实战示例3.1 基础查询示例3.2 与其他函数结合使用3.3 动态条件查询 4. 性能考虑5. 常见问题和解决方案5.1 大小写敏感问题5.2 空值处理5.3 模糊匹配 6. 总结 1. 基本语法 FIND_IN_SET 函数的基本语法如下: FIND_IN_SET(str, st…...

【零售和消费品&厨房】厨房食材检测图像分割系统源码&数据集全套:改进yolo11-goldyolo

改进yolo11-RepNCSPELAN等200全套创新点大全:厨房食材检测图像分割系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.30 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系…...

自制田字格word

背景 孩子上小学要开始学认字了,每周有好多字要打印,要是直接拿一张A4纸去打印,字的排版就显得尤为重要,排过来排过去,总感觉不够正式。就想去网上搜一个可以下载的田字格模板。某度搜了半天,倒是搜到一堆…...

微软官方 .NET 混淆软件 Dotfuscator

微软官方 .NET 混淆软件 Dotfuscator 1、前言2、Dotfuscator 特色2.1、强大的保护2.2、不需要顾问2.3、世界一流的支持2.4、广泛的平台支持 3、Dotfuscator 功能介绍3.1、.NET Obfuscator3.2、篡改防御和提示3.3、监控性能和使用情况3.4、Silverpght XAML Obfuscatio3.5、WPF B…...

19 Docker容器集群网络架构:二、etcd 集群部署

文章目录 Docker容器集群网络架构:二、etcd集群离线部署2.1 准备工作2.1.1 上传etcd2.1.2 解压etcd2.1.3 拷贝文件到/usr/local/bin2.1.4 创建相关目录并赋权2.2 创建etcd集群2.2.1 创建etcd配置文件2.2.2 配置etcd服务文件2.2.3 启动ectd服务2.3 查看etcd集群成员2.3.1 查看e…...

React + SpreadJS 开发时常见问题

在使用React与SpreadJS进行开发时,可能会遇到各种各样的问题。以下是一些常见的问题及其解决建议: 1. SpreadJS初始化失败 问题描述: 有时候SpreadJS的初始化可能会失败,特别是在React组件的生命周期内不当的初始化时机。 解决…...

docker 调用宿主机实现关机

Docker调用宿主机关机命令或调用宿主机程序,这涉及到了Docker容器与宿主机之间的通信和资源共享技术。具体来说,这种技术或通讯方式主要通过以下几种方法实现: 一、使用数据卷 Docker允许使用-v或--volume选项将宿主机上的目录或文件挂载到…...

51单片机--- 16*32点阵滚动显示

实验目标:51单片机驱动74LS183控制16*32点阵滚动显示 实验步骤: 在Proteus里画出原理图 在Keil里用C语言编写程序 在Proteus中导入HEX文件,启动仿真 74LS138 简介...

渗透测试-百日筑基—文件上传篇特征截断渲染%00绕过——下篇

目录 day10-渗透测试文件上传篇&绕过&特征&截断&渲染 一、黑名单大小写绕过代码分析 1、获取文件后缀名进行判断,如果后缀在这个字典里就禁止上传。 2、黑名单大小写绕过攻击 二、利用 windows 系统特征绕过上传 1、windows 系统特征绕过漏洞…...

深度学习基础—循环神经网络(RNN)

引言 从本系列博客开始,我们将来一起学习一下NLP领域的相关基础知识,NLP领域重要的模型是RNN,在此之前,先来了解一些符号的含义。 1.符号定义 (1)符号定义 假设建立一个能够自动识别句中人名位置的序列模型…...

一二三应用开发平台自定义查询设计与实现系列2——查询方案功能实现

查询方案功能实现 上面实现了自定义查询功能框架,从用户角度出发,有些条件组合可以形成特定的查询方案,对应着业务查询场景。诸多查询条件的组合,不能每次都让用户来设置,而是应该保存下来,下次可以直接使…...

Redis 集群 问题

前言 相关系列 《Redis & 目录》《Redis & 集群 & 源码》《Redis & 集群 & 总结》《Redis & 集群 & 问题》 什么是Redis集群?为什么要集群?Redis集群的优/缺点是什么? Redis集群是指将多台Redis实例进行协…...