面试外包公司刷经验:数据库左连接与引擎选择全解析

2025-01-08
来源:网络整理

起初,我打算去面试一家外包公司,积累经验。当我有了足够的经验后,我会和甲方一起尝试,但遗憾的是并不顺利。

1.麦斯(采访时长30分钟)

自我介绍

左连接(a表与b表左连接,a表中的数据全部出来,b表中没有的数据为空)

表a左连接到表b,表b左连接到表c,表c左连接到表a。这是什么样的数据? (博主当时有点糊涂,就回答了full join,数据全部就出来了……)

SQL:一个班级的学生有两个字段,一个字段称为分数,另一个字段称为组名。有 4 组。找出每组的第一名。 sql怎么写

,max() 来自 by by

5. 数据库引擎有哪些(等等)

与Inno DB的区别(支持事务、外键、崩溃恢复、行级锁、表级锁)

优点(博主只记得了优点,没想到面试官问到了优点,比如速度快,磁盘空间占用小)

两个特性(IOC和aop,这两个特性采用了什么设计模式)

Java容器和集合(老生常谈,list、set、map等,也说说实现类)

实现(数组+链表+红黑树)

放一个键又如何确定数组的下标?如果有两个键放在同一个位置怎么办? (根据key计算hash值、根据hash确定下标等)

它是线程安全的吗?有哪些实现方式? (不可以,可以使用线程安全的等等)

线程安全是如何实现的?具体实施?两个线程如何同时放入两个key?

(1.7数组+链表、段锁、1.8数组+链表+红黑树、cas+)

java集合的排序(sort in)内部是如何实现的?原理是什么?你知道什么排序?

(和参考链接)

java 集合的分组 ((::))

什么情况下可以使用函数方法(接口)?这适用于所有人吗?或者有一定的限制吗?

后台请求比较慢。一般原因是什么?后台请求直接卡住了。我该如何排除故障?日志中没有报错吗? (检查慢sql,需要大量操作)

如何查看锁日志和线程日志? (这个我不知道)

常见的线程池,这些都是哪几种线程池呢? (,,ol,tor,现在有6种线程池,我不记得那么多了)

Java锁,简单讲一下锁、类名、关键字、锁的实现等(我讲的比较模糊,但毕竟记不太清了)

你用过谷歌缓存吗? (从未使用过)

项目实施过程中遇到哪些困难,是如何做到的? (根据自己的情况回答)

2、勤霖科技(甲方)

以前面试的时候是周五晚上八点多。

一边:hr(10分钟以内)

简单介绍一下你自己,你的技术和薪资要求是什么,跳槽的原因,并对自己进行评价。公司加班较多。可以接受吗?

第二面:技术(不到20分钟,回答有点差)

对称加密和非对称加密的区别

跨域脚本攻击(还有其他几种我还没听说过)

数据库隔离级别(读未提交、读已提交、可重复读、序列化)

什么是不可重复读和幻读? (a重复读取同一条数据,b修改了数据,a又读取了一遍,这是不可重复读;a修改了一些数据,b从中插入了一条数据,a会发现还有a一段没有被修改的数据,所以是幻读)

什么是死锁?原因是什么?怎么解决(争夺同一个资源,四个条件,破坏四个条件,这部分不好回答)

服务器CPU 100%,如何排查(ps查看进程,答案不太好,毕竟没有这方面的研究。虽然公司也遇到过CPU 100%的情况,但是解决办法是禁用需要大量计算的mrp功能如果你放弃了,稍后添加内存和服务器我不敢说实话。)

能用来做什么(负载均衡、反向代理,面试官继续问还有什么,我也不知道还有什么,我说可以拦截IP等等)

cas是什么? (乐观锁的一个实现会导致aba问题,添加版本号或者时间戳)

持久化机制、rdb和aof的优缺点(全量数据备份、安全性低、备份间隔长;增量数据备份、数据安全、大文件)

异步注释(从未使用过)

我们来谈谈类加载机制

内存泄漏和内存溢出的区别

我还问了一些其他的问题,但记不太清了。

告诉我这个项目,你是如何做到的

3.奥萨医疗(甲方,采访时长约35分钟)

“我看到一个年轻的女士在问路,她很漂亮。”

进入后,填写信息,填写信息后提问。

常用引擎、差异(:支持事务、外键、行锁、支持崩溃后恢复,面试官还问为什么可以恢复:表锁、全文索引)

sql有哪些优化和常用索引(查询哪些字段,不要用*、null,比如后面的“%”等)

sql语句的执行过程是怎样的?如何分析

如果有100万条数据,我想要第60万行之后的数据,怎么优化(用,加索引,面试官太变态,问加了这些之后还是很慢怎么办)

它是什么以及为什么它更受欢迎? (非关系型数据库,基于内存等,为什么流行?我会说我不知道​​这个,因为我不知道)

什么是非关系数据库以及它与关系数据库有何不同? (不是一个好的答案)

除了基于内存的读取速度快之外,还有什么原因让它快呢? (不是一个好的答案)

常用数据类型、应用场景(List、Set、Zset、Hash,面试官还问了为什么,嗯,就像剥茧一样)

