2021年3月9日 北京快手Java开发–用户增长方向 实习面经(一面)
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开发–用户增长方向 实习面经(一面)相关推荐
- 2021年3月16日 北京快手Java开发实习面试(海外增长方向)
title: 2021年3月16日 北京快手Java开发实习面试(海外增长方向) tags: 面经 2021年3月16日 北京快手Java开发实习面试(海外增长方向) 自我介绍你能讲一下你的项目吗?你 ...
- 2021年4月22日 阿里供应链Java开发实习面试(三面)(含总结)
title: 2021年4月22日 阿里供应链Java开发实习面试(三面) tags: 面经 2021年4月22日 阿里供应链Java开发实习面试(三面) 上来就手撕一道代码--输入一个数,然后顺时针 ...
- 2021年3月12日 北京格灵深瞳Java开发实习面试(一面)
title: 2021年3月12日 北京格灵深瞳Java开发实习面试 tags: 面经 2021年3月12日 北京格灵深瞳Java开发实习面试(一面) 首先上来问你问什么不做算法,转做开发呢?(因为我 ...
- 2021年1月20日 北京经纬恒润科技有限公司一面
2021年1月20日 北京经纬恒润科技有限公司一面 岗位:后端开发实习生 自我介绍(这个地方需要自己去提炼自己的自我介绍) 问了为什么不做算法方面的工作 主要用什么语言来做项目呢,然后开始问我相关研究 ...
- 2021年4月28日 深圳头条后台开发实习面试(hr面)
title: 2021年4月28日 深圳头条后台开发实习面试(hr面) tags: 面经 2021年4月28日 深圳头条后台开发实习面试(hr面) 自我介绍 为什么当时高考报考了机械行业呢? 你对机械 ...
- 2021年4月19日 深圳头条后台开发实习面试(二面)(含总结)
title: 2021年4月19日 深圳头条后台开发实习面试(二面) tags: 面经 2021年4月19日 深圳头条后台开发实习面试(二面) 自我介绍 面试直接跟我讲你想让我问哪个方面的问题呢?(这 ...
- 2021年4月16日 阿里供应链Java研发实习面试(二面)
title: 2021年4月16日 阿里供应链Java研发实习面试(二面) tags: 面经 2021年4月16日 阿里供应链Java研发实习面试(二面)(70min) 自我介绍 介绍自己的研究生项目 ...
- 2021年4月12日 阿里供应链Java研发实习面试(一面)(含总结)
title: 2021年4月12日 阿里供应链Java研发实习面试(一面) tags: 面经 2021年4月12日 阿里供应链Java研发实习面试(一面) 自我介绍介绍项目你用哪个版本的Java呢?( ...
- 2021年4月19日 深圳头条后台开发实习面试(一面)(含总结)
title: 2021年4月19日 深圳头条后台开发实习面试(一面) tags: 面经 2021年4月19日 深圳头条后台开发实习面试(一面) 自我介绍 谈了一下数学建模的经历,以及跟我现在做的深度学 ...
最新文章
- 几种用函数指针方式来访问类成员函数的方法总结
- 内地计算机科技学校,23所内地顶尖高校盘点!计算机学科哪家强?
- 前端学习(805):简单数据类型和复杂数据类型
- DouPHP 1.5 Release
- Android -- Camera.ShutterCallback
- python getopt_python 之 分割参数getopt
- java中no enclosing instance of type * is accessible的解决方法
- 【安卓】2.修改app名、图标、主题风格(保姆级图文+附示例+api例程)
- html5 导航栏置顶,html5导航栏横向
- obsutil相关 (桶相关操作Linux)
- GoLang之使用uber-go/dig进行依赖注入
- 搞笑git 程序员改bug_这些神奇又搞笑的bug,真的让程序员万万没想到!
- 微信第三方开平台代公众号发起网页授权 获取用户信息 openid,uninoid
- python画五角星-Python的画五角星
- C Primer Plus学习笔记(二)- 数据和C
- IE6下图片的浏览剪裁与上传
- Rooting A Linux System 101
- vivo手机如何使用非官方手机主题
- Dixon 检验法判断正态分布离群值——原理和 Python 实现
- Chinese Valentine‘s Day
热门文章
- java图片文件字符串jsp_将图片转成base64字符串并在JSP页面显示的Java代码
- python加密库_python基于pyDes库实现des加密的方法
- 想学习测试人必看的5本好书,没看过你就吃亏啦
- java 反射获取父类的字段_java反射获取父类和子类字段值、赋值
- Linux安装CentOS7(图文详解)
- windows 不安装jdk 运行 jar_新手必看。关于Python3——windows安装与运行(详细版)...
- mq系列传感器的程序_深圳现代通信系列实训系统
- 苹果测试软件testflight游戏,苹果内测工具TestFlight的使用
- php+redis+两种驱动,redis的php驱动两种方式
- java怎么导入别人的代码_怎么用eclipse将图标导入到java代码中