以下下划线是我一定没遇到过的。其他的有些遇到过,有些有可能会遇到。内容有点多,更多的在 https://github.com/young1lin/notes/blob/master/Prepare%20for%20Interview/%E9%9D%A2%E8%AF%95%E9%97%AE%E9%A2%98%E7%AE%80%E5%8D%95%E6%B1%87%E6%80%BB.md
HashSet 的底层实现说下?为什么内置 HashMap ?说下它的数据结构,为什么 loadFactor 是 0.75 ?为什么要高位参与与运算?为什么它的 size 是 2 的 n 次方?为什么默认是 16 ?讲下它的扩容机制。什么时候转红黑树,为什么要转红黑树?为什么它是线程不安全的,它的哪些方法是线程不安全的?为什么会造成死循环? 1.8 是如何解决这个问题的?它的线程安全的实现有什么? ConcurrentHashMap 和 HashTable 有什么区别?说下它 1.7 和 1.8 的实现是什么?有什么区别?为什么要这么做?为什么说 ConcurrentHashMap 是线程安全的?它的 get 操作是有锁的吗?它是强一致性的吗?它为什么是弱一致性的? ConcurrentHashMap 1.7 和 1.8 是如何扩容的?sizeCtl 参数是干什么的,讲讲变换过程?为什么要用 volatile 修饰?说说它的功能?什么是 MESI 协议? CPU 原语是什么?什么是可见性? JMM 说说是什么?为什么要有 JMM ? Happened-before 是什么?它和 synchronized 的区别是什么?锁的升级与降级说下是什么?偏向锁是什么? Mark-Wrod 说下?锁的粒度是什么?锁消除了解吗?锁会被合并吗?什么时候会发生?你刚才说了 CAS,你能说下它是什么东西吗?为什么要引入 CAS ? ABA 问题是如何解决的? AQS 了解吗?它是如何实现的? CLH 又是什么? ReentrantLock 和 synchronized 区别是什么?为什么 ReetrantLock 能实现公平锁?默认构造器是公平锁吗?为什么不是? Copy-on-Write 了解吗? Fork/Join 又是什么?什么是线程,什么是协程?你刚才说了管程?你能说下这几个到底是做什么的吗?线程池说下参数,四种内置的拒绝策略,以及它的执行流程。你用过吗?为什么要这么设置参数? I/O 密集型应用和计算密集型应用如何设置其参数?你具体的业务线程池的参数是怎么设计的?为什么?测过吗?你定制化开发过吗?线程池预留了 3 个供子类扩展的方法你知道是哪三个吗?能做什么你知道吗? ThreadLocal 是什么?它为什么会造成内存泄漏?你实际开发中用到过吗? Spring 事务用这个干什么的?什么是事务的 SavePoint ?你知道死锁吗?如何解决死锁? sleep 和 wait 的区别是什么? BIO 、NIO 、AIO 是什么?说下区别,以及如何使用?了解 Netty 吗?如何解决粘包问题? ChannelPipeline 又是什么? ByteBuf 知道吗?读写指针又是什么?它和 mina 的区别是什么?它的 Zero-Copy ?了解过 FastThreadLocal 吗?它为什么比 ThreadLocal 快?有看过其中源码吗? Netty 解决了 NIO 类库的什么问题?空轮询又是什么? RPC 又是什么?序列化和反序列化又是什么?几个核心类说下。是干什么的?
你说你了解虚拟机,你知道虚拟机的运行时数据区吗?哪些是线程共享的,哪些是线程独有的?你了解 JVM 调优吗?调优过吗?为什么要这么设置?垃圾回收算法有几种?为什么要分代收集? Young 区说说它的分布结构,为什么 Eden 区 80%?为什么大对象直接进入老年代?控制的参数是什么?一个对象如果不是大对象,怎样才能进入老年代?控制的参数是什么?什么时候会发生 OOM ?你遇到过吗?怎么解决的?为什么低版本的 JDK 要把永久代内存调大点?默认大小是多少你知道吗?什么是 Major GC,什么是 Minor GC ?什么情况下会频繁 GC ?你查看过 GC 日志吗?什么时候回收对象?引用计数和可达性分析是什么?为什么 Java 使用后者? Python 使用前者?什么是 GCRoot ?什么时候对象不可达? Java 的四种引用说下,分别用在什么场景?你知道 JDK 源码哪里有用到 WeakReference 吗?什么是 STW ?什么是 Safepoint ?类加载的过程说下,什么时候优化,以及不同的时候的主要优化是什么?解语法糖是什么时候?为什么在编译的时候解语法糖?什么是双亲委派模型?可以破坏吗?各个 ClassLoader 加载哪部分类的?你自定义过 ClassLoader 吗?你说你用过 Jstack 诊断 CPU 使用率飙升的情况,说下具体步骤? Arthas 用过吗? Class 文件格式说下,什么是魔数,Class 文件的魔数是什么? JMX 了解吗?
ACID 说下是什么。你说你优化过 SQL,怎么优化的说下。like '%xx%',like '%xx',like 'xx%' 哪种情况会用到索引?说下 MySQL 执行流程。WAL(Write-Ahead Logging) 知道吗? redo log 和 undo log 是什么,它们作用说下。你说你改过 buffer_pool_size 等参数,为什么要改它?它里面的数据结构说下是什么?为什么冷热 3:7 ? join_buffer 你说你也改了,为什么?什么是驱动表和被驱动表?如何优化?你说你建了索引,什么是蔟集索引,什么是非蔟集索引?什么是回表?什么时候会索引失效?你的二级索引什么用得多?为什么优先使用普通索引,而不是唯一索引? MySQL 会死锁吗?什么是间隙锁?它会导致什么问题? MVCC 说下是什么? 4 种事务说下是什么?哪种或者哪几种事务隔离级别能避免幻读?能避免脏读?你说你还开启了 binlog,能说说是什么吗? canal 用过吗?说说它的原理。MySQL 主从模式如何开启?你是如何优化 SQL 的?上亿级别的数据你是如何优化分页的?为什么不建议在 MySQL 中使用分区机制?为什么删了数据还是磁盘空间不变?自增主键用完了会怎么样?如何解决这个问题?自增主键什么时候是不连续的?这样做的好处是什么?为什么推荐用自增主键? B+ Tree 又是什么?如何迁移数据库?为什么不建议使用外键?在高版本的 MySQL 中 count(1) 和 count(*) 区别是什么? order by 是如何工作的?分页机制又是什么? ACL 和 RBAC 是什么? grant 之后一定要刷新吗?视图用过吗?它的作用说下。视图和表的区别说下。存储过程写过吗?存储函数和存储过程的区别说下。NoSQL 用过吗? OceanBase 了解吗? HBase 了解吗?<u>HBase 有哪些坑,你碰到过吗?什么是 RegionServer ?</u>什么时候用 NoSQL,它能取代 RDBMS 吗?你说你用过 Elasticsearch,能说下它的请求执行过程吗?它的总体架构说下。它的插件你用过吗?你们的分词策略是什么?倒排索引说下是什么。
给二叉树后序和中序遍历,写前序遍历。手写个快排。翻转一下链表。O ( 1 )找出链表有环。DFS 找出二叉树搜索树第 k 大节点。
实现一个多线程类,并用该线程类实例化 3 个线程 A,B,C ; A 线程打印字符 A,B 线程打印字符 B,C 线程打印字符 C ;启动这 3 个线程,要求启动线程的顺序为 C 线程->B 线程->A 线程,并且最后输出内容为:A B C 。禁止使用 sleep 函数。阿里应该还有各种多线程打印的问题,这个得准备。
接下来应该是更高级的算法题目,至少是 LeetCode Menium 难度的,翻转链表确实有点初级,练个半个小时就搞定了。暂时还没碰到,碰到我也挂了。
你平时是怎么学习一门新技术的?
最近有看书吗?看的什么书?能和我讲讲吗?
你为什么离职?下一家公司的期望是什么?期望薪资?
1
xlui 2021-02-07 12:39:51 +08:00 via Android 3
这排版,绝了
|
4
overthemoon 2021-02-07 14:26:41 +08:00 5
楼主文字排版是别有用心的,很符合八股文特征
|
5
AkideLiu 2021-02-07 14:29:52 +08:00 14
CS 慢慢变成文科了
|
6
yamasa 2021-02-07 14:50:38 +08:00
挺好 马克下。
|
7
aguesuka 2021-02-07 15:03:21 +08:00 via Android 26
楼主楼主,面试有没有遇到"markdown"怎么换行啊?
|
9
liprais 2021-02-07 15:10:54 +08:00
就 ACID 就不是一般面试官能懂的东西了
|
10
hehe12980 2021-02-07 15:51:01 +08:00
现在特么 JVM G1 默认就是最优设置, 基本不需要调参数,天天背 JVM 参数,累不累
|
11
yeqizhang 2021-02-07 15:56:20 +08:00 via Android
为什么内置 HashMap ?
|
12
reasonsyh 2021-02-07 15:57:20 +08:00
两年就问这么多了吗?
|
13
hehe12980 2021-02-07 16:01:48 +08:00
@yeqizhang HashSet 的目的就是为了放入容器的元素不重复,解决集合容器去重的问题,HashMap 的 key 刚好满足,所以 HashSet 的底层其实还是 HashMap, 只不过 value 给放入了一个固定 Object,其实这么干吧,行也行,还是写底层那一拨人偷懒了,因为 value 还是占内存的
|
15
chocovon 2021-02-07 16:03:48 +08:00 6
别念了,师傅,别念了
|
16
fallinlovewith 2021-02-07 16:09:20 +08:00 via Android
收手吧,up 祖,外面都是成龙。
|
17
UBcai 2021-02-07 16:12:58 +08:00 1
工作 2 年多,意思 1 年多都要懂这些了么?太可怕了吧
|
18
yazinnnn 2021-02-07 16:14:12 +08:00
java 怎么实现一个自定义重复规律的 hashSet?
|
19
gadsavesme 2021-02-07 16:31:06 +08:00
大概扫了一眼,都是些挺常规的八股文,平常一直都有在看的表示如果真面这些还是挺舒适的,如果平常看的不多的估计得尿遁。
|
20
jj783850915 2021-02-07 16:33:20 +08:00 via Android
经典八股文
|
22
jasonkayzk 2021-02-07 16:43:22 +08:00
可以说是非常的八股文了!
|
23
zhenglinsmile 2021-02-07 16:50:17 +08:00
这种看多了 我都不敢产生跳槽的想法
|
24
zifangsky 2021-02-07 17:09:22 +08:00
差不多,是现在 Java 面试的常问问题,不过楼主这个排版实在太糟糕了
|
25
omri 2021-02-07 17:13:45 +08:00 2
我倒是觉得这个排版很好啊,很有那种窒息感!
|
26
HarryQu 2021-02-07 17:42:05 +08:00
排版很不错,给人一种压迫感,哈哈。
|
28
cllvking 2021-02-07 17:50:06 +08:00
面向八股文编程
|
29
Takamine 2021-02-07 18:10:20 +08:00 via Android
真实。_(:з」∠)_
|
30
wapzjn 2021-02-07 18:13:03 +08:00
我靠,我建议加入 markdown 的<br>
|
31
redtea 2021-02-07 18:32:45 +08:00
你的方案底层逻辑是什么?顶层设计在哪里?最终交付价值是什么?过程的抓手在哪里?如何保证结果的闭环?你比别人的方案亮点在哪?优势在哪?我没有看到你的沉淀和思考,你有形成自己的方法论吗?你得让别人清楚,凭什么客户选的方案是你的,换别人不一样吗?
脉脉上看到的。 |
32
cvbnt 2021-02-07 18:44:39 +08:00 via Android
这个排版不能说好,可以说是棒极了,满屏的问号像极了刺客信条游戏里的地图,生动形象的体现了当前 java 面试一堆八股文的情况
|
33
yeqizhang 2021-02-07 18:47:34 +08:00 via Android
@hehe12980 我 tm 以为 java 为什么内置 hashmap,感觉这问题也太……看了两遍你的回答我才知道问的是 hashset 为什么用 hashmap 实现
|
35
superBearL 2021-02-07 18:50:47 +08:00
这排版...至少标个序号嘛
|
36
Helsing 2021-02-07 18:57:36 +08:00 via iPhone
令人窒息
|
37
drackzy 2021-02-07 19:14:41 +08:00
太卷了
|
38
chen11 2021-02-07 19:17:58 +08:00
。。我裂开了,好多问题啊。最近在学 java,se 学完了,ee 开始
|
39
Lemeng 2021-02-07 19:38:42 +08:00
排班简直让人窒息,不过还是感谢分享
|
40
liupeng2579793 2021-02-07 19:52:03 +08:00
没有 Spring,Springmvc,Spring boot,Redis,RocketMq,rabbitMq 相关的,你面的是假的吧
|
41
young1lin OP @liupeng2579793 这是一部分,全部的在 Github 上面,Spring MVC 的我忘写了
|
43
lifetimeporn 2021-02-07 21:25:53 +08:00 via iPhone
要开始爱上八股文,这样才能跳槽
|
44
ArJun 2021-02-07 21:29:08 +08:00
没觉得排版问题,问题是现在的 Java 面试就是这样,很臃肿,一堆什么乱七八糟的问题都问
|
45
young1lin OP @yamasa 这还是基础的,太变态我还没写呢,真的离谱,我工作一年多的时候问我 Spring Bean 生命周期。V2ex 发不了,太多了,只能给 Github 链接了
|
46
Auster 2021-02-07 22:12:40 +08:00
像极了 A 厂的一二面。。。
|
47
redford42 2021-02-08 00:10:05 +08:00
尊重一下面试官,背下八股文
|
48
shmilypeter 2021-02-08 01:03:09 +08:00
你录音了吧,要不然不可能记得住那么多。
真是 CS 学成文科了 |
49
geekaven 2021-02-08 01:13:15 +08:00
普通小厂也是这样吗?有点吓人
|
50
Jooooooooo 2021-02-08 01:14:46 +08:00 1
第一大段给楼主筛选下稍微有价值的题目, 如果不知道答案最好搜一搜
1. 讲下 hashmap 的扩容机制, 为什么要转红黑树? 2. 为什么 hashmap 会造成死循环? 3. ConcurrentHashMap 是怎么做到线程安全的? 4. volatile 的功能? 5. Happened-before 是什么? 6. CAS 是什么? 7. 说下 AQS 的原理? 8. java 中的线程怎么对应到操作系统上? 9. 具体的业务线程池的参数会考虑哪些因素? 10. NIO 的优势具体体现在哪? (真要讲一句, 就算整理过这些题目质量也够低的. 可能真正有价值的是第九题. 没真的搞过的人一般答不好, 算是一个符合 star 原则的题目 |
51
young1lin OP @shmilypeter 面多了,习惯了
|
53
young1lin OP @Jooooooooo 放心,都会问的,尤其是大厂,或者是大厂出来创业的人。上来给我八股文过招,哼,不过如此。线程池必问。NIO 、AIO 、BIO 必问,放心,会问到你不会为止。
这些只是最基本的,还有更多的内容在我的 Github 上面的,还有问我异常处理如何做的?我讲了 《 Effective Java 》的做法,以及 Spring 的 nested Exception 那种做法。 |
55
lewis89 2021-02-08 03:51:48 +08:00
@Jooooooooo #50
具体考虑哪些参数? 除开那个 stealworking 的线程池 其余的线程池只能设置核心线程数 跟 Queue 的具体实现 以及最大线程池数? 设置的话,一般都是按经验来,然后最好是有线程池监控,美团也是这么做的? 而且也要看是 IO 密集型还是计算密集型,计算密集型 妥妥的跟核心数量一致就行了 频繁的切换没有必要,也浪费 CPU 时间? 如果 IO 密集型,没得说,把下游的 硬盘 网络 IO 往死里搞,打满 80%为止..? |
56
lewis89 2021-02-08 03:54:19 +08:00
@liprais #9
如果只是说概念的话,ACID 倒还是好说 ,要说实现细节,光是 MySQL 引擎实现 C 的细节, 刷写脏页 以及 undolog 的格式 细节上来 可以问上半天.. 然后顺带问下 binlog 格式 以及主从同步.. 没办法就是这么卷 |
57
lewis89 2021-02-08 03:57:35 +08:00
@hehe12980 #10 可能面试官想了解你对 GC 算法的理解吧,其实就我而言,我也不会去背那些参数,因为大部分能调的几个参数无非是在吞吐量跟停顿时间 取得一个平衡,想要高吞吐量 那么就只能牺牲停顿时间,反之也是如此..
包括 G1 的 XX:MaxGCPauseMillis 意义不大,你调低了,自然吞吐量上不去,调高了停顿时间就会多,这个还是要根据你线上的 JVM 实例的真实情况 来做决定 |
58
ConradG 2021-02-08 04:44:38 +08:00
我比较在意那个 O(1)链表有环的算法。
|
59
ming7435 2021-02-08 08:30:04 +08:00
这尼玛真的是吓人,工作 10 年+的人不敢出去面试,因为不会背八股文
|
60
liupeng2579793 2021-02-08 10:16:10 +08:00
五分之一都没啊,好兄弟
|
61
MiracleShadow 2021-02-08 10:50:15 +08:00
@ConradG 应该是指空间复杂度 O(1),快慢指针
|
62
Jooooooooo 2021-02-08 12:19:14 +08:00
@lewis89 差不多往 io 密集和 cpu 密集的方向答就差不多. 另外一个就是队列最好是有界的, 防止意外把内存撑爆.
|
63
young1lin OP @Jooooooooo 2n+1 读写、n+1 计算,n 为核心数,后面还会问你,为什么这么设置?有什么讲究吗?
MySQL 不止问 undo log 、redo log,还会问蔟集索引,非蔟集索引,还有具体 SQL 优化,前面是基础。后面 MySQL 里面几个核心线程知道吗?说说它们的作用。MySQL 还不止问这些,我简历上写了调整了 MySQL 参数,buffer_pool_size 等,盯着我参数问,为什么要这么改?你还知道其他参数优化吗? 刚面试个简单的,找 N 个数前 10 大的数,我说 PriorityQueue 维护个 10 容量的小顶堆,O(1) 空间复杂度,O(n) 时间复杂度,然后让我手画一下 Java 的 PriorityQueue 的插入和删除的具体过程。 |
64
young1lin OP @liupeng2579793 发不了,V2ex 发不了那么长的,要注册 600 天好像
|
65
young1lin OP @ConradG 链表的简单题目之一,只要你刷过,一般都知道,O(1) 空间复杂度,快慢指针,还有其他链表题目,哑节点,双指针,额外堆栈存储,暴力遍历。
|
66
Jooooooooo 2021-02-08 13:06:14 +08:00
@young1lin 2n+1 读写当然不是正确的, 得考虑 io 的速度. 考虑这种场景, 一次请求需要 1s 才能返回, QPS 预估单机是 100, 那么设置多少是更合理的呢?
n+1 的计算也不是正确的, 考虑到操作系统也得用 cpu. 这个就看究竟做过多少实际调参了. |
67
java8 2021-02-09 09:56:51 +08:00
老哥们, 有整理好的八股文文章吗 发一下
|
68
EscYezi 2021-02-09 14:44:02 +08:00 via iPhone
能说一下楼主面的都是什么公司吗,打算年后去面试,有点被这帖子吓到了(工作一年半)
|
69
a01200304 2021-02-09 17:23:20 +08:00
这就是硬卷啊
|
70
young1lin OP @EscYezi
一线大厂:ali 系,DiDi 。 二线大厂:H3C,大华,安恒,涂鸦智能等。 次一点的厂:有数,兑吧,单创等等。 还有更小的公司就比较多了。 有些是做人工智能的,招 Java 但是要会大数据,想让我去做数仓。编程题,那个简单链表题目,主要是这个小公司出的。 其实主要是 ali 系的,问得比较细,问到你不会为止,比如 HashMap 相关的可以问半个小时。DiDi 比较直接,不给你整八股文。 千万 千万 千万别去外包,坑得要死。 Zoom 其实也挺不错的,只不过没投。ByteDance 也在杭州有分部,算法练练,试试看。 |
71
SkyLine7 2021-02-19 11:12:27 +08:00
两年面试我的面试官都不能把这些问题回答 80%
|
73
cmily54813 2021-02-23 16:16:03 +08:00 1
HashSet 的底层实现说下?
为什么内置 HashMap ? 说下它的数据结构,为什么 loadFactor 是 0.75 ? 为什么要高位参与与运算? 为什么它的 size 是 2 的 n 次方? 为什么默认是 16 ? 讲下它的扩容机制。什么时候转红黑树,为什么要转红黑树? 为什么它是线程不安全的,它的哪些方法是线程不安全的? 为什么会造成死循环? 1.8 是如何解决这个问题的? 它的线程安全的实现有什么? ConcurrentHashMap 和 HashTable 有什么区别? 说下它 1.7 和 1.8 的实现是什么? 有什么区别? 为什么要这么做? 为什么说 ConcurrentHashMap 是线程安全的? 它的 get 操作是有锁的吗? 它是强一致性的吗? 它为什么是弱一致性的? ConcurrentHashMap 1.7 和 1.8 是如何扩容的? sizeCtl 参数是干什么的,讲讲变换过程? 为什么要用 volatile 修饰? 说说它的功能? 什么是 MESI 协议? CPU 原语是什么? 什么是可见性? JMM 说说是什么? 为什么要有 JMM ? Happened-before 是什么? 它和 synchronized 的区别是什么? 锁的升级与降级说下是什么? 偏向锁是什么? Mark-Wrod 说下? 锁的粒度是什么? 锁消除了解吗? 锁会被合并吗? 什么时候会发生? 你刚才说了 CAS,你能说下它是什么东西吗? 为什么要引入 CAS ? ABA 问题是如何解决的? AQS 了解吗? 它是如何实现的? CLH 又是什么? ReentrantLock 和 synchronized 区别是什么? 为什么 ReetrantLock 能实现公平锁? 默认构造器是公平锁吗? 为什么不是? Copy-on-Write 了解吗? Fork/Join 又是什么? 什么是线程,什么是协程? 你刚才说了管程? 你能说下这几个到底是做什么的吗? 线程池说下参数,四种内置的拒绝策略,以及它的执行流程。你用过吗? 为什么要这么设置参数? I/O 密集型应用和计算密集型应用如何设置其参数? 你具体的业务线程池的参数是怎么设计的? 为什么? 测过吗? 你定制化开发过吗? 线程池预留了 3 个供子类扩展的方法你知道是哪三个吗? 能做什么你知道吗? ThreadLocal 是什么? 它为什么会造成内存泄漏? 你实际开发中用到过吗? Spring 事务用这个干什么的? 什么是事务的 SavePoint ? 你知道死锁吗? 如何解决死锁? sleep 和 wait 的区别是什么? BIO 、NIO 、AIO 是什么? 说下区别,以及如何使用? 了解 Netty 吗? 如何解决粘包问题? ChannelPipeline 又是什么? ByteBuf 知道吗? 读写指针又是什么? 它和 mina 的区别是什么? 它的 Zero-Copy ? 了解过 FastThreadLocal 吗? 它为什么比 ThreadLocal 快? 有看过其中源码吗? Netty 解决了 NIO 类库的什么问题? 空轮询又是什么? RPC 又是什么? 序列化和反序列化又是什么? 几个核心类说下。是干什么的? 你说你了解虚拟机,你知道虚拟机的运行时数据区吗? 哪些是线程共享的,哪些是线程独有的? 你了解 JVM 调优吗? 调优过吗? 为什么要这么设置? 垃圾回收算法有几种? 为什么要分代收集? Young 区说说它的分布结构,为什么 Eden 区 80%? 为什么大对象直接进入老年代? 控制的参数是什么? 一个对象如果不是大对象,怎样才能进入老年代? 控制的参数是什么? 什么时候会发生 OOM ? 你遇到过吗? 怎么解决的? 为什么低版本的 JDK 要把永久代内存调大点? 默认大小是多少你知道吗? 什么是 Major GC,什么是 Minor GC ? 什么情况下会频繁 GC ? 你查看过 GC 日志吗? 什么时候回收对象? 引用计数和可达性分析是什么? 为什么 Java 使用后者? Python 使用前者? 什么是 GCRoot ? 什么时候对象不可达? Java 的四种引用说下,分别用在什么场景? 你知道 JDK 源码哪里有用到 WeakReference 吗? 什么是 STW ? 什么是 Safepoint ? 类加载的过程说下,什么时候优化,以及不同的时候的主要优化是什么? 解语法糖是什么时候? 为什么在编译的时候解语法糖? 什么是双亲委派模型? 可以破坏吗? 各个 ClassLoader 加载哪部分类的? 你自定义过 ClassLoader 吗? 你说你用过 Jstack 诊断 CPU 使用率飙升的情况,说下具体步骤? Arthas 用过吗? Class 文件格式说下,什么是魔数,Class 文件的魔数是什么? JMX 了解吗? ACID 说下是什么。你说你优化过 SQL,怎么优化的说下。like '%xx%',like '%xx',like 'xx%' 哪种情况会用到索引? 说下 MySQL 执行流程。WAL(Write-Ahead Logging) 知道吗? redo log 和 undo log 是什么,它们作用说下。你说你改过 buffer_pool_size 等参数,为什么要改它? 它里面的数据结构说下是什么? 为什么冷热 3:7 ? join_buffer 你说你也改了,为什么? 什么是驱动表和被驱动表? 如何优化? 你说你建了索引,什么是蔟集索引,什么是非蔟集索引? 什么是回表? 什么时候会索引失效? 你的二级索引什么用得多? 为什么优先使用普通索引,而不是唯一索引? MySQL 会死锁吗? 什么是间隙锁? 它会导致什么问题? MVCC 说下是什么? 4 种事务说下是什么? 哪种或者哪几种事务隔离级别能避免幻读? 能避免脏读? 你说你还开启了 binlog,能说说是什么吗? canal 用过吗? 说说它的原理。MySQL 主从模式如何开启? 你是如何优化 SQL 的? 上亿级别的数据你是如何优化分页的? 为什么不建议在 MySQL 中使用分区机制? 为什么删了数据还是磁盘空间不变? 自增主键用完了会怎么样? 如何解决这个问题? 自增主键什么时候是不连续的? 这样做的好处是什么? 为什么推荐用自增主键? B+ Tree 又是什么? 如何迁移数据库? 为什么不建议使用外键? 在高版本的 MySQL 中 count(1) 和 count(*) 区别是什么? order by 是如何工作的? 分页机制又是什么? ACL 和 RBAC 是什么? grant 之后一定要刷新吗? 视图用过吗? 它的作用说下。视图和表的区别说下。存储过程写过吗? 存储函数和存储过程的区别说下。NoSQL 用过吗? OceanBase 了解吗? HBase 了解吗? <u>HBase 有哪些坑,你碰到过吗? 什么是 RegionServer ? </u>什么时候用 NoSQL,它能取代 RDBMS 吗? 你说你用过 Elasticsearch,能说下它的请求执行过程吗? 它的总体架构说下。它的插件你用过吗? 你们的分词策略是什么? 倒排索引说下是什么。 给二叉树后序和中序遍历,写前序遍历。手写个快排。翻转一下链表。O ( 1 )找出链表有环。DFS 找出二叉树搜索树第 k 大节点。 实现一个多线程类,并用该线程类实例化 3 个线程 A,B,C ; A 线程打印字符 A,B 线程打印字符 B,C 线程打印字符 C ;启动这 3 个线程,要求启动线程的顺序为 C 线程->B 线程->A 线程,并且最后输出内容为:A B C 。禁止使用 sleep 函数。阿里应该还有各种多线程打印的问题,这个得准备。 |
78
yRebelHero 2021-03-10 17:38:03 +08:00
楼主太强了,我顶多回答出百分之五六十,可能还是结结巴巴的,而且有些我都没怎么听过。面大厂这些一定要会吗?
|
79
fengwn 2021-03-10 17:57:33 +08:00
就尼玛离谱, Java 就是编程界的 996
|
80
young1lin OP @yRebelHero 这些还是基础,更难的我没写,我还没解答出来。问的实际应用场景,电商活动要保证优惠活动前后查询请求都要在 Redis 上,商品的优惠信息会变,Redis 如何设计之类的。还有问了我为什么 Redis 不能叫 WAL,我当时紧张没回答上来。
|
81
yRebelHero 2021-03-10 20:12:19 +08:00
@young1lin 这还是基础??那我进大厂无缘了。
|
83
young1lin OP @yRebelHero 真的很基础,多看书就好了,对应的书籍这些内容都有。
|