淦,三年程序员粉丝靠外包刷经验,结果让人心态大崩了

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

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

自我介绍
左连接(a 表左连接 b 表,a 表全部数据出来,b 表没有的数据为空)
a 表左连接 b 表,b 表左连接 c 表,c 表左连接 a 表,这样的数据是什么数据
(博主当时有点懵,回答全连接,全部数据会出来。。。)

sql:一个班的学生有两个字段,一个字段叫分数,另外一个字段叫组名,有 4 个组,查出每个组的第一名,sql 怎么写
select group_name,max(score) from table group by group_name order by group_name

数据库引擎有哪些(myIsam,InnoDB 等等)
myIsam 和 Inno DB的区别(InnoDB 支持事务,外键,崩溃后恢复,InnoDB 行级锁,myIsam 表级锁)
myIsam 的优点(博主当时只记住了 InnoDB 的优点,没想到面试官问到了 myIsam 的优点,速度快,磁盘空间占用少)

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

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

hashmap 的实现(数组+链表+红黑树)
put 一个 key 和 value,怎么确定数组的下标,如果有两个key put到同个位置,怎么做?(根据key计算hash值,根据hash确定下标等等)

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

concurrentHashMap 是怎么实现线程安全的?具体的实现?两个线程同时 put 两个 key 是怎么做的?
1.7数组+链表,分段锁,1.8数组+链表+红黑树,cas+synchronized

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

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

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

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

怎么查锁日志,线程日志?
这个不知道

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

谷歌 guava 缓存用过吗?
没用过

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

二、亲邻科技(甲方)

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

一面:hr(不到10分钟)
简单自我介绍,对技术,薪资有要求什么的,跳槽原因,评价自己,公司加班挺多的,问能不能接受

二面:技术(不到20分钟,答的有点差)
对称加密和非对称加密的区别
跨域脚本攻击(还有好几个没听过)
数据库隔离级别(读未提交,读已提交,可重复读,串行化)
不可重复读和幻读是什么?(a重复读同个数据,b修改数据,a再次读,就是不可重复读;a修改某些数据,b从中插入一条数据,a会发现还有一条数据没修改,那么就是幻读)
死锁是什么?产生原因?怎么解决(竞争同一资源,四个条件,破坏四个条件,这一块没答好)
服务器 cpu 百分百,怎么排查(ps 查看进程,答的不是很好,毕竟这方面没研究。虽然公司也遇到了 cpu 百分百的情况,但是解决办法是把需要大量运算的 mrp 功能给禁掉,后面加内存,加服务器。这一块我可不敢实话实说)
nginx 可以用来做什么(负载均衡,反向代理,面试官还继续问还有呢,我不知道什么了,我说可以拦截 ip 等等)
cas 是什么?(乐观锁的一种实现,会造成aba问题,加版本号或者时间戳)
redis 持久化机制,rdb 和 aof 的优缺点(全量数据备份,安全性低,备份间隔时间长;增量数据备份,数据安全,文件大)
spring 异步注解(没用过)
讲一讲类加载机制
内存泄露和内存溢出的区别
还问了其他一些题目,不太记得了
讲一讲项目,你是怎么做的

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

问的项目问题比较多,怎么设计功能的,数据库是怎么设计的
左连接,右连接,内连接的区别
mysql 执行计划,有哪些看的
springmvc 执行过程,从前端到后台,再返回前端的过程
权限验证,验权怎么做
数据库的锁(乐观锁,悲观锁,独占锁,共享锁)
select, update, delete 对应哪些锁
java 集合体系(list,set,map)
arraylist 删除元素有哪些注意的地方
arraylist 是线程安全的吗(不是,线程安全:vector,copyonwritearraylist)

什么时候用 arraylist,linkedList(频繁增删用 linkedList)
深拷贝和浅拷贝
值传递和引用传递
多线程,线程池
资源同步是怎么做的?
synchronized 可以修饰静态类吗
lock 和 synchronized 的区别?用的话,你会怎么选
平时怎么学习的(看教程,看博客)
自己的规划是什么?(规划学微服务,分布式等等)
技术方面的优势是什么
代码怎么优化,重构(单一职责,共用等等)
自己的网站是怎么进行性能优化的?(加 cdn,加 redis)

你有什么想问我的?你们那边用到的技术是什么?面试官:技术桟是封装框架,没有前端,用拖拉组件什么的,微服务是 dubbo,数据库是 oracle,侧重点是业务,技术次要。
最后面试官说:有四轮面试,这边面试完跟总监商量一下(剩下3轮都不是技术面)

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

