慧策秋招Java一二面凉经

一面:

1. 对JVM初步的理解

2. JVM内存模型

3. 代码的运行过程描述一下

  • 编译成字节码文件
  • 虚拟机二进制文件
  • 运行调动对应的操作系统

4. 说下了解集合类

只说了Collection:List和Set

Map也是集合类!!!

5. 用的比较多的? List。

6. subList方法有没有用过?(对List进行裁剪) 没用过

7. 如何对List数据进行删除?

答:遍历找到下标,出来通过下标删除。

那不就两遍循环了

答:遍历,判断,remove()方法

上手敲一下-----会报错!!!!

怎么解决:用迭代器去处理就不会有问题了

8. 你知道哪些MySQL方面的知识

开始吟唱八股……存储引擎,索引,ACID,隔离级别

一个人吟唱了11分钟

9. 功能已上线,比如说数据库cpu比较高,怎么去定位当中的问题呢

10. 定位到某条sql,怎么知道这条sql问题出在哪

答:explain:type,possible_key和key

还知道其它吗?

11. 一条sql扫描了100w条数据,除了建索引,还有什么方法?

提示:区分度大的前提:业务匹配 不用性别做索引

  • 1. 选用区分度大的列:如不选用性别,选择日期等等
  • 2. 避免使用select *
  • 3. 简化 WHERE 子句,避免使用复杂的计算或函数调用,尽量使用明确的值的范围
  • 4. 尽量使用inner join
  • 5. 分区表,按照某些条件(如日期)将不同表分区,减少查询的表
  • 6. 在不需要返回所有数据的情况下,使用limit和offset,返回部分数据

12. ACID事务实际使用

13. 事务失效的情况

14. 一个事务里的sql,另一条sql没有事务,是ACID里面的哪个

那能不能查到事务里面没有提交的数据?

不能,spring事务默认是数据库默认隔离级别,可重复读

如果我想让它查到呢?做法是不安全的 修改事务的默认隔离级别为读未提交

15. 手写sql

Order:oid,time ,uid

OrderDetail:oid,gid, num

Goods:gid,name

Select distinct name ,sum (num),

from order o

join orderdetail od on o.oid = od.oid

join goods g on od.gid = g.gid

where time between 7 and 8

and uid = 1

group by gid

16. 当前sql慢在哪个地方?换个问法,怎么让它加快,索引加哪?

建立一个time 和uid的联合索引。

二面:

MySQL拷打

1. 平常对SQL优化的了解

2. 知道的数据库索引有哪些

3. 索引合并和索引下推了解过吗 没有

4. 索引最左前缀匹配法则

5. 索引的优劣势

需要维护:数据库读写,读的效率高了,写的效率相对降低一些

6. 有无实际SQL优化经验

7. Join用的多吗

8. Join怎么提高查询性能?怎么建索引能够让查询效率最大呢

涉及到连接查询时建索引的一些基本规则

9. 1)不用联查怎么从两张表中拿到数据(自己前面挖的坑) in

简单点说就是:遍历a表集合取出b表数据

2)代码层面怎么处理?组装数据的流程?

两种方式:①循环遍历a,a中循环遍历b,挨个循环比较匹配b表数据则取出

②Map(key为主键,value为数据),将b中数据放入map中,a直接通过map去获取

3)分析两种做法的优缺点:

第一种复杂度高 第二种空间换时间 线程不安全,并发(跟这个没关系,不可能并发,除非用到jdk8的并行流)

10. JDK8的并行流了解吗

11. JDK相关的并发工具类了解吗?

12. 多线程有哪些类可以实现? 线程池了解哪些?

13. JDK8并行流底层Fork/Join和Future机制了解过吗

14. 对JVM的了解?垃圾回收器对哪个比较熟悉?

15. G1内存分布了解吗

16. Spring、SpringBoot挑点擅长的讲讲

吟唱两分钟

17. Spring启动干了哪些事情,比方说IOC,干了哪些事情到能提供给使用方去使用

18. Bean从创建到销毁的过程

19. 追问:BeanNameAware和ApplicationContextAware是在什么时候生效的

20. 更想听到整体的一个启动流程

面试官开始吟唱

Spring早期借助xml文件,现在借助注解,启动前的解析过程,需要对应的解析器做对应的处理,解析器最后生成标准的反参,反参里面将对应的bean解析成相应的一些元数据,涉及到类对应的元数据,方法对应的元数据,还有在BeanFactory里面的一个Map

