面经--51信用卡

51面经

一面面经

介绍项目

针对项目问问题

倒排索引

MapReduce过程

Shuffle 做了什么

Combine 做了什么

Combiner 所做的事情:
每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量;
Combiner 的意义:
在MapReduce中,当map生成的数据过大时,带宽就成了瓶颈,当在发送给 Reduce 时对数据进行一次本地合并,减少数据传输量以提高网络IO性能;
Combiner 的时机:
Combiner 最基本的是实现本地key的聚合,有本地 Reduce 之称
,实际上是现实就继承来 Reducer ,本质上就是一个 Reducer。

MapReduce 的输入key有什么要求

Redis使用了什么,如何实现异步队列的

NIO与IO的区别

线程池的基本原理

GC 的方法

线程安全的类有哪些

ThreadLocal是什么

HashMap和ConcurrentHashMap的区别

ArrayList和LinkedList的区别

B树和B+树的区别(需要加强)

Java阻塞队列有哪些实现

HashMap的实现原理,快速失败的机制如何实现

Java内存模型

volatile有什么用

volatile关键字修饰就是告知程序任何对变量的访问均需要从共享内存中获取,而对它的改变必须同步刷新会共享内存,保证所有线程对变量访问的可见性。

Linux标准输入输出012的含义

将输入重定向到文件中的命令

二面面经

介绍项目

NIOFetch中三个线程 爬取列表生成线程的输出是什么

IO和NIO的区别

指针和引用的区别

java中引用和C中指针的区别

学过哪些数据结构

对于一个链表,如何最快取得其中间节点

什么排序最快,桶排

忘了原理了。。。只记得桶排最快

HashMap与ConcurrentHashMap的区别及实现原理

锁的实现原理

悲观锁与乐观锁的区别和实现原理

什么是死锁

CAS会不会造成死锁