双非本科一年20w,已是人中龙凤了

大家好,我是白露啊。

双非本科一年20w已经是人中龙凤了”……吗?

牛客上刷到这条帖子,我一开始以为是一个钓鱼、引战贴。看完才觉得他说的很对,现在在求职选择工作的时候,网上都觉得得40万、50万,但当真没必要那么焦虑,因为那毕竟是少数

img

各位同学,不要被牛客、脉脉等论坛上“公布”的薪资给打击到了,觉得20w以上的工资随手可得,但是轮到自己找工作的时候一塌糊涂。

首先,现在的工作形势确实不好,这是大环境所导致的。时代的一粒尘埃,落在我们的身上,就是一座上。

现在就业形势差到什么地步?连字节跳动准入职的同学都开始吐槽工资低了:

img

还有很多同学现身说法:

img

img

还有同学说的更“直接”:

img

在这里,我也想和大家分享一下我的经历。

我来自农村,靠着自己的努力考上了985大学。

后面,我又选择继续读研,积累了更多的知识和实践经验,终于在毕业后成功进入大厂工作。

这段经历让我明白,奋斗的过程可能会很艰辛,但只要坚持不懈,总会有回报

其实不管是双非还是其他学校,不是每个人都能轻松拿到20w以上的薪水,但通过不断提升和积累,才会有可能拿到更高的工资。

希望大家可以找到适合自己的职业路径,不断提升自己,实现职业梦想。今天我们就看一篇字节跳动国际电商的面试,如果不想看,可以直接跳转到文末,有惊喜哦~

字节跳动-国际电商

面试官: 欢迎参加字节跳动国际电商后端开发的面试。我先简单介绍一下我们的部门。我们主要负责国际市场的电商平台开发和运营,包括商品管理、订单处理、支付系统等模块*****。现在请你介绍一下你做过的项目,特别是短链接这个项目?

求职者: 当然。短链接项目是我在实习期间参与的一个项目。我们的目标是为公司内部和外部的营销活动提供短链接服务,以提高链接的易用性和追踪效果。项目背景是我们发现长链接在分享和传播过程中不够方便,也不易于统计点击数据。为了解决这个问题,我们设计并实现了一个短链接生成和管理系统。

面试官: 短链接存储和生成的原理是什么?

求职者: 对于短链接的存储,我们使用Redis作为主要的存储数据库,因为它提供了高性能和持久化的特性。每个短链接和长链接的映射关系都存储在Redis中。短链接的生成,我们采用了哈希算法,将长链接哈希成一个较短的字符串。同时,为了避免冲突,我们会检查生成的短链接是否已存在,如果存在,则进行一定的调整。

面试官: 短链接如何实现跳转到长链接?

求职者: 当用户访问短链接时,我们的服务会先从Redis中查询短链接对应的长链接。如果查找成功,服务会返回一个HTTP 302重定向响应,将用户的浏览器重定向到长链接指向的地址。这个过程对用户来说是透明的。

面试官: 如果某个短链接成为热key,你们是如何解决的?

求职者: 面对热key问题,我们采取了几种策略。首先是使用本地缓存来缓解对Redis的访问压力,对于高频访问的短链接,我们会将其长链接缓存到应用服务器的内存中。此外,我们还采用了负载均衡和读写分离的策略来提高系统的可用性和扩展性。

面试官: 本地缓存和Redis的区别是什么?

求职者: 本地缓存是存储在应用服务器内存中的缓存,访问速度非常快,但是只能被单个服务器访问,不具备数据共享能力。而Redis是一个分布式的内存数据库,可以被多个服务器共享访问,支持数据的持久化和复制。本地缓存适合存储热数据和会话信息,Redis适合作为共享数据存储和实现高效的数据访问。

面试官: 使用本地缓存HashMap时,用什么来保证线程安全?

求职者: 使用HashMap作为本地缓存时,我们可以通过ConcurrentHashMap来保证线程安全。ConcurrentHashMap是Java提供的一个线程安全的HashMap实现,它通过分段锁的机制来减少锁的竞争,从而提高并发访问的性能。

面试官: ConcurrentHashMap是怎么保证线程安全的?

求职者: ConcurrentHashMap通过将内部数据分割成多个段(Segment),每个段独立加锁,实现了高效的并发访问控制。当进行插入、删除、更新操作时,只需要锁定对应的段,而不是整个Map,这样就大大减少了锁的竞争,提高了并发性能。

