美团一面3.22(凉凉)

OSI七层协议

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

TCP/IP四层协议

应用层、传输层、网络层、网络接口层

tcp和udp区别

tcp:面向连接,可靠 udp:非连接,不可靠

tcp怎么可靠传输

校验和、ACK、序列号、超时重传

http和https区别

超文本传输协议,https通过SSL/TLS协议非对称加密 http:80 https:443

B+树实现原理

B+树非叶子节点只存储索引信息,不包含实际的值,所有叶子节点和相邻节点通过链表相连,便于查找和遍历。

hashmap怎么插入的,为什么O(1)

  • hashmap有个Entry数组,hashcode相当于它的下标,key.hashcode()可以在数组get到Entry对象,只是理想情况。
  • 数据量大就有可能会有hash碰撞,hashcode可能对应多个key,这是Entry数组里就不是Entry了,而是Entry链表.调用map.get(key)时,就会遍历链表,调用equals方法去比较key。jdk8,当链表大于8时,变为红黑树。
  • 除了数据量,hash碰撞的概率还和负载因子有关。

hashtable通过synchronized实现同步

concurrenthashmap没加synchronized实现同步?

synchronized锁的实现 lock()

  • 同步代码块:给指定对象加锁
  • 同步方法:静态方法(当前类加锁),非静态方法(this当前对象加锁)

jvm的内存模型

堆、方法区、虚拟机栈、本地方法栈、程序计数器(线程私有)

栈里放什么(为什么私有)

  1. 基本类型的数据
  2. 对象的引用

堆里放什么

new产生的数据

OOM是什么,为什么会堆溢出(死锁,大对象,递归,对象回收不了)

登录怎么实现?验证码token

秒杀实现?update table A set num=num-1 where id=1 and num>0 (一生铭记)

乐观锁是什么?(读多写少场景)

假设事务不会冲突,数据提交更新时,才会正式对数据是否冲突进行检测。 *悲观锁:*对数据库一行进行修改时,为了避免同时被其他人修改,直接对改数据进行加锁以防止并发。

全部评论

相关推荐

Wy_m:只要不是能叫的上名的公司 去实习没有任何意义 不如好好沉淀自己
点赞 评论 收藏
分享
我就是0offer糕手:北大不乱杀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务