1. 数据库的锁有哪几种?
2.请说一下若干种排序算法的时间和空间复杂度?
3.如何处理Hadoop计算过程中的数据倾斜问题?
4.SQL如何判断一条数据在一个表,但不在另一个表中?
5.介绍一下Python的多线程?
6.HashMap底层是如何实现的?
7.编程题:表达式求值。
8.数据库的索引一般什么时候会失效?
刚刚面试完。
答案简单写一下,不会的查了一下,有不对的欢迎大家补充。
1. 数据库的锁有哪几种?
第一种分类方法:读锁,也叫共享锁;写锁,也叫排他锁。
a.读锁:用户给数据加读锁,可以读数据,不能写数据,其他用户再加锁只能加读锁,可以读数据,但不能更新数据。
b.写锁:用户给数据加写锁,可以读写数据,其他用户不能读数据,也不能加任何锁。
第二种分类方法:表锁,行锁,页锁。
2.请说一下若干种排序算法的时间和空间复杂度?
再来复习一遍。冒泡排序、插入排序、选择排序、快速排序、归并排序、希尔排序、堆排序、计数排序、桶排序、基数排序。
冒泡排序,O(n^2), O(1)
选择排序,O(n^2),O(1)
插入排序,O(nlogn),O(1)
快速排序,O(nlongn),O(nlogn)
归并排序,O(nlogn),O(nlogn)
希尔排序,O(n sqrt(n)),O(1)
堆排序,O(nlogn),O(1)
计数排序,O(n),O(K),K=max(ai)
桶排序,
基数排序,
3.如何处理Hadoop计算过程中的数据倾斜问题?
主要是Hive中的数据倾斜。
a.造成原因:key集中。解决办法:加随机值,自定义分区
b.造成原因:group by的值集中。解决办法:多层group by。
4.SQL如何判断一条数据在一个表,但不在另一个表中?
假设表A和表B相同字段为id,age
a. SELECT * FROM A LEFT JOIN B ON A.id=B.id AND A.age=B.age AND B.id IS NULL AND B.age IS NULL.
5.介绍一下Python的多线程?
关键点:
a.实现:threading模块下的Thread类实现,传入一个函数,对应的是线程执行的内容。
b.Python中一个进程只有一个GIL全局解释器锁,拿到GIL的线程才可以被执行。所以Python多线程不适合在计算密集型任务中使用。
6.HashMap底层是如何实现的?
关键点:数组+链表/红黑树。
7.编程题:表达式求值。
有印象, 但是没写完。
8.数据库的索引一般什么时候会失效?
https://www.cnblogs.com/liehen2046/p/11052666.html
全部评论
(2) 回帖