文档章节

滴滴面试题答案思路

指尖Coding
 指尖Coding
发布于 11/18 18:29
字数 801
阅读 26
收藏 0

1.mysql   

1.1.介绍下介绍下innodb的索引类型、数据结构

普通索引,唯一索引,主键索引:也就是聚簇索引,全文索引(FULLTEXT),聚集索引,非聚集索引等。

数据结构B+树:

B+树特点

1.矮胖型,多路复用树,树的高度最大为3。

2.所有数据都是存储在叶子节点上,非叶子节点存储索引(范围存储)。

3.查询IO次数少,查询效率高。 主键查询,只需要一次IO.

参考:https://blog.csdn.net/c_royi/article/details/83826121

1.2.为什么这么设计(为什么不用B树)

B树 量大的时候高度太大,而且容易左旋和右旋。搜索性能不行。

2.JVM   

2.1.介绍jvm模型   

 

2.2.介绍垃圾回收   

2.3.gc的触发条件是什么   

2.4.说一个你对gc调优的经历

3.JDK   

3.1.介绍HashMap(结构、原理、为什么链表调整为树的阈值是8 — ps:这个我也不知道)  

线程不安全,底层使用数组加链表实现,链表是为了解决hash冲突。

key->计算hashCode->位移->计算出下标,如果2个key计算出来的下标一样,第二key放进去的时候,遍历这个数组对应的链表,那么就使用key的equals方法去比较,如果eqals相同,就覆盖,反之就放在链表的头部。

在jdk1.8的时候了,链表长度超过8的时候,会自动转变为红黑树数据结果。因为红黑树查询效率高。如果不转继续使用链表,那么查询效率较低。

3.2.ConcurrentHashMap(原理、与HashMap区别) 

线程安全,使用的是分段锁,put的时候只对对应的 hash桶上锁,未上锁之外的数据读写不影响。在jdk1.8之后,原来的这个synchronized这个锁,改为synchronized+cas(比较并替换)实现,类似无锁化串行设计,加锁粒度更细,效率更高。

3.3.lock 与 synchronize(实现原理、二者区别、synchronize的锁升级)

Lock是一个接口,而synchronized是关键字。
synchronized会自动释放锁,而Lock必须手动释放锁。
Lock可以让等待锁的线程响应中断,而synchronized不会,线程会一直等待下去。
通过Lock可以知道线程有没有拿到锁,而synchronized不能。
Lock能提高多个线程读操作的效率。
synchronized能锁住类、方法和代码块,而Lock是块范围内的

4.Spring   

4.1.为什么选择用spring(ps:我觉得问的挺水)   

系统整合,系统结构,模块化,切面化,简化开发。

4.2.说下AOP(原理:jdk动态代理、cglib),举个应用AOP的例子   

AOP底层使用jdk动态代理和cglib实现,

在方法前后记录日志,可以使用AOP,跟业务无关。

4.3.SpringBoot(为什么用,原理)

© 著作权归作者所有

指尖Coding
粉丝 2
博文 70
码字总数 43961
作品 0
静安
私信 提问
加载中

评论(1)

一不留神
一不留神
有几个关于mysql优化的问题,请教一下:
1.mysql 普通索引,范围查询,有时候走索引,有时候不走索引。
select id,name,xxxx from t where t<10000 类似这种的,查询表中的大部分字段。 当t范围小的话会有走索引的情况

2.mysql 组合索引 (date,varchar),第一个索引是日期类型,第二个是字符串。
select select id,name,xxxx from t where date<'2018-11-11' and varchar>'1' 类似这种的,不走索引。当把组合索引去掉,剩余单字段索引date,有可能走索引,说的有可能,跟第一点现象一样。但是,还出现即便组合不走索引 date<'2018-11-11' and varchar>'1' 单列date索引出现了走索引的情况。

请问上述两种情况是什么原因呢?
2018年初,派卧底去阿里、京东、美团、滴滴带回来的面试题及答案

最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。 我特意整理了...

y0q2t57s
2018/05/10
0
0
2018的初冬,派卧底去阿里、京东、美团带回来的面试题及答案

最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。 我特意整理了...

别打我会飞
2018/12/05
47
1
2017的金秋,派卧底去阿里、京东、美团、滴滴带回来的面试题及答案

最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。 我特意整理了...

bntx2jsqfehy7
2017/10/19
0
0
2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案

最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。 我特意整理了...

youanyyou
2017/11/08
0
0
Git仓库操作命令

创建仓库 在当前目录执行,会生成目录文件,这个和SVN一致。 提交到仓库 :表示提交描述,必须要填。 添加到远端仓库 推送到远端仓库 克隆仓库 直接从远端把代码克隆下来。 仓库状态 仓库更新...

架构之路
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 匹诺曹也是韩国人

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @watergood :分享海先生的单曲《烟花巷》 《烟花巷》- 海先生 手机党少年们想听歌,请使劲儿戳(这里) @Cyber-Pan :已经很久没有十点前下过...

小小编辑
今天
7
1
Snack3 之 Jsonpath使用

Snack3 之 Jsonpath使用 一、 Snack3 和 JSONPath 介绍 Snack3 是一个支持JSONPath的JSON框架。JSONPath是一个很强大的功能,也可以在Java框架中当作对象查询语言(OQL)来使用。 <dependenc...

刘之西东
今天
4
0
7. 彤哥说netty系列之Java NIO核心组件之Selector

<p align="right">——日拱一卒,不期而至!</p> 你好,我是彤哥,本篇是netty系列的第七篇。 简介 上一章我们一起学习了Java NIO的核心组件Buffer,它通常跟Channel一起使用,但是它们在网络...

彤哥读源码
昨天
21
0
在Jupyter notebooks 中运行GRASS GIS

在Ubuntu16.04中,首先安装jupyter: python3 -m pip install --upgrade pippython3 -m pip install jupyter 然后创建一个sh脚本: # directory where GRASS GIS lives# GRASS GIS 的安装......

ddd口木呆
昨天
4
0
c++ get() getline()读取行

天王盖地虎626
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部