spirngboot 启动原理(内嵌 tomcat…)
启动的注解(springbootapplication)
springboot 核心配置
spring 常用的模块,核心
说一说 ioc 和 aop
spring 常用的注入方式
spring 的 bean 有没有了解
spring 事务的实现
spring 的隔离
char 和 varchar 的区别(字节大小,’'和"")面试官继续问还有没有。。。
left join 和 right join 的区别
sql 你是怎么调优的
sql 执行计划(explain)
堆栈有了解吗
深拷贝,浅拷贝
「问的时间差不多40分钟了,因为还要工作,就打断面试了,结果晚上就来了第二轮面试」
在这里插入图片描述

平安银行第二轮面试(面试了26分钟)
mysql 查询,有很多关联的表,怎么优化(表加字段,适当冗余,少关联表,不要用*,in,null,or, %等等)
索引失效的情况(in,null,or, %等等)
常用的集合类(list,set,map及实现类)
线程安全的容器有哪些(vector,copyonwritearraylist,hashtable,concurrenthashmap)
concurrenthashmap 是怎么保证线程安全的(1.7用分段锁,16个都上锁,1.8用cas+syn)
hashmap 的数据结构(1.7数组+链表,多线程会形成一个环,cpu会飙升100%,1.8数组+链表+红黑树)
什么情况下会转成红黑树(key,hash,数组大于64,链表大于8,转成红黑树)
重写了 equals,还需要重写 hashcode 方法吗(因为根据 key,hash 计算出来有可能会冲突,所以要重写hashcode)
链表是双向链表吗
redis的数据结构(string,set,sort set,list,hash,bitmap等等)

redis 分布式锁

b+ 树了解吗(mysql索引)
缓存击穿(缓存失效,在缓存找不到,在数据库有数据)
解决办法(设置缓存失效时间随机,错开时间,或者给个标记)(其实是设置热点数据永远不过期或者加互斥锁等等)
threadlocal有了解吗(发音没听清,听成什么logo了,听了三遍没听出来,后面才反应他要说什么)
项目中遇到的困难(mrp功能)
服务器 cpu 上升到90以上的时候,还可以用多线程吗?
最近有研究什么新的技术吗?(在学习微服务)
微服务相关组件,一些没听过(说了一下这些是干嘛的)
zookeeper有了解吗(分布式)

内存泄露有哪些情况?
从专业角度+性格,评价自己
你希望的项目是什么样的?(技术桟,技术氛围)
linux常用命令(ls,cd,pwd,chmod,vi,whereis,find二进制文件)
面试官:到岗时间比较急,技术栈是 springboot+dubbo,微服务集群,zookeeper+redis+mysql 等等

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

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

最后:
关于以上面试题的答案以及知识点,需要的可以点击这里暗号CSDN~自行下载

JVM

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

知识点:
基本概念和运行过程
线程
JVM内存区域
JVM 运行时内存
垃圾回收与算法
JAVA 四种引用类型
分代收集算法VS 分区收集算法
GC 垃圾收集器
JAVA IO/NIO
JVM 类加载机制

面试题:
JVM 内存分哪几个区,每个区的作用是什么?
如何判断一个对象是否存活?(或者 GC 对象的判定方法)
简述 Java 垃圾回收机制?
Java 中垃圾收集的方法有哪些?
Java 内存模型
Java 类加载过程?
简述 Java 类加载机制?
类加载器双亲委派模型机制?
什么是类加载器,类加载器有哪些?
简述 Java 内存分配与回收策略以及 Minor GC 和Major GC?

MySQL

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

知识点:
MySQL存储引擎
共享锁及排它锁
MySQL的分区
MySQL事务及隔离性级别
执行计划
Btree与B+tree索引
Sql慢查询
Sql优化

面试题

请解释关系型数据库概念及主要特点?
请说出关系型数据库的典型产品、特点及应用场景?
请详细描述 SQL 语句分类及对应代表性关键字。
什么是 MySQL 多实例,如何配置 MySQL 多实例?
如何加强 MySQL 安全,请给出可行的具体措施?
误操作执行了一个 drop 库 SQL 语句,如何完整恢复?
详述 MySQL 主从复制原理及配置主从的完整步骤。
MySQL 如何实现双向互为主从复制,并说明应用场景?
MySQL 如何实现级联同步,并说明应用场景?
MySQL 主从复制故障如何解决?

这份面试题的包含的模块分为19个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM 需要本资料的可以自行领取点击这里~ 暗号CSDN!!在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47345084/article/details/111559268