Java程序员跳槽,三面全过,面试官:你这样的,我们招不起

news2024/11/19 19:32:01

程序员小李在沿海城市工作了8年,那里涨幅飞快的房价限制了程序员小李在一线城市安家的想法,再加上突然发生的疫情暴露了远在他乡工作的不便,在种种因素下,程序员小李决定回家工作。

既然已经下定决心告别一线城市回家乡发展,那也就意味着,做好了降低工资标准的准备。

碰巧有一家互联网公司在招人,Java开发工程师,薪资范围18K~25K

程序员小李一看,哟,也不算很低啊!于是投了简历,等着面试邀请。

不出两天,面试邀约就来...程序员小李如期赴约,经过了前面两场面试后,就有了如下的情形...

面试官:说一下sleep和wait的区别?

程序员小李:哦,这个简单

1. 对于 sleep()方法,我们首先要知道该方法是属于 Thread 类中的。而 wait()方法,则是属于Object 类中的。

2. sleep()方法导致了程序暂停执行指定的时间,让出 cpu 该其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。

3. 在调用 sleep()方法的过程中,线程不会释放对象锁。

4. 而当调用 wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用 notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

面试官:嗯,不错,说一下线程池。

程序员小李:额~是说那四种线程池吗?还是线程池的工作原理、工作流程?

面试官:额~那换一个问题吧!什么是中间件?

程序员小李:

中间件是处于操作系统和应用程序之间软件,使用时往往是一组中间件集成在一起,构成一个平台(开发平台+运行平台),在这组中间件中必须要有一个通信中间件,即中间件=平台+通信。该定义也限定了只有用于分布式系统中才能称为中间件。

主要分类:远程过程调用、面向消息的中间件、对象请求代理、事物处理监控。

面试官:如果要你自己设计一个中间件,你会怎么设计呢?

程序员小李:我会从以下几个方面考虑:

1、远程过程调用

2、面向消息:利用高效的消息传递机制进行平台无关的数据交流,并给予数据通信来进行分布式系统的集成,有以下三个特点:

· 通讯程序可以在不同的时间运行

· 通讯晨旭之家可以一对一、一对多、多对一甚至是上述多种方式的混合

· 程序将消息放入消息队列会从小吸毒列中取出消息来进行通讯

3、对象请求代理:提供不同形式的通讯服务包括同步、排队、订阅发布、广播等

可构筑各种框架如:事物处理监控器、分布数据访问、对象事务管理器 OTM 等。

4、事物处理监控有以下功能:

· 进程管理,包括启动 server 进程、分配任务、监控其执行并对负载进行平衡

· 事务管理,保证在其监控下的事务处理的原子性、一致性、独立性和持久性

· 通讯管理,为 client 和 server 之间提供多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等

面试官:嗯,很好,那个MySQL优化怎么做?

程序员小李:MySQL 的优化一般可以从存储引擎的选择、字段类型的选择、索引的选择、分区分表、主从复制、读写分离、SQL 优化等这里方面入手。

额,例如,储存引擎方面,在创建表的时候我们使用sql语句...

面试官:行了行了,不用太细了,我听不懂,那个,讲一下Redis吧!

Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

程序员小李:Redisson、Jedis、lettuce 等等,官方推荐使用 Redisson。

面试官:Redis 如何做内存优化?

程序员小李:尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以应该尽可能的将数据模型抽象到一个散列表里面。

比如 web 系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的 key,而是应该把这个用户的所有信息存储到一张散列表里面。

面试官:那个Redis缓存雪崩、穿透这些你是不是也知道?

程序员小李:嗯,知道,缓存雪崩就是缓存同一时间大面积的失效,所以...

面试官:可以了可以了,咳咳~

面试官左手掏出了右口袋的纸巾,擦了一把汗。

面试官:嗯,你的表现很好,技术功底也很扎实,包括我,前两个面试官也很满意...

