V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
young1lin
V2EX  ›  Java

Java 工作两年多,我面试过的题目

  •  
  •   young1lin · 293 天前 · 7772 次点击
    这是一个创建于 293 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以下下划线是我一定没遇到过的。其他的有些遇到过,有些有可能会遇到。内容有点多,更多的在 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 难度的,翻转链表确实有点初级,练个半个小时就搞定了。暂时还没碰到,碰到我也挂了。

    你平时是怎么学习一门新技术的?

    最近有看书吗?看的什么书?能和我讲讲吗?

    你为什么离职?下一家公司的期望是什么?期望薪资?

    83 条回复    2021-03-12 21:13:43 +08:00
    xlui
        1
    xlui   293 天前 via Android   ❤️ 3
    这排版,绝了
    young1lin
        2
    young1lin   293 天前
    @xlui 这个 V2EX 格式的问题,而且算是连环的问题,不是一个一行的问。Github 上就不一样
    zyzdxb
        3
    zyzdxb   293 天前
    @young1lin github 点进去也是一样的排版啊
    overthemoon
        4
    overthemoon   293 天前   ❤️ 5
    楼主文字排版是别有用心的,很符合八股文特征
    AkideLiu
        5
    AkideLiu   293 天前   ❤️ 14
    CS 慢慢变成文科了
    yamasa
        6
    yamasa   293 天前
    挺好 马克下。
    aguesuka
        7
    aguesuka   293 天前 via Android   ❤️ 26
    楼主楼主,面试有没有遇到"markdown"怎么换行啊?
    PonysDad
        8
    PonysDad   293 天前
    @aguesuka 哈哈哈哈哈哈
    liprais
        9
    liprais   293 天前
    就 ACID 就不是一般面试官能懂的东西了
    hehe12980
        10
    hehe12980   293 天前
    现在特么 JVM G1 默认就是最优设置, 基本不需要调参数,天天背 JVM 参数,累不累
    yeqizhang
        11
    yeqizhang   293 天前 via Android
    为什么内置 HashMap ?
    reasonsyh
        12
    reasonsyh   293 天前
    两年就问这么多了吗?
    hehe12980
        13
    hehe12980   293 天前
    @yeqizhang HashSet 的目的就是为了放入容器的元素不重复,解决集合容器去重的问题,HashMap 的 key 刚好满足,所以 HashSet 的底层其实还是 HashMap, 只不过 value 给放入了一个固定 Object,其实这么干吧,行也行,还是写底层那一拨人偷懒了,因为 value 还是占内存的
    efaun
        14
    efaun   293 天前
    @xlui #1 很符合面试夺命连环 call 的感觉了
    chocovon
        15
    chocovon   293 天前   ❤️ 6
    别念了,师傅,别念了
    fallinlovewith
        16
    fallinlovewith   293 天前 via Android
    收手吧,up 祖,外面都是成龙。
    UBcai
        17
    UBcai   293 天前   ❤️ 1
    工作 2 年多,意思 1 年多都要懂这些了么?太可怕了吧
    yazinnnn
        18
    yazinnnn   293 天前
    java 怎么实现一个自定义重复规律的 hashSet?
    gadsavesme
        19
    gadsavesme   293 天前
    大概扫了一眼,都是些挺常规的八股文,平常一直都有在看的表示如果真面这些还是挺舒适的,如果平常看的不多的估计得尿遁。
    jj783850915
        20
    jj783850915   293 天前 via Android
    经典八股文
    yamasa
        21
    yamasa   293 天前   ❤️ 2
    @UBcai 现在 Java 卷的难以想象,他这个列表里的这些题不算难的。还有些两三年分布式框架源码级别往死里问的
    jasonkayzk
        22
    jasonkayzk   293 天前
    可以说是非常的八股文了!
    zhenglinsmile
        23
    zhenglinsmile   293 天前
    这种看多了 我都不敢产生跳槽的想法
    zifangsky
        24
    zifangsky   293 天前
    差不多,是现在 Java 面试的常问问题,不过楼主这个排版实在太糟糕了
    omri
        25
    omri   293 天前   ❤️ 2
    我倒是觉得这个排版很好啊,很有那种窒息感!
    HarryQu
        26
    HarryQu   293 天前
    排版很不错,给人一种压迫感,哈哈。
    ALVC666
        27
    ALVC666   293 天前
    @omri 窒息感哈哈哈
    cllvking
        28
    cllvking   293 天前
    面向八股文编程
    Takamine
        29
    Takamine   293 天前 via Android
    真实。_(:з」∠)_
    wapzjn
        30
    wapzjn   293 天前
    我靠,我建议加入 markdown 的<br>
    redtea
        31
    redtea   293 天前
    你的方案底层逻辑是什么?顶层设计在哪里?最终交付价值是什么?过程的抓手在哪里?如何保证结果的闭环?你比别人的方案亮点在哪?优势在哪?我没有看到你的沉淀和思考,你有形成自己的方法论吗?你得让别人清楚,凭什么客户选的方案是你的,换别人不一样吗?

    脉脉上看到的。
    cvbnt
        32
    cvbnt   293 天前 via Android
    这个排版不能说好,可以说是棒极了,满屏的问号像极了刺客信条游戏里的地图,生动形象的体现了当前 java 面试一堆八股文的情况
    yeqizhang
        33
    yeqizhang   293 天前 via Android
    @hehe12980 我 tm 以为 java 为什么内置 hashmap,感觉这问题也太……看了两遍你的回答我才知道问的是 hashset 为什么用 hashmap 实现
    yeqizhang
        34
    yeqizhang   293 天前 via Android
    @redtea 兄弟你产品经理走错片场了吧
    superBearL
        35
    superBearL   293 天前
    这排版...至少标个序号嘛
    Helsing
        36
    Helsing   293 天前 via iPhone
    令人窒息
    drackzy
        37
    drackzy   293 天前
    太卷了
    chen11
        38
    chen11   293 天前
    。。我裂开了,好多问题啊。最近在学 java,se 学完了,ee 开始
    Lemeng
        39
    Lemeng   293 天前
    排班简直让人窒息,不过还是感谢分享
    liupeng2579793
        40
    liupeng2579793   293 天前
    没有 Spring,Springmvc,Spring boot,Redis,RocketMq,rabbitMq 相关的,你面的是假的吧
    young1lin
        41
    young1lin   293 天前
    @liupeng2579793 这是一部分,全部的在 Github 上面,Spring MVC 的我忘写了
    young1lin
        42
    young1lin   293 天前
    @aguesuka 我都说了,这是一块的问题,放到一块,如果是一个问题换一行,那这个就很长了
    lifetimeporn
        43
    lifetimeporn   293 天前 via iPhone
    要开始爱上八股文,这样才能跳槽
    ArJun
        44
    ArJun   293 天前
    没觉得排版问题,问题是现在的 Java 面试就是这样,很臃肿,一堆什么乱七八糟的问题都问
    young1lin
        45
    young1lin   293 天前
    @yamasa 这还是基础的,太变态我还没写呢,真的离谱,我工作一年多的时候问我 Spring Bean 生命周期。V2ex 发不了,太多了,只能给 Github 链接了
    Auster
        46
    Auster   293 天前
    像极了 A 厂的一二面。。。
    redford42
        47
    redford42   293 天前
    尊重一下面试官,背下八股文
    shmilypeter
        48
    shmilypeter   293 天前
    你录音了吧,要不然不可能记得住那么多。

    真是 CS 学成文科了
    geekaven
        49
    geekaven   293 天前
    普通小厂也是这样吗?有点吓人
    Jooooooooo
        50
    Jooooooooo   293 天前   ❤️ 1
    第一大段给楼主筛选下稍微有价值的题目, 如果不知道答案最好搜一搜

    1. 讲下 hashmap 的扩容机制, 为什么要转红黑树?
    2. 为什么 hashmap 会造成死循环?
    3. ConcurrentHashMap 是怎么做到线程安全的?
    4. volatile 的功能?
    5. Happened-before 是什么?
    6. CAS 是什么?
    7. 说下 AQS 的原理?
    8. java 中的线程怎么对应到操作系统上?
    9. 具体的业务线程池的参数会考虑哪些因素?
    10. NIO 的优势具体体现在哪?

    (真要讲一句, 就算整理过这些题目质量也够低的. 可能真正有价值的是第九题. 没真的搞过的人一般答不好, 算是一个符合 star 原则的题目
    young1lin
        51
    young1lin   293 天前
    @shmilypeter 面多了,习惯了
    young1lin
        52
    young1lin   293 天前
    @geekaven 小厂应该抽几道题目吧
    young1lin
        53
    young1lin   293 天前
    @Jooooooooo 放心,都会问的,尤其是大厂,或者是大厂出来创业的人。上来给我八股文过招,哼,不过如此。线程池必问。NIO 、AIO 、BIO 必问,放心,会问到你不会为止。

    这些只是最基本的,还有更多的内容在我的 Github 上面的,还有问我异常处理如何做的?我讲了 《 Effective Java 》的做法,以及 Spring 的 nested Exception 那种做法。
    young1lin
        54
    young1lin   293 天前
    @drackzy 就是这么卷,Java 是最卷的语言,这个不过分吧?
    lewis89
        55
    lewis89   292 天前
    @Jooooooooo #50

    具体考虑哪些参数? 除开那个 stealworking 的线程池

    其余的线程池只能设置核心线程数 跟 Queue 的具体实现 以及最大线程池数?

    设置的话,一般都是按经验来,然后最好是有线程池监控,美团也是这么做的?

    而且也要看是 IO 密集型还是计算密集型,计算密集型 妥妥的跟核心数量一致就行了 频繁的切换没有必要,也浪费 CPU 时间?

    如果 IO 密集型,没得说,把下游的 硬盘 网络 IO 往死里搞,打满 80%为止..?
    lewis89
        56
    lewis89   292 天前
    @liprais #9

    如果只是说概念的话,ACID 倒还是好说 ,要说实现细节,光是 MySQL 引擎实现 C 的细节, 刷写脏页 以及 undolog 的格式 细节上来 可以问上半天.. 然后顺带问下 binlog 格式 以及主从同步..

    没办法就是这么卷
    lewis89
        57
    lewis89   292 天前
    @hehe12980 #10 可能面试官想了解你对 GC 算法的理解吧,其实就我而言,我也不会去背那些参数,因为大部分能调的几个参数无非是在吞吐量跟停顿时间 取得一个平衡,想要高吞吐量 那么就只能牺牲停顿时间,反之也是如此..

    包括 G1 的 XX:MaxGCPauseMillis 意义不大,你调低了,自然吞吐量上不去,调高了停顿时间就会多,这个还是要根据你线上的 JVM 实例的真实情况 来做决定
    ConradG
        58
    ConradG   292 天前
    我比较在意那个 O(1)链表有环的算法。
    ming7435
        59
    ming7435   292 天前
    这尼玛真的是吓人,工作 10 年+的人不敢出去面试,因为不会背八股文
    liupeng2579793
        60
    liupeng2579793   292 天前
    五分之一都没啊,好兄弟
    MiracleShadow
        61
    MiracleShadow   292 天前
    @ConradG 应该是指空间复杂度 O(1),快慢指针
    Jooooooooo
        62
    Jooooooooo   292 天前
    @lewis89 差不多往 io 密集和 cpu 密集的方向答就差不多. 另外一个就是队列最好是有界的, 防止意外把内存撑爆.
    young1lin
        63
    young1lin   292 天前
    @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 的插入和删除的具体过程。
    young1lin
        64
    young1lin   292 天前
    @liupeng2579793 发不了,V2ex 发不了那么长的,要注册 600 天好像
    young1lin
        65
    young1lin   292 天前
    @ConradG 链表的简单题目之一,只要你刷过,一般都知道,O(1) 空间复杂度,快慢指针,还有其他链表题目,哑节点,双指针,额外堆栈存储,暴力遍历。
    Jooooooooo
        66
    Jooooooooo   292 天前
    @young1lin 2n+1 读写当然不是正确的, 得考虑 io 的速度. 考虑这种场景, 一次请求需要 1s 才能返回, QPS 预估单机是 100, 那么设置多少是更合理的呢?

    n+1 的计算也不是正确的, 考虑到操作系统也得用 cpu. 这个就看究竟做过多少实际调参了.
    java8
        67
    java8   291 天前
    老哥们, 有整理好的八股文文章吗 发一下
    EscYezi
        68
    EscYezi   291 天前 via iPhone
    能说一下楼主面的都是什么公司吗,打算年后去面试,有点被这帖子吓到了(工作一年半)
    a01200304
        69
    a01200304   291 天前
    这就是硬卷啊
    young1lin
        70
    young1lin   291 天前   ❤️ 1
    @EscYezi

    一线大厂:ali 系,DiDi 。

    二线大厂:H3C,大华,安恒,涂鸦智能等。

    次一点的厂:有数,兑吧,单创等等。

    还有更小的公司就比较多了。

    有些是做人工智能的,招 Java 但是要会大数据,想让我去做数仓。编程题,那个简单链表题目,主要是这个小公司出的。

    其实主要是 ali 系的,问得比较细,问到你不会为止,比如 HashMap 相关的可以问半个小时。DiDi 比较直接,不给你整八股文。

    千万 千万 千万别去外包,坑得要死。

    Zoom 其实也挺不错的,只不过没投。ByteDance 也在杭州有分部,算法练练,试试看。
    SkyLine7
        71
    SkyLine7   281 天前
    两年面试我的面试官都不能把这些问题回答 80%
    young1lin
        72
    young1lin   281 天前
    @SkyLine7 还好吧,我感觉面两年的面试官,应该最少工作 4 年,工作 4 年知道这些,不难。
    cmily54813
        73
    cmily54813   277 天前
    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 函数。阿里应该还有各种多线程打印的问题,这个得准备。
    findlisa
        74
    findlisa   270 天前 via Android
    @young1lin 楼主在外包呆着吗
    young1lin
        75
    young1lin   269 天前
    @findlisa 呆过一段时间,现在走了,真的坑。
    findlisa
        76
    findlisa   269 天前 via Android
    @young1lin 在职面试吗,我现在都抽不出时间复习,想裸辞了
    young1lin
        77
    young1lin   268 天前 via Android
    @findlisa 不要裸辞,每天坚持三个小时,拿来复习,巩固,两个月左右,差不多可以了
    yRebelHero
        78
    yRebelHero   262 天前
    楼主太强了,我顶多回答出百分之五六十,可能还是结结巴巴的,而且有些我都没怎么听过。面大厂这些一定要会吗?
    fengwn
        79
    fengwn   262 天前
    就尼玛离谱, Java 就是编程界的 996
    young1lin
        80
    young1lin   262 天前
    @yRebelHero 这些还是基础,更难的我没写,我还没解答出来。问的实际应用场景,电商活动要保证优惠活动前后查询请求都要在 Redis 上,商品的优惠信息会变,Redis 如何设计之类的。还有问了我为什么 Redis 不能叫 WAL,我当时紧张没回答上来。
    yRebelHero
        81
    yRebelHero   262 天前
    @young1lin 这还是基础??那我进大厂无缘了。
    llyCat
        82
    llyCat   261 天前
    @findlisa 我裸辞了, 就是平时没时间背这些打算裸辞后有时间背背, 想想有点冲动了
    young1lin
        83
    young1lin   260 天前
    @yRebelHero 真的很基础,多看书就好了,对应的书籍这些内容都有。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1212 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:45 · PVG 02:45 · LAX 10:45 · JFK 13:45
    ♥ Do have faith in what you're doing.