最开始是打算面试外包公司刷经验,等经验差不多了,再去甲方尝试,可惜不太顺利 。
一、迈思(面试了30分钟)自我介绍左连接(a 表左连接 b 表,a 表全部数据出来,b 表没有的数据为空)a 表左连接 b 表,b 表左连接 c 表,c 表左连接 a 表 , 这样的数据是什么数据(博主当时有点懵,回答全连接 , 全部数据会出来 。。。)sql:一个班的学生有两个字段,一个字段叫分数,另外一个字段叫组名 , 有 4 个组,查出每个组的第一名,sql 怎么写
,max(score) from table group byorder by
5.数据库引擎有哪些( , 等等)
和 Inno DB的区别( 支持事务,外键,崩溃后恢复, 行级锁,表级锁) 的优点(博主当时只记住了的优点 , 没想到面试官问到了的优点,速度快,磁盘空间占用少) 的两个特性(IOC 和 aop,这两个特性用到了哪些设计模式)java 的容器,集合(老生常谈了 , list, set, map 等等,另外说一下有哪些实现类) 的实现(数组+链表+红黑树)
put 一个 key 和 value,怎么确定数组的下标,如果有两个key put到同个位置,怎么做?(根据key计算hash值 , 根据hash确定下标等等) 是线程安全的吗?有哪些实现?(不是 , 线程安全的可以用 , 等等) 是怎么实现线程安全的?具体的实现?两个线程同时 put 两个 key 是怎么做的?
【外包面试之旅】(1.7数组+链表,分段锁,1.8数组+链表+红黑树,cas+)
java 集合的排序( 中的 sort),内部是怎么实现的?原理是什么?了解过哪些排序?
(和 参考链接)
java 集合的分组( (对象::属性))函数式方法(接口),什么条件下才能用?这种适用于所有的吗?还是说有一定的限制?后台的请求比较慢,一般是什么原因造成的?后台请求直接卡了,怎么排查,日志没报错呢?(查一下慢sql,需要大量运算)怎么查锁日志,线程日志?(这个不知道)常见线程池 , 这些都是什么样的线程池?(, , ol,tor , 现在有6种线程池了 , 没记那么多)java 锁,并简单说一下锁 , 类名 , 关键字,锁的实现等等(,迷迷糊糊说了一些,毕竟记得不多)
谷歌 guava 缓存用过吗?(没用过)项目有哪些难的实现,你是怎么做的?(根据自己的情况去回答)二、亲邻科技(甲方)
过去面试的时候 , 是星期五晚上8点多了
一面:hr(不到10分钟)
简单自我介绍,对技术,薪资有要求什么的,跳槽原因,评价自己 , 公司加班挺多的 , 问能不能接受
二面:技术(不到20分钟,答的有点差)对称加密和非对称加密的区别跨域脚本攻击(还有好几个没听过)数据库隔离级别(读未提交,读已提交,可重复读 , 串行化)不可重复读和幻读是什么?(a重复读同个数据,b修改数据,a再次读 , 就是不可重复读;a修改某些数据,b从中插入一条数据,a会发现还有一条数据没修改,那么就是幻读)死锁是什么?产生原因?怎么解决(竞争同一资源 , 四个条件,破坏四个条件,这一块没答好)服务器 cpu 百分百,怎么排查(ps 查看进程,答的不是很好 , 毕竟这方面没研究 。虽然公司也遇到了 cpu 百分百的情况,但是解决办法是把需要大量运算的 mrp 功能给禁掉,后面加内存,加服务器 。这一块我可不敢实话实说)nginx 可以用来做什么(负载均衡 , 反向代理,面试官还继续问还有呢,我不知道什么了 , 我说可以拦截 ip 等等)cas 是什么?(乐观锁的一种实现,会造成aba问题,加版本号或者时间戳)redis 持久化机制,rdb 和 aof 的优缺点(全量数据备份,安全性低,备份间隔时间长;增量数据备份,数据安全,文件大) 异步注解(没用过)
讲一讲类加载机制内存泄露和内存溢出的区别还问了其他一些题目,不太记得了讲一讲项目 , 你是怎么做的三、奥萨医药(甲方,面试了35分钟左右)
看到一个小姐姐,问路,好漂亮
进去之后,填资料 , 填完资料,就问问题
mysql 的常用引擎,区别(:支持事务,外键 , 行锁,支持崩溃后恢复,面试官还问为什么能恢复 。: 表锁 , 全文索引)sql 有哪些优化,常用索引(查询哪些字段,不要用*, null, like后面的”% 等等)sql 语句执行的过程是怎么样的?怎么分析 假如有 100w 数据,我想要第 60 万行之后的数据,怎么优化(用limit,加索引,面试官太变态了,问加了这些还很慢,怎么办)redis 是什么 , 为什么比热门?(非关系型数据库,基于内存等等,为什么热门 , 这个我就说不知道了,因为不知道 )什么是非关系型数据库,与关系型数据库的区别?(没回答好)除了基于内存,读取速度快,还有哪些原因让 redis 快?(没回答好)常用的数据类型,应用场景(,List,Set,Zset,Hash,面试官还问为什么,额,简直是抽丝剥茧呢)持久化机制 , rdb 和 aof 的区别,你会怎么选择哪种机制(全量和增量,备份时间长短,数据安全等等,现在有混合机制)淘汰策略有哪些(答到过期策略那里去了,面试官提醒了)
redis 为什么可以对进行自增自减运算(这个不知道)redis 怎么进行优化?(不知道)java 常用的集合有哪些?(list,set,map,实现类) 和的区别(数据结构,读取和增删速度 , 线程安全)我想要插入几十万数据到 , 有什么优化方法?(这个还真的不知道了) 底层结构,put的过程?为什么要加红黑数?结构全部用红黑树可以吗?(数组+链表+红黑树 , 根据 key 计算 hash,根据 hash 计算下标,下标为 null 就赋值,不为 null,就遍历判断相等等等,1.7用头插 , 1.8用尾插,加红黑树是稳定,效率 。数组查询时间复杂度o(1),链表增删时间复制度o(1),红黑树o(log n),效率没有前面两者高,所以 , 不能全部用红黑树) 的结构(1.7分段锁,1.8cas+)和 lock 的区别 和的区别(结构不同 , 是锁整个对象和方法)有哪些 java 的锁?实现类?cas 是什么?aqs 是什么?(乐观悲观,公平非公平,只说了,面试官接着问还有呢?cas,乐观锁的实现,会造成 aba 问题 , 加版本号或者时间戳 。aqs 是锁框架)
线程池怎么使用,常用的参数?(使用,核心线程数 , 最大线程数,时间 , 队列,线程工厂,拒绝策略)假如有 50 个任务去执行,5 个核心线程 , 10 个最大线程数,10 个任务队列 , 流程是怎么样的,状态是怎么样的?多余的任务是怎么用拒绝策略的(创建 5 个核心线程,10 个放队列 , 队列满了,再创建 10 个非核心线程 , 剩余 25 个根据拒绝策略来决定,默认报异常,其余三种:要么忽略,要么放弃最早的线程 , 要么用该线程去执行)(后来才知道回答错了,10 个最大线程数,5个核心 + 5个非核心,剩下的 30 个走拒绝策略)
面试官给我的评价:面试的都能答出来 , 这一点很不错,但了解的不深 , 虽然工作上用不到 , 但是面试就是这样造火箭的 。面试不会差,但也不优秀,处于待定状态 。
四、金蝶软件(甲方,面试了40分钟)问的项目问题比较多 , 怎么设计功能的,数据库是怎么设计的左连接,右连接,内连接的区别mysql 执行计划,有哪些看的 执行过程 , 从前端到后台,再返回前端的过程权限验证,验权怎么做数据库的锁(乐观锁,悲观锁 , 独占锁,共享锁), ,对应哪些锁java 集合体系(list,set,map) 删除元素有哪些注意的地方 是线程安全的吗(不是,线程安全: , )