持久化机制,rdb和aof的区别,你会选择哪种机制(全量还是增量,备份时间长短,数据安全性等,现在有混合机制)

消除策略有哪些? (我回答了过期策略,面试官提醒了我)

为什么可以进行自增和自减操作(这个我不知道)

如何优化? (不知道)

Java中常用的集合有哪些? (列表、集合、映射、实现类)

和的区别(数据结构、读取和增删速度、线程安全)

我想插入几十万条数据,有什么优化方法吗? (我真的不知道这个了)

底层结构和put流程?为什么要添加红色和黑色数字?所有结构都可以使用红黑树吗? (数组+链表+红黑树,根据key计算hash,根据hash计算下标,如果下标为null则赋值,如果不为null则遍历判断相等等,1.7使用head插入,1.8使用tail插入、添加红黑树稳定高效,数组查询时间复杂度为o(1),链表增删时间复杂度为o(1),红黑树为o(log n)。 ,效率没那么高和前两者一样,所以不能完全使用红黑树)

结构体(1.7段锁、1.8cas+)

锁的区别

小程序开发哪家外包公司服务好_外包开发_外包服务的公司

和的区别(结构不同,它锁的是整个对象和方法)

java中的锁有哪些?实现类? cas是什么? aqs是什么? (乐观和悲观,公平和不公平,我刚说了,面试官接着问还有什么?cas,执行乐观锁会导致aba问题,加个版本号或者时间戳。aqs是一个锁框架)

如何使用线程池,常用参数? (使用情况、核心线程数、最大线程数、时间、队列、线程工厂、拒绝策略)

如果有50个任务要执行,5个核心线程,10个最大线程,10个任务队列,进程是什么,状态是什么?冗余任务如何使用拒绝策略(创建5个核心线程,放入10个队列,当队列满时,创建10个非核心线程,剩余25个根据拒绝策略确定,抛出异常剩下的三个是:要么忽略或者放弃最早的线程,要么使用这个线程来执行)(后来发现答案是错误的,最大线程数10,5个核心+5个非核心) ,以及剩余的30遵循拒绝策略)

面试官的评价:我能回答面试中的所有问题,很好,但了解的不多。虽然我在工作中不需要它,但这就是面试火箭的方式。面试不会很糟糕,但也不是很好,正在等待。

4、金蝶软件(甲方,采访40分钟)

问的项目问题很多,比如功能如何设计、数据库如何设计等。

左连接、右连接、内连接的区别

执行计划,应该看什么?

执行流程,从前端到后端,再回到前端

权限验证,如何验证权限

数据库锁(乐观锁、悲观锁、排它锁、共享锁)

, , 对应哪些锁

java集合系统(列表、集合、地图)

删除元素时要注意什么?

它是线程安全的吗? (不,线程安全:,)

何时使用,(用于频繁增删)

深拷贝和浅拷贝

按值传递和按引用传递

多线程、线程池

资源同步是如何完成的?

静态类可以修改吗?

锁 和 有什么区别?如果是这样,你会如何选择?

你平时如何学习(阅读教程和博客)

你有什么计划? (规划微服务、分布式等)

有哪些技术优势?

如何优化和重构代码(单一职责、共享等)

您如何优化自己网站的性能? (添加cdn,添加)

你想问我什么?你们在那里使用什么技术?面试官:技术栈是一个封装框架。没有前端。它使用拖放组件等。使用微服务,使用数据库。重点是业务,技术是次要的。

最后面试官说:有四轮面试。面试结束后我们会和导演讨论(剩下三轮不是技术性的)

5.平安银行(外包,采访持续了40分钟,最后因别的事情中断)

启动原理(嵌入式....)

开始注释(n)

核心配置

配置文件方法(yml,)

工作流程

成分

@的作用(截取url)

常用模块、核心

我们先来说说ioc和aop

常用注射方法

你了解豆子吗?

交易执行

隔离

数据库的隔离级别(读未提交、读已提交、可重复读、序列化)

隔离级别的影响(脏读、不可重复读、幻读)

原子性、持久性(不可分割,保存到数据库)

char和(byte size,''和"")的区别面试官继续问还有没有。 。 。

左连接和左连接的区别

你是如何调优sql的?

sql执行计划()

SQL行锁和表锁,优点(锁定一行和锁定整个表)

乐观锁、悲观锁(版本号、时间戳)

引擎、差异(支持外键、行锁、支持崩溃恢复、支持全文索引)

(*)from,数据是如何执行的?会导致全表扫描吗? (不支持全文索引,所以会导致全表扫描)

以及它占用了多少字节的内存

自增表中有6条数据。删除了两条数据,添加了一条数据。这条数据的ID是多少(是7,是5,但是结果颠倒了)

使用场景、和的区别

持久化(rdb和aof、全量、增量)

了解分布,有多少个节点,以及一些命令

应用场景(前后端分离、负载均衡)

小程序开发哪家外包公司服务好_外包服务的公司_外包开发

负载均衡策略(轮询、权重等)

前端和后端如何交互?

正向代理和反向代理

你知道吗(接口文档)