程序员小李面露欣喜,心中也已经对这份工作十拿九稳了。

面试官:但是,事情是这样的啊,就你现在的情况,我们招不起,想招一个更便宜的

程序员小李:啊?没关系的,你就按照你们发的那个薪资范围来就行...

面试官:实话告诉你吧,那就是写在上面吸引人的,实际上我们连最低那个都达不到,这样,如果你接受10K的话,明天就来上班

程序员小李:这样啊~耽误我这么久时间,那行吧,我先回家,你们等通知吧!

闲话

上面的故事中,程序员小李其实是具备很强的技术能力的,但是,所面试的互联网公司只是一个小公司,养不起他这样的人才,可以看出,甚至连面试官的技术水平都不高。但是,你会发现,不论公司多大,需不需要该技术,他们都会问一些更广更深的问题。

无论如何,程序员只有掌握了更广更深层的技术,才能做到碾压面试官,把主动权掌握在自己手里。下面给各位朋友分享一些电子书、一线互联网大厂面试真题

电子书

大厂真题

真题专题分类

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析面试-sql练习

SQL汇总1. SQL执行顺序2. 开窗函数3. 经典SQL题3.0 数据准备3.1 ☆ 查询‘01’课程比‘02’课程成绩高的学生3.2 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩3.3 查询在SC表存在成绩的学生信息3.4 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总…

Github每日精选(第96期):微软的机器学习课程ML-For-Beginners

12 周,26 节课,52 道测验,适合所有人的经典机器学习。 添加链接描述 初学者机器学习 - 课程 Microsoft 的 Azure Cloud Advocates 很高兴提供为期 12 周、26 节课的全部关于机器学习的课程。在本课程中,您将了解有时称为经典机器…

【C++】面向对象:继承

🐱作者:傻响 🐱专栏:《C语法》 🔥格言:你只管努力,剩下的交给时间! 目录 C中的继承 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.3 继承关系和访问限定符 1.4 继承基类成…

ES6中扩展运算符的9种用法

1. 拷贝数组对象 const years [2018, 2019, 2020, 2021]; const copyYears [...years];console.log(copyYears); // [ 2018, 2019, 2020, 2021 ]扩展运算符拷贝数组,只有第一层是深拷贝,即对一维数组使用扩展运算符拷贝就属于深拷贝 2. 合并数组 先…

c++入门语法

文章目录1. 命名空间1.1 域的介绍1.2 命名空间的定义1.3 命名空间的三种使用方式2. C输入&&输出3. 缺省参数3.1 概念3.2 缺省参数分类4. 函数重载4.1 概念4.2 C支持函数重载的原理--名字修饰5. 引用5.1 概念5.2 特性5.3 常引用5.4 使用场景5.5 指针和引用的区别6. 内联…

OpenCV-PyQT项目实战(3)信号与槽机制

欢迎关注『OpenCV-PyQT项目实战 Youcans』系列,持续更新中 OpenCV-PyQT项目实战(1)安装与环境配置 OpenCV-PyQT项目实战(2)QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战(3)信号与槽机制 …

健身大神都戴什么耳机、健身大佬的耳机清单分享

平时,我们总能看到许多运动健身的人群,在锻炼时都佩戴着耳机。但运动耳机的选择,同样是大有学问的。如果佩戴传统的真无线蓝牙耳机,有可能出现佩戴不稳、耳道肿胀等问题,影响运动体验。所以今天我们特意给大家带来几款…

【大数据实时数据同步】OGG异构多路映射同步原表审计表只存删除数据表实现方案(二)

文章目录前言十一、将SCOTT下所有已同步的HIS表逻辑同步配置改为DEL表操作1、首先来看一下抽取进程和应用进程我们要修改成什么样的配置2、开始前先停止源端的抽取进程3、清除原来HIS表非DELETE操作数据4、启动抽取进程和应用进程验证总结前言 这里是后续!&#xf…

尚医通 (一)项目介绍

