美团秋招凉经

一面

  1. 说一下面向对象和面向过程的区别。
  2. final修饰一个类的目的是什么?为什么不能被继承?

在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。

  1. JRE,JDK,JVM分别是什么意思。
  2. 说一下HashMap的底层原理。红黑树相比于AVL树有什么优势?

红黑树利用了缓存,以空间换时间。牺牲了部分平衡性,以换取删除/插入操作时少量的旋转次数,整体来说,性能优于AVL树。

  1. Concurrent的底层原理。1.8之后为什么用CAS来实现了。ConcurrentHashMap出现冲突时执行什么操作?

  2. 说一下Synchronized的底层原理,CAS和Synchronized各自的优势是什么?

  3. CountDownLatch等底层原理是什么?AQS底层原理是什么?

  4. 说一下JVM的内存模型。

  5. 代码题:打印如下规律的数组:

    n = 2:
    1 1
    1 1
    n = 3:
    1 1 1
    1 2 1
    1 1 1
    n = 4:
    1 1 1 1
    1 2 2 1
    1 2 2 1
    1 1 1 1
    

    (使用螺旋打印数组的方式做出来了,但是还有更简单的方式,且不是用动态规划)

  6. InnoDB中索引的数据结构。使用时可以怎么让B+树的层数更少(叶子节点更少->表中列的数目不宜过多)。

下去了解一下叶子节点的固定大小。

二面

上来就怼项目,说我这个多么不完善(这我能不知道吗)。

然后让打印九九乘法表,并且要可扩展且保证性能。这里两重循环是避免不了的,主要是在输出的时候要保证格式(数字右对齐),而且每层循环都输出耗时太长。将打印出的数据先暂存到一个StringBuilder中,最后在统一输出更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值