21. 这个Map有关注过吗,用什么?HashMap可以吗?

面试官开始吟唱

读 :ApplicationContext getBean去获取

写 :项目启动过程中,串行做解析,创建beanDefinition往map中去放,会出现并发问题

所以底层用的是ConcurrentHashMap

22. Springcloud有了解吗

23. 有阅读过框架的源码吗

24. Redis了解吗?项目中的实际使用

25. Redis的分布式锁

26. 了解rabbitMQ外其它的消息队列吗

#慧策(掌上先机)##慧策{北京掌上先机}#
全部评论
真强
4 回复 分享
发布于 10-17 16:18 广东
强度这么高吗
点赞 回复 分享
发布于 10-17 15:08 陕西
是当场约的二面吗?
点赞 回复 分享
发布于 10-21 20:47 北京

相关推荐

头像
11-07 14:49
东北大学 Java
点赞 评论 收藏
分享
10.31一面45min 11.4二面hr面速通最搞笑的一集。因为我简历上放了博客和项目地址。所以开局直接说爬了一下我的博客看了我的项目网站挺不错的hhh。最难蚌的是我博客上放了一个前端面经。面试官突然灵机一动唉 那我就你的面经问你问题吧!(我:这不成了免费题库了???)虽然是我总结的,但是其实有一些细节忘了。(三道输出题第一次全答错了还好第二次基本答对了。)下面就是正文烤面筋:1.flex 1和flex auto区别(举例,一个父容器设置display: flex; width:1000px;左边一个子元素width: 100px;右边的这样设置flex:1; width:200px; flex-basis:300px;)问:右边的有多宽?懵了,说应该200px,不知道对不对。gpt给的是900px。2.子选择器结合相邻兄弟选择器,设置了一个color: red; 问哪一个div是红色。还有结合伪类和属性选择器的问题。(答对了但没完全说清楚。)3.本来说看看HTML部分因为没有就没问4.sort会改变原数组吗,有没有不改变原数组的排序方法(冒泡,选择,插入?面试官:没那么复杂)5.看到我总结的深浅拷贝,讲讲JSON实现的深拷贝有什么缺点。(有丢失函数日期undefined等问题,无法解决循环引用,原型链丢失。)怎么解决循环引用?(手动实现,用weakmap)6.因为我总结了事件循环原型链那些,出了三道输出题目见结尾。7.讲讲promise,还有all,allSettled,race,any的各自作用。8.问了vue3的ref还有reactive的区别(对数组进行包装该用哪个?又答错了,不过给我很详细的说了一下为什么用ref,其实ref底层也是reactive)9.vuex和pinia实现持久化需要插件,为什么不能自定义一个全局变量代替呢?(因为方便管理?又是一个不知道的问题)10.反问问了下对我技术提升的建议,探探口风。本来以为寄了,听起来还行,可能给他逗笑了两次,因为我博客的面经有些是空着的,我直接说空着的还没总结就是不会问了下技术栈,详细的跟我讲了一下,还有告诉我有三面就总结到这里吧,不管过不过还是挺开心的。难得遇到边聊天边问的面试了,虽然我做了一个网易云音乐的项目,当时快手面试官直接黑着脸说烂大街了。但是这个面试官笑着说他刚毕业的时候也是做的这个,还问我是不是B站学的还是自己做的hhh。(当然是独立知识产权啦!)11.4二面七分钟速通产品经理面的 开局就说不用说技术细节随便聊了聊天11.4当天约了hr面11.7oc
我已成为0offer的糕手:你这面试官水平不行,自己背的八股就是错的,ref底层和reactive没关系,数组的响应式两个也都可以做。这两个最大区别在于.value是属性,所以你重新赋值一个对象是可以的,因为proxy拦截会把它变成响应式。但是reactive不行,因为他本身就返回一个proxy拦截的对象,因为要实现响应式,然后你又重新赋值一个对象类型的话,相当于把proxy给破坏了,就不是响应式了,而ref你修改的只是对象里面value的值,对象本身没有被破坏,相当于对象里面嵌套对象。和数组本身没关系,是要不要重新赋值的问题,只是修改内部的话这两个都可以做响应式
查看9道真题和解析
点赞 评论 收藏
分享
8 32 评论
分享
牛客网
牛客企业服务