当前位置:   article > 正文

全网最全的的java大数据面试题_大数据java面试题

大数据java面试题

前言

学习群的几个小伙伴和我都有面试ebay 大数据岗位的经历,而且也都拿了offer,我特意抽出了一些时间把问题和部分答案就行了汇总,希望对大家有帮助。

全文篇幅1万字左右,从数据结构到Java再到大数据都有整理,可以先收藏起来,补缺补漏。ebay大数据组也持续招人。

一、  java基础

1、 Queue 和Stack你平时有用过么,说说你常用的方法,他们的却别在哪呢?

2、 了解java的异常吗,有什么区别,常见的异常有哪些呢?

3、 两个字面值相同的Integer,它们两个用等于号去比较,结果是 true还是false ?(这个题要分两部分去回答,结果可能为true,也可能为 false。因为有缓存)

4、 可以讲一下你常用的集合类么?他们的实现类有哪些?

5、 ArrayList 、LinkedList的区别,底层的实现呢了解吗,有没有什么优缺点,分别适合于什么样的场景,多线程环境下,有没有安全的 list的实现类呢?

6、 其他数据结构的了解吗?LinkedHashMap、 ConcurrentSkipHashMap(作为一个扩展,面试的时候问到的不是很多,能答出来挺好,答不出来也没关系)

7、 说一说你对HashSet的理解,越详细越好 ( tip:底层是用hashMap 实现的), treeSet有了解吗?聊一聊?

8、 HashMap的疯狂试探:

a. HashMap 的底层数据结构是什么样子的

b. 了解hash冲突吗?它是如何解决 hash冲突的

c. 请你简单叙述一下hashMap的 put和get 操作,当然,能说多细就说多细?

d. Jdk7 和jdk8中对 hashMap做了什么改进嘛(红黑树)?

e. 有没有其他的解决冲突的办法呢

f. HashMap 中的hash函数了解吗?那他的扩容机制了解吗?

g. HashMap 为什么扩容是2倍呢,可以说说嘛?

h. 假如说我加入一个键值对,这个时候出现了冲突,它只怎么把这个节点加入进去?是加入到当前bucket所对应的链表的头结点还是尾节点?(答不上来可以问一个稍微简单的, equals和 == 的区别,以及其中hashCode的作用)

i. 可以说说什么条件下,可以把一个链表转成红黑树呢?它里面的大概流程是什么,了解吗?

j. 有没有想过为什么选用了红黑树,而不是其他的数据结构,譬如说二叉树,二叉查找树,或者其他的树?

k. 在高并发大流量的情况下,hashMap有什么问题吗,会不会造成 cpu达到100% ?如果会,那是在哪一步可能会出现这个问题呢(插入、删除、查找、扩容)?

9、 ConcurrentHashMap的疯狂试探:

a、 他和HashTable的区别呢?

b、 说说你对JUC包的了解?

c、 ConcurrentHashMap 中是怎么加锁的?

d、 1.7 和1.8中, ConcurrentHashMap的区别是什么?

e、 ConcurrentHashMap 是怎么做到线程安全的呢?(CAS和锁)

f、 为什么会抛弃分段锁,它有什么毛病吗(上面一个题回答上才可以问这个)?

g、 知道红黑树的transfer过程么?简单的描述一下

10、 多线程下的疯狂试探:

a. 多线程了解吗?说说线程的生命周期?

b. 线程池有用到过吗?怎么用的,jdk有提供那些线程池(总共提供了四种)?

c. 线程的状态有哪些呢?

d. 线程池的核心参数有哪些?(核心线程数、最大线程数、时间、时间单位、队列、拒绝策略、默认的线程工厂)

e. Wait ,yeild, stop,sleep 、join、 start、run 的区别和如何使用?

f. 接着上题:这四种有什么区别吗,你用过哪一种,可能存在什么问题吗?

g. 接上题:拒绝策略有哪些呢?了解吗?聊聊?

h. 接上题:你刚才说了队列,线程池中的队列有哪些?有界队列、无界队列、同步队列都有了解吗?聊聊?

i. 如何实现一个消费者和生产者的循环消费和生产呢?(有两种方式,一种是通过锁,lock或者 Synchronize,还有一个是通过ArrayBlockingQueue 实现)

j. 你可以实现线程之间的相互通信吗?如何实现?要不写一个?

11、 线程安全的疯狂试探:

a. Synchronzie 了解吗?谈谈你的理解

b. 在一个普通方法上加synchronize和在一个静态方法上加 synchronize有什么区别(对象锁和类锁的的区别)?

c. Synchronize 和lock有什么区别呢?说说你对 lock的理解?

d. Lock 的公平和非公平锁?

e. 说一说volitaile为什么保证不了原子性,可以保证可见性嘛?如何保证的( jvm的多线程的内存模型有关系)

f. 了解CountDownLatch么, CyclicBarrier的区别呢?

g. Synchronize 的实现原理知道吗?moniter的实现机制呢,为什么加了 Synchronzie关键字,就可以在多线程下是安全的(这个回答要从java 对象的Object头来回答)

h. 类锁和对象锁的区别呢?字节码的体现呢?

i. Java 中的自旋锁、偏向锁、读写锁、重锁等了解吗?

j. 了解java重对象的对象头嘛?有哪些属性和字段呢?

k. Aqs(AbstractQueuedSynchronizer) 了解吗?它和lock的关系?说说 aqs中的核心思想?

l. Lock 中存在锁升级嘛,他是可重入得嘛,那Synchronize是可重入得嘛,有没有锁升级的概念?

m. Volitaile 了解吗?他的作用是什么呢,内存语义是什么呢&#x

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/941922
推荐阅读
相关标签
  

闽ICP备14008679号