title: 2021年3月9日 北京快手Java开发–用户增长方向 实习面经(一面)
tags: 面经


2021年3月9日 北京快手Java开发–用户增长方向 实习面经(一面)

自我介绍你能介绍一下你了解什么集合吗?(当时回答的是 HashMap 和 ConcurrentHashMap)你能讲一下这两者的区别以及底层原理吗?那你能讲讲 ConcurentHashMap 是怎么实现线程安全的吗?那HashMap的查找的时间复杂度是多少呢?为什么查找时间复杂度是O(1)呢?你能讲讲 ConcurrentHashMap 和 Hashtable 的区别吗?你能讲讲 HashMap 和 Hashtable有什么区别?为什么 HashMap 的底层或者说 ConcurentHashMap 的底层为什么需要用到红黑树呢?你对 hashCode 有什么了解吗?那你再讲讲红黑树和AVL树之间有什么区别呢?以及红黑树和AVL树一般都是使用在什么样的场景呢?那你能讲讲红黑树的查找性能的时间复杂度是多少吗?那接下问问你一些MySQL的内容,先来讲讲MySQL,你了解多少呢?讲讲 InnoDB 引擎的索引是用的什么呢?讲讲事务的特性以及他们的隔离级别有哪些?说一下 读未提交 这个事务隔离级别是怎么的一个过程?以及在该过程当中,可能会遇到什么问题呢?(这里只要说一下可能会引起脏读、幻读以及不可重复读即可,因为我是这样回答的)然后再讲讲什么幻读,以及幻读与脏读有什么区别?然后说一说MySQL的默认的事务隔离级别是什么?最后问到,你了解Redis吗?还有你了解Spring框架吗?(这两个答的都是不太清楚,然后面试官也没为难我,还说没关系。。。)手撕代码环节反问环节。

1.1 HashMap 和 ConcurrentHashMap 的区别以及底层原理

主要的区别:

HashMap 是线程不安全的,而如果要去保证线程安全的话,就要使用ConcurrentHashMap。

HashMap 的底层原理:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ps3GMIuY-1616258683540)(/Users/cdf/Library/Application Support/typora-user-images/image-20210310140412917.png)]

ConcurentHashMap 的底层原理:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9Lgp5VN-1616258683562)(/Users/cdf/Library/Application Support/typora-user-images/image-20210310142039375.png)]


1.2 那你能讲讲 ConcurentHashMap 是怎么实现线程安全的吗?


1.3 那HashMap的查找的时间复杂度是多少呢?为什么查找时间复杂度是O(1)呢?

HashMap 的查找时间复杂为O(1)。

为什么呢?:


1.4 你能讲讲 ConcurrentHashMap 和 Hashtable 的区别吗?


1.5 为什么 HashMap 的底层或者说 ConcurentHashMap 的底层为什么需要用到红黑树呢?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cA4xYQsf-1616258683571)(/Users/cdf/Library/Application Support/typora-user-images/image-20210310171225726.png)]

hashmap为什么用红黑树不用b树_【181期】HashMap 面试二十一问!


1.6 你对 hashCode 有什么了解吗?

Java面试——HashCode的作用原理和实例解析

HashCode原理

HashCode 的概念:根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值


1.7 那你再讲讲红黑树和AVL树之间有什么区别呢?以及红黑树和AVL树一般都是使用在什么样的场景呢?

参考博客:

【数据结构】红黑树与平衡二叉树的区别以及原理详解(附图解)

红黑树和AVL树(平衡二叉树)区别

应用场景:

–AVL 的应用场景:

Windows NT内核中广泛存在;

–红黑树的应用场景:


1.8 那你能讲讲红黑树的查找性能的时间复杂度是多少吗?

红黑树的查找、插入、删除的时间复杂度最坏为O(log n)


1.9 讲讲 InnoDB 引擎的索引是用的什么呢?


2.0 讲讲事务的特性以及他们的隔离级别有哪些?

事务是逻辑上的一组操作,要么都执行,要么都不执行。


2.1 说一下 读未提交 这个事务隔离级别是怎么的一个过程?以及在该过程当中,可能会遇到什么问题呢?


2.2 然后再讲讲什么是幻读,以及幻读与脏读有什么区别?


2.3 然后说一说MySQL InnoDB引擎的默认的事务隔离级别是什么?


2.4最后问到,你了解Redis吗?还有你了解Spring框架吗?

这里就直接直接见JavaGuide了。。。


2.5 手撕算法题

算法题:

class Solution {public ListNode reverseBetween(ListNode head, int left, int right) {if(left == right || head == null) return head;ListNode dum = new ListNode(0);dum.next = head;ListNode pre = dum;for(int i = 0; i < left - 1; i++){pre = pre.next;}ListNode cur = pre.next;ListNode next;for(int i = 0; i < right - left; i++){next = cur.next;cur.next = next.next;next.next = pre.next;pre.next = next;}return dum.next;}
}