面试官: 来,手撕一道题:无重复字符的最长子串。

求职者: 好的,为了解决“无重复字符的最长子串”这个问题,我们可以采用滑动窗口的方法。基本思路是使用两个指针表示字符串中的某个子串(窗口),然后移动右指针扩大窗口直到遇到重复字符,接着移动左指针缩小窗口跳过重复字符,过程中记录并更新最大窗口大小。

import java.util.HashMap;

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        int maxLen = 0;
        HashMap<Character, Integer> map = new HashMap<>();
        for (int start = 0, end = 0; end < s.length(); end++) {
            char currentChar = s.charAt(end);
            if (map.containsKey(currentChar)) {
                start = Math.max(map.get(currentChar) + 1, start);
            }
            map.put(currentChar, end);
            maxLen = Math.max(maxLen, end - start + 1);
        }
        return maxLen;
    }
}

这个解题方法的时间复杂度是O(n),n是字符串的长度。尽管存在嵌套循环,但是每个字符最多被访问两次(一次是右指针移动时,一次是左指针移动时)。

面试官: 很好,你的表现很不错,今天就到这吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/702862.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于DenseNet网络实现Cifar-10数据集分类

目录 1.作者介绍2.Cifar-10数据集介绍3.Densenet网络模型3.1网络背景3.2网络结构3.2.1Dense Block3.2.2Bottleneck层3.2.3Transition层3.2.4压缩 4.代码实现4.1数据加载4.2建立 DenseNet 网络模型4.3模型训练4.4训练代码4.5测试代码 参考链接 1.作者介绍 吴思雨&#xff0c;女…

【python】tkinter GUI开发: Button和Entry的应用实战探索

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

2024年计算机、信息工程与大数据应用国际会议(CIEBDA 2024)

2024 International Conference on Computer, Information Engineering, and Big Data Applications 【1】大会信息 会议简称&#xff1a;CIEBDA 2024 大会地点&#xff1a;中国青岛 审稿通知&#xff1a;投稿后2-3日内通知 投稿邮箱&#xff1a;ciebdasub-paper.com 【2】会…

【three.js】设置three.js全屏展示,并解决大小动态变化

目录 一、设置全屏 二、canvas画布宽高度动态变化 一、设置全屏 这个很简单,直接用代码读取当前全屏需要的长宽即可。 const width = window.innerWidth; //窗口文档显示区的宽度作为画布宽度 const height = window.innerHeight; //窗口文档显示区的高度作为画布高度 二、…

this关键字,构造函数(构造器)

文章目录 thisthis是什么应用场景 构造器注意事项代码演示 this this是什么 this就是一个变量&#xff0c;可以在方法中&#xff0c;拿到当前对象 应用场景 解决变量名称 冲突问题 构造器 注意事项 必须和类名相同没有返回值只要参数不同&#xff08;个数不同&#xff0…

三:SpringBoot的helloworld和使用Springboot的优点以及快速创建Springboot应用

三&#xff1a;SpringBoot的helloworld和使用Springboot的优点以及快速创建Springboot应用 一&#xff1a;HelloWorld [我们创建的是maven项目或者直接创建一个Spring] 1.1&#xff1a;创建一个maven 项目&#xff08;1】&#xff1a;需要自己手动写一个SpringBoot 的启动类同…

EVA-CLIP实战

摘要 EVA-CLIP,这是一种基于对比语言图像预训练(CLIP)技术改进的模型,通过引入新的表示学习、优化和增强技术,显著提高了CLIP的训练效率和效果。EVA-CLIP系列模型在保持较低训练成本的同时,实现了与先前具有相似参数数量的CLIP模型相比更高的性能。特别地,文中提到的EV…

Flink的简单学习五

一 动态表与连续查询 1.1 动态表 1.是flink的支持流数据Table API 和SQL的核心概念。动态表随时间的变化而变化 2.在流上面定义的表在内部是没有数据的 1.2 连续查询 1.永远不会停止&#xff0c;结果是一张动态表 二 Flink SQL 2.1 sql行 1.先启动启动flink集群 yarn-see…

TOGAF架构介绍

