最开始是打算面试外包公司刷经验,等经验差不多了,再去甲方尝试,可惜不太顺利。

一、迈思(面试了30分钟)

  1. 自我介绍

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

  3. a 表左连接 b 表,b 表左连接 c 表,c 表左连接 a 表,这样的数据是什么数据(博主当时有点懵,回答全连接,全部数据会出来。。。)

  4. sql:一个班的学生有两个字段,一个字段叫分数,另外一个字段叫组名,有 4 个组,查出每个组的第一名,sql 怎么写

select group_name,max(score) from table  group by group_name order by group_name

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

  1. myIsam 和 Inno DB的区别(InnoDB 支持事务,外键,崩溃后恢复,InnoDB 行级锁,myIsam 表级锁)

  2. myIsam 的优点(博主当时只记住了 InnoDB 的优点,没想到面试官问到了 myIsam 的优点,速度快,磁盘空间占用少)

  3. Spring 的两个特性(IOC 和 aop,这两个特性用到了哪些设计模式)

  4. java 的容器,集合(老生常谈了,list, set, map 等等,另外说一下有哪些实现类)

  5. hashmap 的实现(数组+链表+红黑树)


  1. put 一个 key 和 value,怎么确定数组的下标,如果有两个key put到同个位置,怎么做?(根据key计算hash值,根据hash确定下标等等)

  2. HashMap 是线程安全的吗?有哪些实现?(不是,线程安全的可以用hashtable,concurrentHashMap等等)

  3. concurrentHashMap 是怎么实现线程安全的?具体的实现?两个线程同时 put 两个 key 是怎么做的?

(1.7数组+链表,分段锁,1.8数组+链表+红黑树,cas+synchronized)

  1. java 集合的排序(stream 中的 sort),内部是怎么实现的?原理是什么?了解过哪些排序?

(Comparable和Comparator  参考链接)

  1. java 集合的分组(groupingby (对象::属性))

  2. 函数式方法(接口),什么条件下才能用?这种适用于所有的吗?还是说有一定的限制?

  3. 后台的请求比较慢,一般是什么原因造成的?后台请求直接卡了,怎么排查,日志没报错呢?(查一下慢sql,需要大量运算)

  4. 怎么查锁日志,线程日志?(这个不知道)

  5. 常见线程池,这些都是什么样的线程池?(newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor,现在有6种线程池了,没记那么多)

  6. java 锁,并简单说一下锁,类名,关键字,锁的实现等等(ReentrantLock,迷迷糊糊说了一些,毕竟记得不多)

  7. 谷歌 guava 缓存用过吗?(没用过)

  8. 项目有哪些难的实现,你是怎么做的?(根据自己的情况去回答)

二、亲邻科技(甲方)

过去面试的时候,是星期五晚上8点多了

一面:hr(不到10分钟)

简单自我介绍,对技术,薪资有要求什么的,跳槽原因,评价自己,公司加班挺多的,问能不能接受

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

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

  2. 跨域脚本攻击(还有好几个没听过)

  3. 数据库隔离级别(读未提交,读已提交,可重复读,串行化)

  4. 不可重复读和幻读是什么?(a重复读同个数据,b修改数据,a再次读,就是不可重复读;a修改某些数据,b从中插入一条数据,a会发现还有一条数据没修改,那么就是幻读)

  5. 死锁是什么?产生原因?怎么解决(竞争同一资源,四个条件,破坏四个条件,这一块没答好)

  6. 服务器 cpu 百分百,怎么排查(ps 查看进程,答的不是很好,毕竟这方面没研究。虽然公司也遇到了 cpu 百分百的情况,但是解决办法是把需要大量运算的 mrp 功能给禁掉,后面加内存,加服务器。这一块我可不敢实话实说)

  7. nginx 可以用来做什么(负载均衡,反向代理,面试官还继续问还有呢,我不知道什么了,我说可以拦截 ip 等等)

  8. cas 是什么?(乐观锁的一种实现,会造成aba问题,加版本号或者时间戳)

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

  10. spring 异步注解(没用过)

  1. 讲一讲类加载机制

  2. 内存泄露和内存溢出的区别

  3. 还问了其他一些题目,不太记得了

  4. 讲一讲项目,你是怎么做的

三、奥萨医药(甲方,面试了35分钟左右)