文章插图

文章插图
什么时候用,(频繁增删用 )深拷贝和浅拷贝值传递和引用传递多线程,线程池资源同步是怎么做的? 可以修饰静态类吗lock 和的区别?用的话 , 你会怎么选平时怎么学习的(看教程 , 看博客)自己的规划是什么?(规划学微服务,分布式等等)技术方面的优势是什么
代码怎么优化,重构(单一职责 , 共用等等)自己的网站是怎么进行性能优化的?(加 cdn,加 redis)你有什么想问我的?你们那边用到的技术是什么?面试官:技术桟是封装框架,没有前端,用拖拉组件什么的,微服务是 dubbo,数据库是 , 侧重点是业务,技术次要 。
最后面试官说:有四轮面试,这边面试完跟总监商量一下(剩下3轮都不是技术面)
五、平安银行(外包,面试了40分钟,因为有事,最后中断了) 启动原理(内嵌 ….)启动的注解(n) 核心配置配置文件的方式(yml, ) 的工作流程 的组件@ 的作用(拦截 url) 常用的模块,核心说一说 ioc 和常用的注入方式
的 bean 有没有了解 事务的实现 的隔离数据库的隔离级别(读未提交mysql索引类型都有哪些,读已提交,可重复读,串行化)隔离级别的影响(脏读 , 不可重复读,幻读)原子性,持久性(不可分割,保存到数据库)char 和的区别(字节大小,''和””)面试官继续问还有没有 。。。left join 和 right join 的区别sql 你是怎么调优的sql 执行计划()
sql 的行锁和表锁 , 优势(锁一行和锁整个表)乐观锁,悲观锁(版本号,时间戳)mysql 的引擎,区别( 支持外键,行锁,支持奔溃恢复 , 支持全文索引) count(*) from table , 数据是怎么执行的 , 会造成全表扫描吗( , 不支持全文索引,所以在会造成全表扫描)float 和内存占多少字节在自增表,有6条数据,删了两条数据,再增加一条数据,这条数据的id是多少(是7,是5 , 结果说反了)redis使用场景,和的区别redis 的持久化(rdb 和 aof , 全量,增量)了解 redis 分布式,有多少个节点 , 以及一些命令nginx应用场景(前后端分离,负载均衡)
负载均衡的策略(轮询 , 权重等等)前后端是怎么交互的正向代理和反向代理 有了解吗(接口文档)== 和的区别堆栈有了解吗 和的区别(线程安全 , 效率)io 流(和,和) 和的区别集合(list,set,map)线程安全的集合有哪些( , ,, )的实现过程(1.7头插,1.8尾插) 和 (底层,有序,底层 ,无序)深拷贝,浅拷贝
问的时间差不多40分钟了,因为还要工作,就打断面试了,结果晚上就来了第二轮面试
平安银行第二轮面试(面试了26分钟)mysql 查询,有很多关联的表,怎么优化(表加字段,适当冗余,少关联表,不要用*,in,null,or, %等等)索引失效的情况(in,null,or, %等等)常用的集合类(list,set,map及实现类)线程安全的容器有哪些(,,,) 是怎么保证线程安全的(1.7用分段锁,16个都上锁,1.8用cas+syn) 的数据结构(1.7数组+链表,多线程会形成一个环,cpu会飙升100% , 1.8数组+链表+红黑树)什么情况下会转成红黑树(key,hash,数组大于64,链表大于8,转成红黑树)重写了,还需要重写方法吗(因为根据 key , hash 计算出来有可能会冲突,所以要重写)链表是双向链表吗redis的数据结构(,set,sort set,list,hash,等等)
redis 分布式锁b+ 树了解吗(mysql索引)缓存击穿(缓存失效,在缓存找不到,在数据库有数据)解决办法(设置缓存失效时间随机,错开时间,或者给个标记)(其实是设置热点数据永远不过期或者加互斥锁等等)有了解吗(发音没听清,听成什么logo了,听了三遍没听出来 , 后面才反应他要说什么)项目中遇到的困难(mrp功能)服务器 cpu 上升到90以上的时候,还可以用多线程吗?最近有研究什么新的技术吗?(在学习微服务)微服务相关组件 , 一些没听过(说了一下这些是干嘛的)有了解吗(分布式)
内存泄露有哪些情况?从专业角度+性格,评价自己你希望的项目是什么样的?(技术桟,技术氛围)linux常用命令(ls,cd,pwd,chmod,vi,,find二进制文件)
面试官:到岗时间比较急,技术栈是 +dubbo , 微服务集群,+redis+mysql 等等
面试评价:没什么大问题,希望快点入职
结尾
jvm,微服务和分布式等等的没有记录了,自己没接触过,听到了也忘记,没有及时写上去 。还有一些面试,没有去记录了 , 整理和记录面试挺费时间的,上面的主要记录技术面试 。有些终面,面了 40 分钟,问生活细节,有什么爱好 , 之前写的博客,还记得吗?xx篇 , 你还记得写了什么内容吗?你是哪里人,将来是不是还待在深圳?晕死,一直问 , 问了 40 多分钟,如果我不打断,可能会一个小时以上 。像这样的流水账面试,就没有写到上面去了 。
最后比较幸运,拿下几个 offer , 面试题还是得多刷题mysql索引类型都有哪些,避免答不出来,另外收到offer的机会才会多 。
总结
待的公司,比较安逸稳定,也算是个温室,业务比较复杂(ERP 系统) , 项目架构比较简单,单体项目,去年说加缓存的一直没加,单表数据最多是上千,现在是 260 多张表 。目前有 20 个客户 , cpu 飘升到百分之 90,之后,服务器奔溃 , 好几次都这样 。后来我们 CTO 的解决办法是把功能给禁掉(MRP 运算),后来发现是报表问题 , oom 错误,换了报表工具 。过了一段时间 , 加了内存,加服务器 。(微服务,分布式 , 缓存,集群 , 消息队列都没用到,也学不到),一直做一些复杂的业务功能 , 写业务代码 。还是早一点离开技术得不到提升的地方,虽然他一直给我洗脑,说会那么多技术有什么用,你业务不会,代码不会写,会再多技术也是等于零 。但我心里一直否认 , 毕竟我是搞技术的,懂基本业务可以,讨论业务 , 需求可以交给项目经理什么的,最后安排我做什么就行了 。除非走业务路线,走管理,懂技术懂业务 。像我这种学五渣,不适合走业务 。
原文链接
大家好,我是 cxuan,我自己手写了四本 PDF , 分别是 Java基础总结、HTTP 核心总结、计算机基础知识,操作系统核心总结,我已经整理成为 PDF , 可以公众号 Java建设者 回复 PDF 领取优质资料 。
本文到此结束,希望对大家有所帮助 。
- 面试:java高级工程师自我介绍
- 每一位Java程序员的梦想工厂?复盘阿里面试高频300题送给你
- 主题线路春花烂缦,花香之旅
- 第一天:历史文化之旅
- 各位面试官们,如果看到一份应届生简历上写有”精通C++”,你们的第一反应是什么?
- 康养温泉之旅
- 技巧就是机会 人工智能行业:求职面试最强50问答
- 这个夏天来桐庐天子地开启清凉之旅
- 复试的面试官问“为什么选择我们学校”,你认为最佳答案是什么?
- 泄露字节最新秋招面试题,“死记”这些你也可以斩获字节offer