Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了 一、迈思(面试了30分钟) 二、亲邻科技(甲方) 一面:hr(不到10分钟) 二面:技术(不到20分钟,答的有点差) 三、金蝶软件(甲方,面试了40分钟) 四、平安银行(外包,面试了40分钟,因为有事,最后中断了) 平安银行第二轮面试(面试了26分钟) 结尾 最后: JVM MySQL

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

  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 的实现(数组+链表+红黑树)
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  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),内部是怎么实现的?原理是什么?了解过哪些排序?
  1. java 集合的分组(groupingby (对象::属性))
  2. 函数式方法(接口),什么条件下才能用?这种适用于所有的吗?还是说有一定的限制?
  3. 后台的请求比较慢,一般是什么原因造成的?后台请求直接卡了,怎么排查,日志没报错呢?(查一下慢sql,需要大量运算)
  4. 怎么查锁日志,线程日志?(这个不知道)

19.常见线程池,这些都是什么样的线程池?

(newCachedThreadPool,

newFixedThreadPool,

newScheduledThreadPool,

newSingleThreadExecutor,

现在有6种线程池了,没记那么多)

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

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

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

二、亲邻科技(甲方)

过去面试的时候,是星期五晚上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. 讲一讲项目,你是怎么做的

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

  1. 问的项目问题比较多,怎么设计功能的,数据库是怎么设计的
  2. 左连接,右连接,内连接的区别
  3. mysql 执行计划,有哪些看的
  4. springmvc 执行过程,从前端到后台,再返回前端的过程
  5. 权限验证,验权怎么做
  6. 数据库的锁(乐观锁,悲观锁,独占锁,共享锁)
  7. select, update, delete 对应哪些锁
  8. java 集合体系(list,set,map)
  9. arraylist 删除元素有哪些注意的地方
  10. arraylist 是线程安全的吗(不是,线程安全:vector,copyonwritearraylist)
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  1. 什么时候用 arraylist,linkedList(频繁增删用 linkedList)
  2. 深拷贝和浅拷贝
  3. 值传递和引用传递
  4. 多线程,线程池
  5. 资源同步是怎么做的?
  6. synchronized 可以修饰静态类吗
  7. lock 和 synchronized 的区别?用的话,你会怎么选
  8. 平时怎么学习的(看教程,看博客)
  9. 自己的规划是什么?(规划学微服务,分布式等等)
  10. 技术方面的优势是什么
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  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 常用的注入方式
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  1. spring 的 bean 有没有了解
  2. spring 事务的实现
  3. spring 的隔离
  4. 数据库的隔离级别(读未提交,读已提交,可重复读,串行化)
  5. 隔离级别的影响(脏读,不可重复读,幻读)
  6. 原子性,持久性(不可分割,保存到数据库)
  7. char 和 varchar 的区别(字节大小,''和"")面试官继续问还有没有。。。
  8. left join 和 right join 的区别
  9. sql 你是怎么调优的
  10. sql 执行计划(explain)
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  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应用场景(前后端分离,负载均衡)
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  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分钟了,因为还要工作,就打断面试了,结果晚上就来了第二轮面试」

Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

平安银行第二轮面试(面试了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等等)
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  1. redis 分布式锁
  2. b+ 树了解吗(mysql索引)
  3. 缓存击穿(缓存失效,在缓存找不到,在数据库有数据)
  4. 解决办法(设置缓存失效时间随机,错开时间,或者给个标记)(其实是设置热点数据永远不过期或者加互斥锁等等)
  5. threadlocal有了解吗(发音没听清,听成什么logo了,听了三遍没听出来,后面才反应他要说什么)
  6. 项目中遇到的困难(mrp功能)
  7. 服务器 cpu 上升到90以上的时候,还可以用多线程吗?
  8. 最近有研究什么新的技术吗?(在学习微服务)
  9. 微服务相关组件,一些没听过(说了一下这些是干嘛的)
  10. zookeeper有了解吗(分布式)
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

  1. 内存泄露有哪些情况?
  2. 从专业角度+性格,评价自己
  3. 你希望的项目是什么样的?(技术桟,技术氛围)
  4. linux常用命令(ls,cd,pwd,chmod,vi,whereis,find二进制文件)

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

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

结尾

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

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

最后:

关于以上面试题的答案以及知识点:

由于篇幅问题,只放这么多的面试资料,需要的可后台私信我【电子书】,来领取!

JVM

阿里面试必问JVM!我们所有的程序都运行在Java虚拟机上,只有对Java虚拟机底层原理进行深入的学习,全面理解JVM的运行机制、运行时数据区、垃圾收集算法等,还有事务及Spring MVC整个流程、AQS等。

知识点:

1.基本概念和运行过程

2.1线程

2.2 JVM内存区域

2.3 JVM 运行时内存

2.4 垃圾回收与算法

2.5 JAVA 四种引用类型

2.6 分代收集算法VS 分区收集算法

2.7 GC 垃圾收集器

2.8 JAVA IO/NIO

2.9.JVM 类加载机制

JVM面试题

  1. JVM 内存分哪几个区,每个区的作用是什么?
  2. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  3. 简述 Java 垃圾回收机制?
  4. Java 中垃圾收集的方法有哪些?
  5. Java 内存模型
  6. Java 类加载过程?
  7. 简述 Java 类加载机制?
  8. 类加载器双亲委派模型机制?
  9. 什么是类加载器,类加载器有哪些?
  10. 简述 Java 内存分配与回收策略以及 Minor GC 和Major GC?
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 

MySQL

MySQL的原理、底层、优化已经成为一个合格的程序员必备技能。开发人员对MySQL的掌握,越深入,你能做的事情就越多。

知识点:

MySQL存储引擎

共享锁及排它锁

MySQL的分区

MySQL事务及隔离性级别

执行计划

Btree与B+tree索引

Sql慢查询

Sql优化

MySQL面试题

  1. 请解释关系型数据库概念及主要特点?
  2. 请说出关系型数据库的典型产品、特点及应用场景?
  3. 请详细描述 SQL 语句分类及对应代表性关键字。
  4. 什么是 MySQL 多实例,如何配置 MySQL 多实例?
  5. 如何加强 MySQL 安全,请给出可行的具体措施?
  6. 误操作执行了一个 drop 库 SQL 语句,如何完整恢复?
  7. 详述 MySQL 主从复制原理及配置主从的完整步骤。
  8. MySQL 如何实现双向互为主从复制,并说明应用场景?
  9. MySQL 如何实现级联同步,并说明应用场景?
  10. MySQL 主从复制故障如何解决?
Java程序员想要靠外包刷题,结果却大跌眼镜,心态都崩了
一、迈思(面试了30分钟)
二、亲邻科技(甲方)
一面:hr(不到10分钟)
二面:技术(不到20分钟,答的有点差)
三、金蝶软件(甲方,面试了40分钟)
四、平安银行(外包,面试了40分钟,因为有事,最后中断了)
平安银行第二轮面试(面试了26分钟)
结尾
最后:
JVM
MySQL

 我把学习资料都整理在网盘了,获取方式:点击链接《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。