面试题(1~30)

1、HashMap 和 Hashtable 区别
  1. 首先就是线程安全问题,HashMap线程不完全,HashTable线程安全(使用Synchronize)
  2. 两者继承的父类也是不同的,但两者都实现了Map接口。HashMap继承了AbstractMap类,HashTable继承了Dictionary类(已废弃)。
  3. 两者底层都是哈希表。但是HashMap使用数组+链表的方法解决hash碰撞问题(JDK1.8后优化成数组+链表和红黑树。如果冲突数量小于8,则是以链表方式解决冲突。而当冲突大于等于8时,就会将冲突的Entry转换为红黑树进行存储。而又当数量小于6时,则又转化为链表存储。)HashTable以链表的方式解决冲突。
  4. 扩容的方式不同。HashMap 扩容必须要求为原容量的2倍,而且一定是2的幂次倍扩容结果,而且每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入。而Hashtable扩容为原容量2倍加1。
  5. Hashmap是允许key和value为null值的,用containsValue和containsKey方法判断是否包含对应键值对;HashTable键值对都不能为空,否则就报空指针异常。
  6. HashMap是没有contains方法的,只有containsValue和containsKey方法;hashtable则保留了contains方法,效果同containsValue,还包括containsValue和containsKey方法。
  7. 两者的hash计算方式不同。
2、Java 垃圾回收机制和生命周期
3、怎么解决 Kafka 数据丢失的问题
4、zookeeper 是如何保证数据一致性的
5、hadoop 和 spark 在处理数据时,处理出现内存溢出的方法有哪些?
6、java 实现快速排序
7、设计微信群发红包数据库表结构(包含表名称、字段名称、类型)
8、如何选型:业务场景、性能要求、维护和扩展性、成本、开源活跃度
9、Spark如何调优
10、Flink和spark的通信框架有什么异同
11、Java的代理
12、Java的内存溢出和内存泄漏
13、hadoop 的组件有哪些?Yarn的调度器有哪些?
14、hadoop 的 shuffle 过程
15、简述Spark集群运行的几种模式
16、RDD 中的 reducebyKey 与 groupByKey 哪个性能高?
17、简述 HBase 的读写过程
18、在 2.5亿个整数中,找出不重复的整数,注意:内存不足以容纳 2.5亿个整数。
19、CDH 和 HDP 的区别
20、Java原子操作

21、Java封装、继承和多态

22、JVM 模型

23、Flume taildirSorce 重复读取数据解决方法

24、Flume 如何保证数据不丢

25、Java 类加载过程

26、Spark Task 运行原理

27、手写一个线程安全的单例

28、设计模式

29、impala 和 kudu 的适用场景,读写性能如何

30、Kafka ack原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值