== 和 之间的区别

你了解栈吗?

和的区别(线程安全、效率)

io流(和,和)

之间的区别

集合(列表、集合、地图)

什么是线程安全集合(,,,)

实现过程(1.7头塞,1.8尾塞)

和(底部,有序,底部,无序)

深拷贝、浅拷贝

“问问题花了差不多40分钟,因为还要工作,所以就中断了采访,结果晚上第二轮面试就来了。”

平安银行第二轮面试(面试时长26分钟)

查询中有很多相关表,如何优化(表中添加字段、适当冗余、少相关表、不要使用*、in、null、or、%等)

索引失败情况(in、null、or、% 等)

常用集合类(列表、集合、映射和实现类)

什么是线程安全容器(,,,)

如何保证线程安全(1.7使用分段锁,16个全部加锁,1.8使用cas+syn)

数据结构(1.7数组+链表,多线程会成环,CPU暴增100%,1.8数组+链表+红黑树)

什么情况下会转成红黑树(key、hash、数组大于64,链表大于8,转成红黑树)

重写后,还需要重写方法吗(因为基于key和hash计算可能会存在冲突,所以需要重写)

链表是双向链表吗?

数据结构(集合、排序集、列表、哈希等)

分布式锁

你了解b+树(索引)吗

缓存击穿(缓存失败、缓存中找不到数据、数据库中没有数据)

解决方案(随机设置缓存过期时间、错开时间、或者给个标记)(其实就是设置热点数据永不过期或者加互斥锁等)

你明白吗? (发音听不清楚,听说是某种标志,听了三遍也没认出来,后来才知道他要说什么。)

项目中遇到的困难(mrp功能)

当服务器CPU升到90以上,多线程还能用吗?

您最近研究过什么新技术吗? (学习微服务)

微服务相关组件,其中一些我从未听说过(我会告诉你这些是做什么用的)

你懂吗(分布式)

内存泄漏有哪些情况?

从专业角度+性格评价自己

您希望这个项目是什么样的? (技术氛围、技术氛围)

常用命令(ls、cd、pwd、vi、查找二进制文件)

面试官:到达时间比较紧迫,技术栈+、微服务集群、++等。

“面试评价:没有大问题,希望早日入职。”

结束

jvm、微服务、分发等都没有记录,我从来没有接触过,听了就忘记了,所以没有及时写下来。还有一些采访我没有记录。整理和记录访谈非常耗时。以上主要记录技术访谈。有的最后面试持续了40分钟,询问生活细节、爱好、以及我之前写的博客。你还记得吗?第xx章,你还记得你写的是什么吗?您是哪里人,以后还会留在深圳吗?我头晕得厉害,一直问了四十多分钟。如果不是我打扰的话,可能已经一个多小时了。此类采访不包含在采访日志中。

最后,我很幸运,得到了一些。我还需要回答更多的面试问题,以免回答不上。另外,我还会有更多的机会收到它们。

总结

我工作的公司比较安逸稳定,可以称得上是一个温室。业务比较复杂(ERP系统),项目结构比较简单。这是一个单一的项目。去年据说没有加缓存。单表最大数据是几千条,现在是260条。多表。目前有20个客户端,CPU已经上升到90%。之后服务器就崩溃了,这样的情况又发生了好几次。后来我们CTO的解决办法是禁用该功能(MRP计算)。后来我们发现是报告问题,oom错误,我们就换了报告工具。一段时间后,添加了内存和服务器。 (微服务、分发、缓存、集群、消息队列没有用过,无法学习)。一直在做一些复杂的业务功能,写业务代码。技术无法提升的地方还不如尽早离开。虽然他一直给我洗脑,说知道那么多技术没有用。如果你不会业务,不会写代码,那么无论你懂多少技术,都是零。但我一直在否认。毕竟我是一个技术人员。我能理解基本业务。我可以讨论业务,把需求交给项目经理什么的。最后,我只能安排我要做的事情。除非你走商业路线,走管理,懂技术、懂业务。像我这种水平低的学生,不适合做生意。

小编还为阿里、头条、腾讯、美团等2020年金三银四公司准备了几十套面试题,将技术点整理成视频+文档(共20G,实际花了比预期付出了很多努力)),包括知识背景+很多细节。由于篇幅有限,我将以图片的形式向大家展示部分内容。

此信息特别适合:

没有工作经验,但是基础很扎实,精通Java工作机制、常用设计思想、常用Java开发框架。

有一定工作经验但对当前流行技术不知道从何入手,需要快速提升核心竞争力的人。

我在公司呆了很长时间,生活也很安逸,但是换工作的时候,面试就遇到了墙。需要短期学习或者跳槽获得高薪的可以报名。

想要了解“一线互联网公司”最新的招聘需求/技术要求,对比找出他们的优势和劣势,评估他们在现有市场的竞争力;

做了几年Java开发,但还没有形成系统的Java知识体系,缺乏明确的改进方向和学习路径的程序员。

相信会给大家带来很多收获。 (更完整的内容和信息可以在文末找到)

获取方式:转发关注后台私信即可免费获取电子书!

分享