热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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



程序员小李在沿海城市工作了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的话,明天就来上班

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




小编闲话

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

无论如何,程序员只有掌握了更广更深层的技术,才能做到碾压面试官,把主动权掌握在自己手里。


下面给各位粉丝朋友分享一些电子书、一线互联网大厂面试真题,需要的朋友可以点击此处,获取免费领取面试资料、技术视频


电子书

大厂真题

真题专题分类


最后

每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。

如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。

领取这份Java零基础宝典只需要点击这里即可免费下载

对你有所帮助。

领取这份Java零基础宝典只需要点击这里即可免费下载

[外链图片转存中…(img-cWkLhHwa-1623727024671)]



推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
卖火柴的茹公主
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有