目录一、功能简介二、技术点三、业务流程四、系统架构一、功能简介 尚医通即为网上预约挂号系统,网上预约挂号是近年来开展的一项便民就医服务,旨在缓解看病难、挂号难的就医难题,许多患者为看一次病要跑很多次医院,最终还不一定…

微信小程序 python垃圾分类知识科普系统 uniapp

目 录 摘 要 III Abstract 4 1 系统概述 5 1.1 概述 5 1.2课题意义 5 1.3 主要内容 5 2 系统开发环境 6 2.1微信开发者工具 6 2.2小程序框架以及目录结构介绍 6 3 需求分析 1 3.1 系统设计目标 1 3.2需求分析概述 1 3.3 系统可行性分析…

分享160个ASP源码,总有一款适合您

分享160个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 160个ASP源码下载链接:https://pan.baidu.com/s/1xMcHd2x-EW0PP4TdVCU5vA?pwd3hby 提取码:3hby…

嵌入式开发:如何在嵌入式市场中平衡敏捷

敏捷方法的好处是有据可查的,但是在遵从驱动的市场中,向敏捷过渡对于嵌入式开发团队来说是一个挑战。需要可追溯性和文档来证明遵从性,但是这可能与敏捷的精神相矛盾,敏捷的精神仍然受到伴随着方法论成长起来的不准确神话的困扰。…

创建者模式—原型模式(深克隆和浅克隆的区别)

目录 1.原型模式 1.1概念 1.2结构 1.3实现 1.4案例 1.5深克隆(扩展) 2.浅克隆和深克隆 2.1克隆的特点 2.2浅克隆和深克隆的区别 1.原型模式 1.1概念 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对…

【分布式任务调度】XXL-JOB快速搭建教程

XXL-JOB1. XXL-JOB简介2. XXL-JOB搭建2.1 准备工作2.1.1 下载源码2.1.2 数据库准备 数据库脚本在doc路径下,将其执行之后可以创建一个数据库,如图3所示:2.2 搭建调度中心2.3 搭建“执行器”3. 测试3.1 新增执行器3.2 新增任务3.3 启动任务测试…

【工作笔记0036】C#中Decimal小数取整容易犯错的坑

这两天排查一个bug,数据库中同样的计算公式 和 C#代码中一毛一样的计算公式,最后结果为 Decimal 类型的小数,需求保留两位小数。但是结果是数据库中 和 代码中的结果总是对不上。整理并简化了一下项目中代码计算公式:decimal a 3…

vitest第一章(初始vitest)

从三个角度分析vitest 他能做什么? 为什么要使用他? 使用它的优势是什么? vitest官网cn.vitest.dev/ 1.vitest能做什么 从官网介绍说这是一个单元测试框架,大家听到有测试两个字觉得这个是测试同学写的东西,其实这个…

低版本浏览器(webview)空数据音频文件异常报错

问题背景 监控出现大量静态资源加载异常报警,ios和安卓各系统版本都有(排查了一段时间,发现是QA同学在全量测试,无语凝噎)QA测试反馈,报告页在收音失败的情况稳定复现播放音频失败(确实有问题&…

Qos实验配置-CBQ方式

目录 对报文进行重标记 对数据报文进行流量监管-接口入方向 将报文加入相应队列 为语音业务配置丢弃策略 配置流量整形-接口出方向 QoS理论讲解_静下心来敲木鱼的博客-CSDN博客_qos 优先级映射https://blog.csdn.net/m0_49864110/article/details/127414766?ops_request_…

MATLAB 绘制数据图

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

python中的socket套接字基础 (客户端服务器信息交互)

文章目录1 socket概述2 socket使用2.1 socket常用函数2.2 简单实现 客户端与服务器 信息交互2.3 多线程实现服务器和客户端信息交互1 socket概述 Python中,我们利用Socket套接字来实现网络通信,可以说套接字是实现网络编程进行数据传输的一种技术手段。S…