2021年3月9日 北京快手Java开发–用户增长方向 实习面经(一面)相关推荐

  1. 2021年3月16日 北京快手Java开发实习面试(海外增长方向)

    title: 2021年3月16日 北京快手Java开发实习面试(海外增长方向) tags: 面经 2021年3月16日 北京快手Java开发实习面试(海外增长方向) 自我介绍你能讲一下你的项目吗?你 ...

  2. 2021年4月22日 阿里供应链Java开发实习面试(三面)(含总结)

    title: 2021年4月22日 阿里供应链Java开发实习面试(三面) tags: 面经 2021年4月22日 阿里供应链Java开发实习面试(三面) 上来就手撕一道代码--输入一个数,然后顺时针 ...

  3. 2021年3月12日 北京格灵深瞳Java开发实习面试(一面)

    title: 2021年3月12日 北京格灵深瞳Java开发实习面试 tags: 面经 2021年3月12日 北京格灵深瞳Java开发实习面试(一面) 首先上来问你问什么不做算法,转做开发呢?(因为我 ...

  4. 2021年1月20日 北京经纬恒润科技有限公司一面

    2021年1月20日 北京经纬恒润科技有限公司一面 岗位:后端开发实习生 自我介绍(这个地方需要自己去提炼自己的自我介绍) 问了为什么不做算法方面的工作 主要用什么语言来做项目呢,然后开始问我相关研究 ...

  5. 2021年4月28日 深圳头条后台开发实习面试(hr面)

    title: 2021年4月28日 深圳头条后台开发实习面试(hr面) tags: 面经 2021年4月28日 深圳头条后台开发实习面试(hr面) 自我介绍 为什么当时高考报考了机械行业呢? 你对机械 ...

  6. 2021年4月19日 深圳头条后台开发实习面试(二面)(含总结)

    title: 2021年4月19日 深圳头条后台开发实习面试(二面) tags: 面经 2021年4月19日 深圳头条后台开发实习面试(二面) 自我介绍 面试直接跟我讲你想让我问哪个方面的问题呢?(这 ...

  7. 2021年4月16日 阿里供应链Java研发实习面试(二面)

    title: 2021年4月16日 阿里供应链Java研发实习面试(二面) tags: 面经 2021年4月16日 阿里供应链Java研发实习面试(二面)(70min) 自我介绍 介绍自己的研究生项目 ...

  8. 2021年4月12日 阿里供应链Java研发实习面试(一面)(含总结)

    title: 2021年4月12日 阿里供应链Java研发实习面试(一面) tags: 面经 2021年4月12日 阿里供应链Java研发实习面试(一面) 自我介绍介绍项目你用哪个版本的Java呢?( ...

  9. 2021年4月19日 深圳头条后台开发实习面试(一面)(含总结)

    title: 2021年4月19日 深圳头条后台开发实习面试(一面) tags: 面经 2021年4月19日 深圳头条后台开发实习面试(一面) 自我介绍 谈了一下数学建模的经历,以及跟我现在做的深度学 ...

最新文章

  1. 几种用函数指针方式来访问类成员函数的方法总结
  2. 内地计算机科技学校,23所内地顶尖高校盘点!计算机学科哪家强?
  3. 前端学习(805):简单数据类型和复杂数据类型
  4. DouPHP 1.5 Release
  5. Android -- Camera.ShutterCallback
  6. python getopt_python 之 分割参数getopt
  7. java中no enclosing instance of type * is accessible的解决方法
  8. 【安卓】2.修改app名、图标、主题风格(保姆级图文+附示例+api例程)
  9. html5 导航栏置顶,html5导航栏横向
  10. obsutil相关 (桶相关操作Linux)
  11. GoLang之使用uber-go/dig进行依赖注入
  12. 搞笑git 程序员改bug_这些神奇又搞笑的bug,真的让程序员万万没想到!
  13. 微信第三方开平台代公众号发起网页授权 获取用户信息 openid,uninoid
  14. python画五角星-Python的画五角星
  15. C Primer Plus学习笔记(二)- 数据和C
  16. IE6下图片的浏览剪裁与上传
  17. Rooting A Linux System 101
  18. vivo手机如何使用非官方手机主题
  19. Dixon 检验法判断正态分布离群值——原理和 Python 实现
  20. Chinese Valentine‘s Day

热门文章

  1. java图片文件字符串jsp_将图片转成base64字符串并在JSP页面显示的Java代码
  2. python加密库_python基于pyDes库实现des加密的方法
  3. 想学习测试人必看的5本好书,没看过你就吃亏啦
  4. java 反射获取父类的字段_java反射获取父类和子类字段值、赋值
  5. Linux安装CentOS7(图文详解)
  6. windows 不安装jdk 运行 jar_新手必看。关于Python3——windows安装与运行(详细版)...
  7. mq系列传感器的程序_深圳现代通信系列实训系统
  8. 苹果测试软件testflight游戏,苹果内测工具TestFlight的使用
  9. php+redis+两种驱动,redis的php驱动两种方式
  10. java怎么导入别人的代码_怎么用eclipse将图标导入到java代码中