框架组件 软件开发过程中通用能力的集合。 一个完整的框架包括&#xff1a;异常处理组件&#xff0c;数据访问组件&#xff0c;日志组件&#xff0c;错误码组件。

面向对象三大特征之:封装

文章目录 什么是封装&#xff1f;封装的设计规范 什么是封装&#xff1f; 就是用类设计对象处理某一个事物的数据时&#xff0c;应该把要处理的数据&#xff0c;以及处理这些书记的方法设计到一个对象中去。 封装的设计规范 合理隐藏&#xff0c;合理暴露 public就是都能访问…

搭建自己的多平台镜像站

# 1. 拉取代码 $ git clone https://github.com/wzshiming/crproxy.git $ cd crproxy/examples/default# 2. 修改网关域名 使用vim编辑start.sh文件&#xff0c;将第五行的gateway变量值修改为你自己设定的域名。 原&#xff1a;gatewaycr.zsm.io 修改为&#xff1a;gatewayXS…

LeetCode | 66.加一

这道题有多个思路&#xff0c;可以依次取数组的每一位&#xff0c;乘10后加下一位&#xff0c;直到最后一位&#xff0c;就得到我们数组所表示的数字&#xff0c;然后加一&#xff0c;然后把新得到的数字再转化为对应的数组&#xff0c;我的做法是直接取数组的最后一位&#xf…

快速上手 GreatSQL 8.0.32-25 with openEuler 24.03 LTS

5 月底&#xff0c;openEuler 24.03 LTS 发布&#xff0c;详情戳&#xff1a; 恭喜&#xff01;openEuler 24.03 LTS 版本发布&#xff1a;首个AI原生开源操作系统 在诸多亮点特性中&#xff0c;有一条值得注意&#xff1a; 集成 GreatSQL 数据库&#xff0c;适用于金融级应用场…

小程序 js+Canvas 绘制半圆环虚线进度条

效果图&#xff1a; 思路&#xff1a;过程分为三步&#xff0c;第1步&#xff0c;先画虚线底部背景&#xff0c;第2步&#xff0c;画动态的虚线&#xff08;已选虚线蓝颜色&#xff09;&#xff0c;第3步&#xff0c;画动态的外标&#xff08;已选虚线外位置的标&#xff09;&a…

面向对象编程

文章目录 面向对象编程是怎么回事&#xff1a;面向对象编程的好处是&#xff1a;对象是啥&#xff0c;如何得到&#xff1f;运行原理代码举例注意事项&#xff1a;空指针异常 黑马学习笔记 面向对象编程是怎么回事&#xff1a; 祖师爷 詹姆斯高斯林 认为万物皆对象&#xff0c…

[next.js] svgr/webpack

nextjs如何配置svg文件&#xff0c;使其像react组件一样导入? 当前next.js 开发环境我使用了--turbo 来开启turbopack加速文件构建&#xff0c;所以之前的一些webpack loader之类的无法正常工作。通过搜索发现一般都是使用svgr/webpack来处理svg&#xff0c;打开svgr官网发现…

Stable Diffusion: ControlNet 插件安装

前面介绍了一些通过代码实现ControlNet进行控制的案例。现在通过Stable Diffusion体验一下更便捷的操作。 Stable Diffusion插件安装办法大致相同。启动Stable Diffusion后&#xff0c;点击最右边的“扩展”&#xff0c;点击“可下载”&#xff0c;点击“加载扩展列表”。 视网…

Linux服务器安装Jupyter,并设置公网访问详细教程

本章教程,主要介绍如何在Linux服务器上安装jupyter,并可以通过公网地址进行访问。 一、安装jupyter pip install jupyter二、生成jupyter配置文件 jupyter notebook --generate-config三、编辑这个配置文件 找到配置文件并修改以下配置项: # 允许所有 IP 地址访问 c.Noteb…

【Java面试】十九、并发篇(下):线程池

文章目录 1、为什么要使用线程池2、线程池的执行原理2.1 七个核心参数2.2 线程池的执行原理 3、线程池用到的常见的阻塞队列有哪些4、如何确定核心线程数开多少个&#xff1f;5、线程池的种类有哪些&#xff1f;6、为什么不建议用Executors封装好的静态方法创建线程池7、线程池…

【C++ | 左值、右值】一文了解C++的左值、右值、左值引用()、右值引用()

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-12 1…