2. 潍柴面试复盘(公司内部面试—山东—电话面试)

结果

通过(但不想去--离职的导火索)领导说8个人面试就我一个过了,非去不可,不然就自己提离职,也是经历了这件事,悟出了些许人情世故QAQ

时间

2023.2.24

注: ----- 以下答案不再更新(考虑删除),统一在面试宝典中更新

stream流和for的区别?

stream流可以看作是for循环的一个语法糖;

stream有并发流,在超过百万级数据量时,使用stream流效率更高;

聚簇索引一个表为什么只能有一个?

由于聚簇索引是将索引和数据放在一起的,有多个的话会出现数据冗余。

隐藏点:通常主键索引就是聚簇索引,但也可以指定为非聚簇索引,这样就可以建立其他聚簇索引

B+和B、红黑树、hash结构的区别?

B+树的数据都存放在叶子节点上,且叶子节点本身是有序的,所以B+树的查询效率也就更高

区别:

b树的索引和数据存放在一起。树的高度比B+高,IO消耗也越多。

红黑树需要存储颜色信息,占用内存比较大,同时不支持范围查询,不适合海量数据的查询 (还有一个点:到时候再复盘一下)

hash结构等值查询是比较快的,但是不支持范围查询

为什么查询效率更高?

B+树的节点不存放数据,所以能存放更多的关键字数量,从而降低树的高度,减少IO次数

hashtable和 concurrenthashmap 的区别?

数据结构方面:

ConcurrentHashMap 1.7 采用分段数组+链表实现,1.8采用数组+链表+红黑树

hashtable采用数组+链表

线程安全方面:

ConcurrentHashMap 1.7 采用分段锁,使用的是 ReentrantLock,锁住部分分段数组 ,1.8采用 synchronized 和 CAS 来操作,一把锁锁住一个node节点

hashtable:使用synchronized 锁住整个容器,效率低。

分段锁怎么实现的?

上面说了,使用 ReentrantLock,锁住部分分段数组

索引有哪些?

主键,唯一,联合,正常,聚簇索引

主键和唯一有什么区别?

一个表只能有一个主键,但可以有多个唯一性索引;

主键可以作为外键的关联字段,且主键的key不能为空

对哪些字段加索引?

首先要求字段的区分度比较高

具体使用场景:

在where,group by,order by,表关联中常用的字段

这些情况都比较适合加索引

什么情况索引会失效?

重新总结

  • 索引不在查询条件或者查询的列
  • not in, <> 不走索引
  • like %在前面不走索引
  • 对于count(*)索引字段有not null约束 走索引,否则不走
  • 查询结果大于表的百分之25,优化器没必要走索引 (使用Limit限制,放redis里)
  • 查询条件使用函数在索引列上,运算 +,-、 * , /

sql怎么调优?

sql本身优化,尽可能走索引,避免全表查询,减少无用数据的查询

索引优化:

尽可能走索引

建立联合索引

查询优化:

使用 Explian 关键字分析select语句

切分大查询

#23届找工作求助阵地##你觉得今年春招回暖了吗#
全部评论
为啥不去
1 回复 分享
发布于 2023-04-04 20:46 山东
待遇怎么样呀
点赞 回复 分享
发布于 2023-03-17 17:21 山东
大佬什么岗呀
点赞 回复 分享
发布于 2023-03-17 17:33 四川

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
5 24 评论
分享
牛客网
牛客企业服务