「看到一个小姐姐,问路,好漂亮」

进去之后,填资料,填完资料,就问问题

  1. mysql 的常用引擎,区别(InnoDB:支持事务,外键,行锁,支持崩溃后恢复,面试官还问为什么能恢复。Myisam:表锁,全文索引)

  2. sql 有哪些优化,常用索引(查询哪些字段,不要用*, null, like后面的"% 等等)

  3. sql 语句执行的过程是怎么样的?怎么分析 explain

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

  5. redis 是什么,为什么比 mongodb 热门?(非关系型数据库,基于内存等等,为什么热门,这个我就说不知道了,因为不知道 mongodb)

  6. 什么是非关系型数据库,与关系型数据库的区别?(没回答好)

  7. 除了基于内存,读取速度快,还有哪些原因让 redis 快?(没回答好)

  8. 常用的数据类型,应用场景(String,List,Set,Zset,Hash,面试官还问为什么,额,简直是抽丝剥茧呢)

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

  10. 淘汰策略有哪些(答到过期策略那里去了,面试官提醒了)

  1. redis 为什么可以对 String 进行自增自减运算(这个不知道)

  2. redis 怎么进行优化?(不知道)

  3. java 常用的集合有哪些?(list,set,map,实现类)

  4. arrayList 和 linkedList 的区别(数据结构,读取和增删速度,线程安全copyonwriteArrayList)

  5. 我想要插入几十万数据到 arrayList,有什么优化方法?(这个还真的不知道了)

  6. hashmap 底层结构,put的过程?为什么要加红黑数?结构全部用红黑树可以吗?(数组+链表+红黑树,根据 key 计算 hash,根据 hash 计算下标,下标为 null 就赋值,不为 null,就遍历判断 hashcode 相等等等,1.7用头插,1.8用尾插,加红黑树是稳定,效率。数组查询时间复杂度o(1),链表增删时间复制度o(1),红黑树o(log n),效率没有前面两者高,所以,不能全部用红黑树)

  7. concurrenthashmap 的结构(1.7分段锁,1.8cas+synchronize)

  8. synchronized和 lock 的区别

  9. hashtable 和 concurrenthashmap 的区别(结构不同,hashtable是锁整个对象和方法)

  10. 有哪些 java 的锁?实现类?cas 是什么?aqs 是什么?(乐观悲观,公平非公平,只说了 ReentrantLock,面试官接着问还有呢?cas,乐观锁的实现,会造成 aba 问题,加版本号或者时间戳。aqs 是锁框架)


  1. 线程池怎么使用,常用的参数?(使用 ThreadPoolExcutor,核心线程数,最大线程数,时间,队列,线程工厂,拒绝策略)

  2. 假如有 50 个任务去执行,5 个核心线程,10 个最大线程数,10 个任务队列,流程是怎么样的,状态是怎么样的?多余的任务是怎么用拒绝策略的(创建 5 个核心线程,10 个放队列,队列满了,再创建 10 个非核心线程,剩余 25 个根据拒绝策略来决定,默认报异常,其余三种:要么忽略,要么放弃最早的线程,要么用该线程去执行)(后来才知道回答错了,10 个最大线程数,5个核心 + 5个非核心,剩下的 30 个走拒绝策略)

面试官给我的评价:面试的都能答出来,这一点很不错,但了解的不深,虽然工作上用不到,但是面试就是这样造火箭的。面试不会差,但也不优秀,处于待定状态。

四、金蝶软件(甲方,面试了40分钟)

  1. 问的项目问题比较多,怎么设计功能的,数据库是怎么设计的

  2. 左连接,右连接,内连接的区别

  3. mysql 执行计划,有哪些看的

  4. springmvc 执行过程,从前端到后台,再返回前端的过程

  5. 权限验证,验权怎么做

  6. 数据库的锁(乐观锁,悲观锁,独占锁,共享锁)

  7. select, update, delete 对应哪些锁

  8. java 集合体系(list,set,map)

  9. arraylist 删除元素有哪些注意的地方

  10. arraylist 是线程安全的吗(不是,线程安全:vector,copyonwritearraylist)


  1. 什么时候用 arraylist,linkedList(频繁增删用 linkedList)

  2. 深拷贝和浅拷贝

  3. 值传递和引用传递

  4. 多线程,线程池

  5. 资源同步是怎么做的?

  6. synchronized 可以修饰静态类吗

  7. lock 和 synchronized 的区别?用的话,你会怎么选

  8. 平时怎么学习的(看教程,看博客)

  9. 自己的规划是什么?(规划学微服务,分布式等等)

  10. 技术方面的优势是什么


  1. 代码怎么优化,重构(单一职责,共用等等)

  2. 自己的网站是怎么进行性能优化的?(加 cdn,加 redis)

  3. 你有什么想问我的?你们那边用到的技术是什么?面试官:技术桟是封装框架,没有前端,用拖拉组件什么的,微服务是 dubbo,数据库是 oracle,侧重点是业务,技术次要。

最后面试官说:有四轮面试,这边面试完跟总监商量一下(剩下3轮都不是技术面)

五、平安银行(外包,面试了40分钟,因为有事,最后中断了)

  1. spirngboot 启动原理(内嵌 tomcat....)

  2. 启动的注解(springbootapplication)

  3. springboot 核心配置

  4. 配置文件的方式(yml, properties)

  5. springmvc 的工作流程

  6. springmvc 的组件

  7. @RequestMapping 的作用(拦截 url)

  8. spring 常用的模块,核心

  9. 说一说 ioc 和 aop

  10. spring 常用的注入方式


  1. spring 的 bean 有没有了解

  2. spring 事务的实现

  3. spring 的隔离

  4. 数据库的隔离级别(读未提交,读已提交,可重复读,串行化)

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

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

  7. char 和 varchar 的区别(字节大小,''和"")面试官继续问还有没有。。。

  8. left join 和 right join 的区别

  9. sql 你是怎么调优的

  10. sql 执行计划(explain)


  1. sql 的行锁和表锁,优势(锁一行和锁整个表)

  2. 乐观锁,悲观锁(版本号,时间戳)

  3. mysql 的引擎,区别(innodb 支持外键,行锁,支持奔溃恢复,myisam 支持全文索引)

  4. select count(*) from table,数据是怎么执行的,会造成全表扫描吗(innodb,不支持全文索引,所以在innodb会造成全表扫描)

  5. float 和 double 内存占多少字节

  6. 在自增表,有6条数据,删了两条数据,再增加一条数据,这条数据的id是多少(innodb是7,myisam是5,结果说反了)

  7. redis使用场景,和 memcache 的区别

  8. redis 的持久化(rdb 和 aof,全量,增量)

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

  10. nginx应用场景(前后端分离,负载均衡)


  1. 负载均衡的策略(轮询,权重等等)

  2. 前后端是怎么交互的

  3. 正向代理和反向代理

  4. swagger 有了解吗(接口文档)

  5. == 和 equals 的区别

  6. 堆栈有了解吗

  7. stringbuilder 和 stringbuffer 的区别(线程安全,效率)

  8. io 流(reader和writer,inputstream和outputstream)

  9. fileinputstream 和 bufferinputstream 的区别

  10. 集合(list,set,map)

  11. 线程安全的集合有哪些(vector,copyonwritearraylist,hashtable, concurrenthashmap)

  12. hashmap的实现过程(1.7头插,1.8尾插)

  13. hashset 和 linkedhashset(底层hashmap,有序,底层 linkedhashmap,无序)

  14. 深拷贝,浅拷贝

「问的时间差不多40分钟了,因为还要工作,就打断面试了,结果晚上就来了第二轮面试」


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

  1. mysql 查询,有很多关联的表,怎么优化(表加字段,适当冗余,少关联表,不要用*,in,null,or, %等等)

  2. 索引失效的情况(in,null,or, %等等)

  3. 常用的集合类(list,set,map及实现类)

  4. 线程安全的容器有哪些(vector,copyonwritearraylist,hashtable,concurrenthashmap)

  5. concurrenthashmap 是怎么保证线程安全的(1.7用分段锁,16个都上锁,1.8用cas+syn)

  6. hashmap 的数据结构(1.7数组+链表,多线程会形成一个环,cpu会飙升100%,1.8数组+链表+红黑树)

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

  8. 重写了 equals,还需要重写 hashcode 方法吗(因为根据 key,hash 计算出来有可能会冲突,所以要重写hashcode)

  9. 链表是双向链表吗

  10. redis的数据结构(string,set,sort set,list,hash,bitmap等等)


  1. redis 分布式锁

  2. b+ 树了解吗(mysql索引)

  3. 缓存击穿(缓存失效,在缓存找不到,在数据库有数据)

  4. 解决办法(设置缓存失效时间随机,错开时间,或者给个标记)(其实是设置热点数据永远不过期或者加互斥锁等等)

  5. threadlocal有了解吗(发音没听清,听成什么logo了,听了三遍没听出来,后面才反应他要说什么)

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

  7. 服务器 cpu 上升到90以上的时候,还可以用多线程吗?

  8. 最近有研究什么新的技术吗?(在学习微服务)

  9. 微服务相关组件,一些没听过(说了一下这些是干嘛的)

  10. zookeeper有了解吗(分布式)


  1. 内存泄露有哪些情况?

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

  3. 你希望的项目是什么样的?(技术桟,技术氛围)

  4. linux常用命令(ls,cd,pwd,chmod,vi,whereis,find二进制文件)

面试官:到岗时间比较急,技术栈是 springboot+dubbo,微服务集群,zookeeper+redis+mysql 等等

「面试评价:没什么大问题,希望快点入职」

结尾

jvm,微服务和分布式等等的没有记录了,自己没接触过,听到了也忘记,没有及时写上去。还有一些面试,没有去记录了,整理和记录面试挺费时间的,上面的主要记录技术面试。有些终面,面了 40 分钟,问生活细节,有什么爱好,之前写的博客,还记得吗?xx篇,你还记得写了什么内容吗?你是哪里人,将来是不是还待在深圳?晕死,一直问,问了 40 多分钟,如果我不打断,可能会一个小时以上。像这样的流水账面试,就没有写到上面去了。

最后比较幸运,拿下几个 offer,面试题还是得多刷题,避免答不出来,另外收到offer的机会才会多。

总结

待的公司,比较安逸稳定,也算是个温室,业务比较复杂(ERP 系统),项目架构比较简单,单体项目,去年说加缓存的一直没加,单表数据最多是上千,现在是 260 多张表。目前有 20 个客户,cpu 飘升到百分之 90,之后,服务器奔溃,好几次都这样。后来我们 CTO 的解决办法是把功能给禁掉(MRP 运算),后来发现是报表问题,oom 错误,换了报表工具。过了一段时间,加了内存,加服务器。(微服务,分布式,缓存,集群,消息队列都没用到,也学不到),一直做一些复杂的业务功能,写业务代码。还是早一点离开技术得不到提升的地方,虽然他一直给我洗脑,说会那么多技术有什么用,你业务不会,代码不会写,会再多技术也是等于零。但我心里一直否认,毕竟我是搞技术的,懂基本业务可以,讨论业务,需求可以交给项目经理什么的,最后安排我做什么就行了。除非走业务路线,走管理,懂技术懂业务。像我这种学五渣,不适合走业务。

推荐阅读:

  • 永远不要在代码中使用“User”这个单词

  • 微软苏州集体抵制来自阿里、华为的跳槽者:请停止你的“奋斗逼”行为!网友:看到 955 不加班的公司名单,我酸了

  • 实用!一键生成数据库文档,堪称数据库界的Swagger

  • 一口气说出 9种 分布式ID生成方式,面试官有点懵了

喜欢我可以给我设为星标哦

好文章,我“在看”

想要靠外包刷题,结果却大跌眼镜相关推荐

  1. 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

    目录 1.话题引入 2.在刷题过程中一些自己想说的 3.刷题时的一些小建议 4.个人感悟 1.话题引入 首先介绍一下我自己,本人是一名专科大一的学生:非计算机本专业:因为想拓宽自己的知识面和技术:于是 ...

  2. 小白一路走来,连续刷题三年,谈谈我的算法学习经验

    数据结构与算法应该算是一个比较难的模块,从小白一路走过来,从大一连续刷过好几年题,看过挺多书,踩过挺多坑,也涨了一些经验,姑且在这里分析一波对数据结构与算法 的学习经验,请耐心看完,相信对你会有所帮助 ...

  3. 软考刷题利器—软考云题库Web版

    之前有朋友说小程序刷题有时不太方便,想在电脑上刷题,能不能开发个Web版,后来就有了软考云题库的Web版. 项目采用了SpringBoot 2.0+JPA+Thymeleaf 模板+Bootstrap ...

  4. python题库刷题训练软件_自动刷题机 Python 解释源码 超新泛雅

    本文解释一下代码,如果有想要用机器刷题的(前提是能找的到答案),可以参考一下. 开发原因:作业又多又无聊自己不想做,干脆用机器刷题. 主要方法:主要用Python的selenium库实现刷题. 需要基 ...

  5. 某程序员吐槽自己之前的外包同事能力不行,经常给同事挖坑,却面过了头条!只因为会刷题!头条招人这么不靠谱?...

    万事万物都有鄙视链,那程序员之间存在鄙视链吗? 有个程序员发帖吐槽自己之前的外包同事能力不行,干活效率低,沟通能力差,还经常给其他同事挖坑,简直是坑王本王.但这样一个被楼主鄙视的外包同事却奇迹般地面过 ...

  6. 面试学习+刷题笔记分享-屌丝的逆袭之路,2年5个月13天,从外包到拿下阿里offer

    开篇介绍 个人背景: 不说太多废话,但起码要让你先对我有一个基本的了解.本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就 ...

  7. 第一届LeetCode刷题打卡赢现金活动开始啦,助力每一位想拿大厂offer的小伙伴!

    大家好,我是路飞!第一届leetcode(剑指Offer.LeetCode Top100)刷题打卡活动即将开始啦 (助力大厂Offer收割机)~ 活动形式: LeetCode刷题在自己的CSDN博客上 ...

  8. buuctf刷题-Crypto-联想脑洞-达芬奇密码

    buuctf刷题-Crypto-联想脑洞-达芬奇密码 给了两串数字和提示: (答案是一串32位十进制数字) 达芬奇隐藏在蒙娜丽莎中的数字列:1 233 3 2584 1346269 144 5 196 ...

  9. 写了三百篇算法题解,关于如何刷题有些话我想对你说

    这篇文章憋了我挺久的,感觉都快憋出内伤,一次次的打开 Typora 写几十个字,一次次的修改删除最后关闭 Typora,如此反复. 为什么会如此纠结? 或许是太狂妄了,我真的想让那些看了这篇文章的人都 ...

最新文章

  1. android AVD运行chrome,contentshell,chromeshell失败解决方法
  2. linux内存管理基本概念
  3. 关于Kafka 的 consumer 消费者手动提交详解
  4. CornerEigenValsAndVecs函数
  5. linux-修改所有者与所属组
  6. Linux下 查看网络连接状态的命令是,查看Linux操作系统下的网络连接状态命令
  7. 第0002 天:琐碎费时的小事
  8. yolov4-tiny目标检测模型实战——学生姿势行为检测
  9. smartadmin mysql_ApiBoot Logging 和Logging Admin使用总结
  10. WICC | 为什么说中国「泛娱乐」出海绕不开这家公司
  11. 5、依赖注入(DI)dependency injection
  12. 上海私车牌价狂降3万余元!!!
  13. 待办事项列表,敏捷项目管理的核心工件
  14. mini-smooth-signature.js:小程序canvas带笔锋手写签名,支持微信/支付宝/钉钉/QQ等多平台小程序使用
  15. 关于 OneNote 无法打开笔记本 无法打开该位置 没有该位置权限:
  16. javascript交互性设计
  17. 用python输出所有的玫瑰花数_用python实现输出3位水仙花数、玫瑰花数、
  18. fastJson与String、对象、集合之间相互转换
  19. Android下拉列表显示
  20. (Winserver 2019) Hyper-V的安装与使用教程

热门文章

  1. POSTGRESQL COPY 命令导入数据,你还另一个更快的方案!
  2. java 对 汉字排序(按照拼音字母排序)
  3. 有什么好的降噪蓝牙耳机推荐?分享四款好用的降噪蓝牙耳机
  4. 水饺营销广告(个人作业)
  5. (四)人,是人,真的是人
  6. 模拟银行存取款业务 简要代码
  7. 家中这些地方保持干净,财神进来不再走!
  8. TS中的class类
  9. Fiddler如何修改请求
  10. java的entryset_「entryset」Java中Map的 entrySet() 详解以及用法(四种遍历map的方式) - seo实验室...