07 面试

作者:geek_bobo
链接:https://ac.nowcoder.com/discuss/624990?type=2&order=0&pos=27&page=1&ncTraceId=&channel=-1&source_id=discuss_tag_nctrack
来源:牛客网

  1. 自我介绍
  2. 介绍一下项目
  3. 分库分表
  4. 介绍一下你理解的JVM
  5. GC回收算法
  6. OOM的排查
  7. 对分布式的了解
  8. SQL索引优化。
  9. 索引失效
  10. 线程池的参数
  11. redis的数据类型
  12. SpringBoot
  13. 线程的状态和线程状态之间的转换。
  14. log日志有几个级别
  15. 异常体系
  16. 反问

面试过程23min,面试的总体感觉不错,面试官很和蔼。许愿offer

介绍一下项目

几乎每一个都会问关于项目的问题,就算抄的,直接网上下载的,一定要了解他做了什么,怎么做,选用的技术栈,遇到问题的解决方法。唬住了叫50k,没唬住叫5k。

分库分表

  • 分库:从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。
  • 分表:从单张表拆分成多张表的过程,将数据散落在多张表内。

一般只做水平分表,id使用雪花算法分布式id。

介绍一下你理解的JVM

计算机组成的硬件和操作系统之后就是虚拟机,各类应用多基于虚拟机。

image-20210929153708611

java语言的跨平台性,靠jvm实现。

.java->.class->类加载器->运行数据区(运行数据区有堆栈等,外联执行引擎和本地方法接口)

绝大部分gc都是在堆中,因为堆中有:类加载读取了文件后, 类,方法,常量,变量,引用的真是对象

GC回收算法

可达性分析、引用计数法,复制算法,标记清除,标记压缩算法。

OOM的排查

ps -ef | grep 应用名
jstat  -gc  pid  5000(时间间隔)

ps参数

e (all processes)显示所有用户的进程此参数的效果和指定"a"参数相同

a 显示所有用户的所有进程(包括其它用户);

r 显示运行中的进程;

l 长格式输出;

f 用树形格式来显示进程;

SQL索引优化。

不会

索引失效

mysql觉得全表扫描更快时。剩下太晦涩记不住。

线程池的参数

七个

核心线程数,最大线程数,线程创建后无任务存活时间,存活时间单位,任务队列,线程工厂,拒绝策略

四大拒绝策略

ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。
ThreadPoolExecutor.DiscardPolicy:丢弃任务,但是不抛出异常。
ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新提交被拒绝的任务
ThreadPoolExecutor.CallerRunsPolicy:由调用线程(提交任务的线程)处理该任务

redis的数据类型

string 常规key-value缓存应用; 常规计数:微博数,粉丝数等。 粉丝

hash hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值。如用户信息

key=JavaUser293847
value={
  “id”: 1,
  “name”: “SnailClimb”,
  “age”: 22,
  “location”: “Wuhan, Hubei”
}

list list 就是链表,Redis list 的应用场景非常多,也是Redis最重要的数据结构之一,比如微博的关注列表,粉丝列表,消息列表等功能都可以用Redis的 list 结构来实现。

set set 对外提供的功能与list类似是一个列表的功能,特殊之处在于 set 是可以自动排重并不重复。共同关注、共同粉丝、共同喜好等功能

zset 和set相比,sorted set增加了一个权重参数score,使得集合中的元素能够按score进行有序排列。,弹幕信息

SpringBoot

我认为是springmvc是升级版,springboot遵循约定大于配置,去除了视图解析,专注的后台控制,简化了配置。

我感觉boot是前后端分离的理念产物,springBoot专注于单体微服务接口开发,和前端解耦。

线程的状态和线程状态之间的转换。

新建/就绪/运行/堵塞/死亡。

image-20210929161016453

log日志有几个级别

debugg/info/warning/error/CRITICAL

DEBUG:详细的信息,通常只出现在诊断问题上
INFO:确认一切按预期运行
WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题- 在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。
ERROR:更严重的问题,软件没能执行一些功能
CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行

异常体系

image-20210929161405116

反问

分人

对hr问环境待遇

1、公司的公司氛围、团队建设是怎样子的?
2、这个岗位出差、加班多吗?
3、新人有培训吗?
4、公司的晋升机制是什么样子的呢?
5、公司有餐补、房补、交通补助之类的吗?
6、当面试官问你的薪资要求时,你可以先问一下公司的薪酬体系
7、您认为考核这个岗位员工的最重要指标有哪些?
8、您觉得这个团队的氛围怎么样?

对技术,问技术

1、自己所应聘的部门有多少人?进去后是由谁负责带?
基本上根据这个部门员工的人数,你就可以大致了解他们的实力和规模,甚至是预测出他们这个部门目前处于一个什么样的水平和状态。
2、贵公司就前端而言所用到的技术栈?
看自己掌握的技术是否与公司所用的技术是否匹配,并且可以看出自己与工作中所需要技能的差距。
3、贵公司的培训项目是什么样的呢?
4、这次面试多久可以出结果?是否还有下一轮?
5、学习建议类
(如果面试的时候对自己的技术面很没底的话,这个时候你可以问一问别人关于学习前端的一些经验,一般面试官都很乐于告诉你的)
6、您希望我们实习生身上具有什么样的特质呢?
(这个是看令人心动的offer上get到的问题,个人觉得很好)
7、您面试到现在,看了这么多候选人,您觉得我相对于这个岗位,还有哪些差距需要改善?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值